Top.Mail.Ru
Ответы
Аватар пользователя
11лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Каким образом в C++ можно сгенерировать заранее непредсказуемое трехзначное случайное число?

По дате
По рейтингу
Аватар пользователя
Новичок
11лет

rand() % 900 + 100

Аватар пользователя
Высший разум
11лет

C++98:

#include <ctime>
#include <cstdlib>
#include <iostream>
using namespace std;

int main() {
srand(time(0));
int rv = rand() % 900 + 100;
cout << rv << endl;
}

C++11:

#include <random>
#include <iostream>
using namespace std;

int main() {
uniform_int_distribution<int> d(100, 999);
random_device rd;
int rv = d(rd);
cout << rv << endl;
}

random_device производит истинно случайные числа в случае наличия в платформе источника таких чисел, а не псевдослучайные, как функция rand()

Аватар пользователя
Высший разум
11лет

#include <ctime>

#include <iostream>

int main() {
srand(static_cast<unsigned>(time(NULL)));
std::cout << 100 + rand() % 900 << std:: endl;

std::cin.get();

}

Аватар пользователя
Мыслитель
11лет

Гуглите "c++ random".

Аватар пользователя
Просветленный
11лет

предказуемое это хэш, не предскаюемое рандом.
умножь на тысячу и выйдет.