ЯК
Size: a a a
ЯК
AB
AB
ЯК
AB
ЛА
AB
ЯК
func (s *Some) SomeMethod() {
r := rand.New(rand.NewSource(time.Now().UnixNano()))
someFlag := r.Intn(100) == 0
if someFlag {
....
}
.....
}
AB
AB
AB
ЯК
func main() {
s := rand.NewSource(1)
r1 := rand.New(s)
r2 := rand.New(s)
fmt.Println(r1.Intn(100))
fmt.Println(r2.Intn(100))
}
func main() {
//s := rand.NewSource(1)
r1 := rand.New(rand.NewSource(1))
r2 := rand.New(rand.NewSource(1))
fmt.Println(r1.Intn(100))
fmt.Println(r2.Intn(100))
}
AB
ЯК
AB
AB
ЯК
ЯК
ЯК
func (s *Some) SomeMethod() {Так я так понимаю тоже не получится для определённой функции держать свой сид?)
// Wrapper under global random
s.randomizer.Seed(10)
// Но ничто не гарантирует что в определённый момент
// другая горутина своим сидом не испортит мой Seed(10)
// и где-то дальше внутри этого метода будет вызов s.randomizer.Int с моим сидом 10?
someFlag := r.Intn(100) == 0
if someFlag {
....
}
.....
s.randomizer.Seed(1)
}
AB