Skip to content

Commit 27c627e

Browse files
hideyudasiriak
andauthored
fix: rand.Seed() deparcated (TheAlgorithms#624)
* fix rand.Seed fix rand.Seed * fix rand.Seed fix rand.Seed fix unexpected format change fix unexpected format change * fix unexpected format change --------- Co-authored-by: Andrii Siriak <[email protected]>
1 parent 97d4a14 commit 27c627e

File tree

7 files changed

+25
-25
lines changed

7 files changed

+25
-25
lines changed

cipher/caesar/caesar_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,10 @@ func Example() {
156156
}
157157

158158
func FuzzCaesar(f *testing.F) {
159-
rand.Seed(time.Now().Unix())
159+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
160160
f.Add("The Quick Brown Fox Jumps over the Lazy Dog.")
161161
f.Fuzz(func(t *testing.T, input string) {
162-
key := rand.Intn(26)
162+
key := rnd.Intn(26)
163163
if result := Decrypt(Encrypt(input, key), key); result != input {
164164
t.Fatalf("With input: '%s' and key: %d\n\tExpected: '%s'\n\tGot: '%s'", input, key, input, result)
165165
}

graph/lowestcommonancestor_test.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,11 @@ func TestLCA(t *testing.T) {
147147
}
148148

149149
func generateTree() *Tree {
150-
rand.Seed(time.Now().UnixNano())
150+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
151151

152152
const MAXVERTEX int = 2000
153-
var numbersVertex int = rand.Intn(MAXVERTEX) + 1
154-
var root int = rand.Intn(numbersVertex)
153+
var numbersVertex int = rnd.Intn(MAXVERTEX) + 1
154+
var root int = rnd.Intn(numbersVertex)
155155
var edges []TreeEdge
156156

157157
var fullGraph []TreeEdge
@@ -163,7 +163,7 @@ func generateTree() *Tree {
163163
})
164164
}
165165
}
166-
rand.Shuffle(len(fullGraph), func(i, j int) {
166+
rnd.Shuffle(len(fullGraph), func(i, j int) {
167167
fullGraph[i], fullGraph[j] = fullGraph[j], fullGraph[i]
168168
})
169169

@@ -201,7 +201,7 @@ func generateTree() *Tree {
201201
}
202202

203203
func generateQuery(tree *Tree) []Query {
204-
rand.Seed(time.Now().UnixNano())
204+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
205205
const MAXQUERY = 50
206206
var queries []Query
207207

@@ -217,8 +217,8 @@ func generateQuery(tree *Tree) []Query {
217217
}
218218

219219
for q := 1; q <= MAXQUERY; q++ {
220-
u := rand.Intn(tree.numbersVertex)
221-
v := rand.Intn(tree.numbersVertex)
220+
u := rnd.Intn(tree.numbersVertex)
221+
v := rnd.Intn(tree.numbersVertex)
222222
queries = append(queries, Query{
223223
u: u,
224224
v: v,

sort/sorts_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -106,11 +106,11 @@ func TestMergeParallel(t *testing.T) {
106106

107107
// Test parallel merge sort with a large slice
108108
t.Run("ParallelMerge on large slice", func(t *testing.T) {
109-
rand.Seed(time.Now().UnixNano())
109+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
110110
size := 100000
111111
randomLargeSlice := make([]int, size)
112112
for i := range randomLargeSlice {
113-
randomLargeSlice[i] = rand.Intn(size)
113+
randomLargeSlice[i] = rnd.Intn(size)
114114
}
115115
sortedSlice := sort.ParallelMerge[int](randomLargeSlice)
116116
for i := 0; i < len(sortedSlice)-1; i++ {

strings/genetic/genetic.go

+8-8
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func GeneticString(target string, charmap []rune, conf *Conf) (*Result, error) {
9292
debug := conf.Debug
9393

9494
// Just a seed to improve randomness required by the algorithm
95-
rand.Seed(time.Now().UnixNano())
95+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
9696

9797
// Verify that the target contains no genes besides the ones inside genes variable.
9898
for position, r := range target {
@@ -113,7 +113,7 @@ func GeneticString(target string, charmap []rune, conf *Conf) (*Result, error) {
113113
for i := 0; i < populationNum; i++ {
114114
key := ""
115115
for x := 0; x < utf8.RuneCountInString(target); x++ {
116-
choice := rand.Intn(len(charmap))
116+
choice := rnd.Intn(len(charmap))
117117
key += string(charmap[choice])
118118
}
119119
pop[i] = PopulationItem{key, 0}
@@ -165,18 +165,18 @@ func GeneticString(target string, charmap []rune, conf *Conf) (*Result, error) {
165165
nChild = 10
166166
}
167167
for x := 0.0; x < nChild; x++ {
168-
parent2 := pop[rand.Intn(selectionNum)]
168+
parent2 := pop[rnd.Intn(selectionNum)]
169169
// Crossover
170-
split := rand.Intn(utf8.RuneCountInString(target))
170+
split := rnd.Intn(utf8.RuneCountInString(target))
171171
child1 := append([]rune(parent1.Key)[:split], []rune(parent2.Key)[split:]...)
172172
child2 := append([]rune(parent2.Key)[:split], []rune(parent1.Key)[split:]...)
173173
// Clean fitness value
174174
// Mutate
175-
if rand.Float64() < mutationProb {
176-
child1[rand.Intn(len(child1))] = charmap[rand.Intn(len(charmap))]
175+
if rnd.Float64() < mutationProb {
176+
child1[rnd.Intn(len(child1))] = charmap[rnd.Intn(len(charmap))]
177177
}
178-
if rand.Float64() < mutationProb {
179-
child2[rand.Intn(len(child2))] = charmap[rand.Intn(len(charmap))]
178+
if rnd.Float64() < mutationProb {
179+
child2[rnd.Intn(len(child2))] = charmap[rnd.Intn(len(charmap))]
180180
}
181181
// Push into 'popChildren'
182182
popChildren = append(popChildren, PopulationItem{string(child1), 0})

structure/tree/avl_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -284,9 +284,9 @@ func TestAVLDelete(t *testing.T) {
284284
t.Run("Random Test", func(t *testing.T) {
285285
nums := []int{100, 500, 1000, 10_000}
286286
for _, n := range nums {
287-
rand.Seed(time.Now().Unix())
287+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
288288
tree := bt.NewAVL[int]()
289-
nums := rand.Perm(n)
289+
nums := rnd.Perm(n)
290290
tree.Push(nums...)
291291

292292
rets := tree.InOrder()

structure/tree/bstree_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -154,9 +154,9 @@ func TestDelete(t *testing.T) {
154154
t.Run("Random Test", func(t *testing.T) {
155155
tests := []int{100, 500, 1000, 10_000}
156156
for _, n := range tests {
157-
rand.Seed(time.Now().Unix())
157+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
158158
tree := bt.NewBinarySearch[int]()
159-
nums := rand.Perm(n)
159+
nums := rnd.Perm(n)
160160
tree.Push(nums...)
161161

162162
rets := tree.InOrder()

structure/tree/rbtree_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,9 @@ func TestRBTreeDelete(t *testing.T) {
8585
func TestRBTree(t *testing.T) {
8686
testcases := []int{100, 200, 1000, 10000}
8787
for _, n := range testcases {
88-
rand.Seed(time.Now().Unix())
88+
rnd := rand.New(rand.NewSource(time.Now().UnixNano()))
8989
tree := bt.NewRB[int]()
90-
nums := rand.Perm(n)
90+
nums := rnd.Perm(n)
9191
tree.Push(nums...)
9292

9393
rets := tree.InOrder()

0 commit comments

Comments
 (0)