Функция rand.New
Функция rand.New создает новый генератор случайных чисел,
используя переданный в качестве параметра источник случайности,
который реализует интерфейс rand.Source.
Она возвращает указатель на rand.Rand, который можно
использовать для генерации случайных чисел различных типов.
Синтаксис
rand.New(src rand.Source) *rand.Rand
Пример
Давайте создадим новый генератор случайных чисел с фиксированным начальным значением и сгенерируем случайное число:
package main
import (
"fmt"
"math/rand"
)
func main() {
src := rand.NewSource(42)
rnd := rand.New(src)
res := rnd.Intn(100)
fmt.Println(res)
}
Результат выполнения кода:
81
Пример
Давайте создадим генератор и сгенерируем случайное число с плавающей точкой в диапазоне от 0 до 1:
package main
import (
"fmt"
"math/rand"
)
func main() {
src := rand.NewSource(12345)
rnd := rand.New(src)
res := rnd.Float64()
fmt.Println(res)
}
Результат выполнения кода:
0.953268426591789
Пример
Давайте создадим два генератора с разными начальными значениями и сравним их результаты:
package main
import (
"fmt"
"math/rand"
)
func main() {
src1 := rand.NewSource(1)
rnd1 := rand.New(src1)
src2 := rand.NewSource(2)
rnd2 := rand.New(src2)
res1 := rnd1.Intn(10)
res2 := rnd2.Intn(10)
fmt.Println(res1)
fmt.Println(res2)
}
Результат выполнения кода:
1
2
Смотрите также
-
функцию
rand.NewSource,
которая создает новый источник случайных чисел -
функцию
rand.Seed,
которая устанавливает начальное значение для глобального генератора -
функцию
rand.Intn,
которая генерирует случайное целое число в диапазоне -
функцию
rand.Float64,
которая генерирует случайное число с плавающей точкой