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

Интерфейс rand.Source

Интерфейс rand.Source определяет контракт для источника случайных чисел. Он содержит два метода: Int63, который возвращает случайное 63-битное целое число, и Seed, который инициализирует источник начальным значением. Этот интерфейс используется функцией rand.New для создания нового генератора случайных чисел.

Синтаксис

type Source interface { Int63() int64 Seed(seed int64) }

Пример

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

package main import ( "fmt" "math/rand" ) func main() { source := rand.NewSource(42) rnd := rand.New(source) res := rnd.Int63() fmt.Println(res) }

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

"7136427411855439588"

Пример

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

package main import ( "fmt" "math/rand" ) func main() { source1 := rand.NewSource(1) rnd1 := rand.New(source1) source2 := rand.NewSource(2) rnd2 := rand.New(source2) res1 := rnd1.Int63() res2 := rnd2.Int63() fmt.Println(res1) fmt.Println(res2) }

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

"5577006791947779410" "9571650658724251617"

Пример

Используем метод Seed для повторной инициализации источника:

package main import ( "fmt" "math/rand" ) func main() { source := rand.NewSource(10) rnd := rand.New(source) res1 := rnd.Int63() source.Seed(10) rnd = rand.New(source) res2 := rnd.Int63() fmt.Println(res1) fmt.Println(res2) }

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

"4916763548488312710" "4916763548488312710"

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

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