ХОРОШО PRNG не работает? (Может быть)

Я пытаюсь использовать конкретную реализацию WELL PRNG, якобы лучше, чем оригинал.
ссылка на код

Однако у меня есть некоторые проблемы с этим. Независимо от того, как я его заполняю, он просто выводит одинаковые числа Я думаю, что я, вероятно, просто использую это неправильно, но не смог понять мою ошибку. К сожалению, источник PRNG совершенно непрозрачен для меня.

Мой код:

#include <iostream>
#include <WELL44497a_new.h>

void pause()
{
std::string dummy;
std::cout << "Press enter to continue...";
std::getline(std::cin, dummy);
}

int main(int argc, char** argv) {
using std::cout;
using std::cin;
using std::endl;
cout<<"Hello"<<endl;
pause();
unsigned int rngseed;
cout<<"Input RNG seed:";
cin>>rngseed;
cout<<"The RNG seed is:";
cout<<rngseed<<endl;
pause();
InitWELLRNG44497(&rngseed);
int i=1;
for (i;i<100;i++){
unsigned long rngtest=WELLRNG44497();
cout<<rngtest<<endl;
}
pause();
return 0;
}

0

Решение

На основании комментария брезгливо-гриф Я пересмотрел код. Следующий код работает:

...
cin>>rngseed;
cout<<"The RNG seed is:";
cout<<rngseed<<endl;
pause();
unsigned int rngseed_arr[1391];
int i=0;
for (i;i<1391;i++){
rngseed_arr[i]=rngseed+i;
}
InitWELLRNG44497(rngseed_arr);
i=1;
...
1

Другие решения


По вопросам рекламы [email protected]