Функция rand.New

Функция rand.New создает новый генератор случайных чисел, используя переданный в качестве параметра источник случайности, который реализует интерфейс rand.Source. Она возвращает указатель на rand.Rand, который можно использовать для генерации случайных чисел различных типов.

Синтаксис

gorand.New(src rand.Source) *rand.Rand

Пример

Давайте создадим новый генератор случайных чисел с фиксированным начальным значением и сгенерируем случайное число:

gopackage main

import (
  "fmt"
  "math/rand"
)

func main() {
  src := rand.NewSource(42)
  rnd := rand.New(src)

  res := rnd.Intn(100)
  fmt.Println(res)
}

Результат выполнения кода:

go81

Пример

Давайте создадим генератор и сгенерируем случайное число с плавающей точкой в диапазоне от 0 до 1:

gopackage main

import (
  "fmt"
  "math/rand"
)

func main() {
  src := rand.NewSource(12345)
  rnd := rand.New(src)

  res := rnd.Float64()
  fmt.Println(res)
}

Результат выполнения кода:

go0.953268426591789

Пример

Давайте создадим два генератора с разными начальными значениями и сравним их результаты:

gopackage 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)
}

Результат выполнения кода:

go1
2

Смотрите также

  • функцию rand.NewSource,
    которая создает новый источник случайных чисел
  • функцию rand.Seed,
    которая устанавливает начальное значение для глобального генератора
  • функцию rand.Intn,
    которая генерирует случайное целое число в диапазоне
  • функцию rand.Float64,
    которая генерирует случайное число с плавающей точкой