rand
Материал из cppreference.com
< cpp
Синтаксис:
#include <cstdlib> int rand( void );
Функция rand() возвращает псевдослучайное число в диапазоне от нуля до RAND_MAX. Пример:
srand( time(NULL) ); for( i = 0; i < 10; i++ ) printf( "Случайное число #%d: %d\n", i, rand() );
- Примечание:** Использование % (получение остатка от деления) для ограничения получаемых случайных чисел - не самый лучший метод получения случайных чисел определенного диапазона значений, поскольку из-за неровного деления RAND_MAX на длину интервала распределение не совсем равномерно. При малой длине отрезка этой разницей можно пренебречь для ускорения написания и работы программы. Для получения же случайных чисел более точно лучше использовать следующий алгоритм (который, конечно, работает куда медленнее простого взятия остатка):
int randomNumber(int hi) // Правильный генератор случайных чисел для области значений [0,hi] { // Получение области значений [0,1) const float scale = rand()/float(RAND_MAX); // Возврат значения в области значений [0,hi] return int(scale*hi + 0.001); // неявное приведение типа и отброс дробной части числа }
Смотри также: srand