РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
348 of 1593 menu

Функция rand.NewSource

Функция rand.NewSource создает новый источник псевдослучайных чисел. В качестве единственного параметра она принимает целочисленное значение seed (начальное число), которое определяет начальное состояние генератора. При одинаковом значении seed генератор будет выдавать одинаковую последовательность чисел, что полезно для воспроизводимости результатов. Функция возвращает значение типа rand.Source, которое можно использовать для создания генератора с помощью rand.New.

Синтаксис

rand.NewSource(seed)

Для использования функции необходимо импортировать пакет math/rand.

import "math/rand"

Пример

Создадим источник с начальным значением 42 и сгенерируем три случайных числа типа int64:

package main import ( "fmt" "math/rand" ) func main() { src := rand.NewSource(42) r := rand.New(src) res1 := r.Int63() res2 := r.Int63() res3 := r.Int63() fmt.Println(res1) fmt.Println(res2) fmt.Println(res3) }

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

1532268284764708450 8902157714064649733 2816270544665174715

Пример

Покажем, что при одинаковом начальном значении последовательность чисел всегда одинакова:

package main import ( "fmt" "math/rand" ) func main() { src1 := rand.NewSource(100) r1 := rand.New(src1) src2 := rand.NewSource(100) r2 := rand.New(src2) res1 := r1.Int63() res2 := r2.Int63() fmt.Println(res1 == res2) }

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

true

Пример

Используем rand.NewSource для генерации чисел в заданном диапазоне с помощью Intn:

package main import ( "fmt" "math/rand" ) func main() { src := rand.NewSource(12345) r := rand.New(src) res1 := r.Intn(100) res2 := r.Intn(100) res3 := r.Intn(100) fmt.Println(res1) fmt.Println(res2) fmt.Println(res3) }

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

38 85 99

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

  • функцию rand.New,
    которая создает генератор случайных чисел из источника
  • функцию rand.Seed,
    которая задает начальное значение для глобального генератора
  • функцию rand.Int63,
    которая возвращает неотрицательное 63-битное число
  • функцию rand.Intn,
    которая возвращает число в диапазоне [0, n)
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить