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

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты
На других языках