Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Император Константин Великий Просветленный (36242), закрыт 11 лет назад
Лучший ответ
Плутарх из Херонеи Мастер (2112) 11 лет назад
rand() % 900 + 100
artnazarovМыслитель (8972) 11 лет назад
rand же вроде от 0 до 1 возвращает, может не остаток, а умножение, не?
Плутарх из Херонеи Мастер (2112) Нет, rand() возвращает от 0 до const RAND_MAX == 32767
Остальные ответы
ra Орально (98783) Мыслитель (8083) 11 лет назад
Гуглите "c++ random".
ДенискаМастер (1199) 11 лет назад
Понятно что рандом, но он может и двух и однозначным оказаться.))
Олег Не важно Просветленный (40444) Дополни сотню Вопрос тривиальный.
Олег Не важно Просветленный (40444) 11 лет назад
предказуемое это хэш, не предскаюемое рандом.
умножь на тысячу и выйдет.
ra Высший разум (113309) 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()
Юрий-17Гений (76486) 11 лет назад
Приветствую! :) А кстати, что будет производиться, если в платформе будет отсутствовать такой источник?
ra Высший разум (113309) Будет использован генератор псевдослучайных чисел.
Николай Веселуха Высший разум (378014) 11 лет назад
#include <ctime>

#include <iostream>

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

std::cin.get();

}
artnazarov Мыслитель (8972) 11 лет назад
r = (rand()%(999-100)) + 100;
или
floor(drand48()*998+1) drand случайное число из [0.0;1.0] возвращает
Похожие вопросы