По какой-то причине я продолжаю получать 6
каждый раз. Я знаю другой способ случайного броска костей, но я хотел научиться использовать deafult_random_engine
.
#include <iostream>
#include <string>
#include <random>
#include <ctime>
using namespace std;
int main()
{
default_random_engine randomGenerator(time(0));
uniform_int_distribution<int> diceRoll(1, 6);
cout << "You rolled a " << diceRoll(randomGenerator) << endl;
}
Но этот фрагмент кода работает с time(0)
.
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
// dice roll
{
srand(time(0));
for(int x = 1; x < 2; x++){
cout << 1+(rand()%6) << endl;
}
return 0;
}
time()
в качестве семени. - person T.C.   schedule 26.02.2015time(0)
такое плохое начальное значение. Я бы не ожидал, что приличная функция инициализации начального числа даст такие повторяющиеся результаты, если они отличаются на секунду или более. @MichaelSchroeder - не могли бы вы предоставить свою платформу/компилятор? - person Brett Hale   schedule 26.02.2015