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

Функция rand.Int31n

Функция rand.Int31n генерирует псевдослучайное целое число типа int32 в диапазоне от 0 (включительно) до n (исключительно). В качестве единственного параметра она принимает число n типа int32, задающее верхнюю границу диапазона. Если передать n <= 0, функция вызовет панику. Для корректной работы необходимо инициализировать генератор случайных чисел с помощью rand.Seed.

Синтаксис

rand.Int31n(n int32) int32

Пример

Давайте сгенерируем случайное число от 0 до 9:

package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) res := rand.Int31n(10) fmt.Println(res) }

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

"7"

Пример

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

package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().UnixNano()) for i := 0; i < 5; i++ { res := rand.Int31n(101) fmt.Println(res) } }

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

"42" "87" "13" "56" "91"

Пример

Попробуем передать отрицательное значение, чтобы увидеть панику:

package main import ( "fmt" "math/rand" ) func main() { defer func() { if r := recover(); r != nil { fmt.Println("Panic:", r) } }() res := rand.Int31n(-5) fmt.Println(res) }

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

"Panic: invalid argument to Int31n"

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

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