Я пишу заявку на лотерею. У меня есть функция, называемая generateLotteryNumbers
, которая берет в массиве и заполняет этот массив 5 случайными числами. Я хочу, чтобы эта функция создавала другой набор случайных чисел каждый раз, когда вызывается эта функция.Генератор случайных чисел C++
void generateLotteryNumbers(int lotteryNumbers[])
{
srand (time(NULL));
const int arraySize = 5;
int index = 0;
while (index < arraySize)
{
lotteryNumbers[index] = rand() % 50 + 1;
cout << lotteryNumbers[index] << endl;
index++;
}
}
Выход на данный момент, например:
5
24
45
26
47
Повторные дважды.
http://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful <- почему вы не должны использовать RAND() и srand() , И почему вам следует избегать «rand()% N». И srand (time (NULL)) ... – Exceptyon
Вы можете взглянуть на функции [C++ 11] (http://en.cppreference.com/w/cpp/numeric/random), которые обеспечивают лучшее псевдо генератор случайных чисел (например, Mersenne Twister), а также интерфейс 'random_device', который может использоваться для посева генератора с помощью источника энтропии. –
zakinster