Функция rand.Int31
Функция rand.Int31 из пакета math/rand
генерирует псевдослучайное 31-битное целое число.
Она возвращает значение типа int32 в диапазоне
от 0 до 2147483647 (включительно), что соответствует
максимальному значению 31-битного числа со знаком.
Функция не принимает никаких параметров.
Для получения случайного числа в меньшем диапазоне
используйте функцию rand.Int31n.
Синтаксис
rand.Int31()
Пример
Сгенерируем случайное 31-битное число и выведем его:
package main
import (
"fmt"
"math/rand"
"time"
)
func main() {
rand.Seed(time.Now().UnixNano())
res := rand.Int31()
fmt.Println(res)
}
Результат выполнения кода:
"1234567890"
Обратите внимание, что функция rand.Int31
возвращает только положительные числа, включая ноль.
Для инициализации генератора используется функция
rand.Seed, которую в современных версиях Go
можно не вызывать, так как генератор автоматически
инициализируется случайным начальным значением.
Пример
Сгенерируем несколько случайных чисел в цикле и выведем их:
package main
import (
"fmt"
"math/rand"
)
func main() {
for i := 0; i < 5; i++ {
res := rand.Int31()
fmt.Println(res)
}
}
Результат выполнения кода:
"802064229"
"1640250771"
"1400291146"
"145344990"
"1572156793"
Каждый вызов rand.Int31 возвращает новое
псевдослучайное число, равномерно распределенное
в указанном диапазоне. Это делает функцию удобной
для задач, требующих случайных чисел, например,
для генерации идентификаторов или тестовых данных.
Пример
Используем rand.Int31 для генерации
псевдослучайного числа и проверим его диапазон:
package main
import (
"fmt"
"math/rand"
)
func main() {
res := rand.Int31()
fmt.Printf("Value: %d\n", res)
fmt.Printf("Min possible: 0\n")
fmt.Printf("Max possible: %d\n", int32(2147483647))
}
Результат выполнения кода:
"Value: 1843267854"
"Min possible: 0"
"Max possible: 2147483647"
Как видно из примера, возвращаемое значение всегда находится в пределах от 0 до максимального значения 31-битного целого числа. Это гарантируется реализацией функции и не требует дополнительной проверки.
Смотрите также
-
функцию
rand.Int31n,
которая генерирует случайное число в диапазоне от 0 до n-1 -
функцию
rand.Int,
которая генерирует случайное 64-битное целое число -
функцию
rand.Int63,
которая генерирует случайное 63-битное целое число -
функцию
rand.Float32,
которая генерирует случайное число с плавающей точкой