Я делаю книжное упражнение, в котором говорится, что нужно написать программу, которая генерирует псевдослучайные числа. Я начал с простого.
#include "std_lib_facilities.h"
int randint()
{
int random = 0;
random = rand();
return random;
}
int main()
{
char input = 0;
cout << "Press any character and enter to generate a random number." << endl;
while (cin >> input)
cout << randint() << endl;
keep_window_open();
}
Я заметил, что при каждом запуске программы будет один и тот же «случайный» вывод. Поэтому я посмотрел на генераторы случайных чисел и решил попробовать засев, включив это сначала в randint ().
srand(5355);
Который только что сгенерировал одно и то же число снова и снова (теперь я чувствую себя глупо для его реализации.)
Так что я подумал, что буду умен и внедряю семя вот так.
srand(rand());
В основном это было то же самое, что и программа вначале, но выводило другой набор чисел (что имеет смысл, поскольку первое число, сгенерированное rand (), всегда 41).
Единственное, что я мог придумать, чтобы сделать это более случайным, это:
- Пользователь должен ввести число и установить его в качестве начального числа (что было бы легко реализовать, но это последнее средство)
OR
- Каким-то образом можно задать начальное значение для часов компьютера или другого постоянно меняющегося числа.
Я нахожусь над моей головой и должен ли я сейчас остановиться? Трудно ли реализовать вариант 2? Есть другие идеи?
Заранее спасибо.