私の勉強の一環として、オリジナルと同じ番号を出力する乱数ジェネレータrand()を見つけて再コーディングする必要があります。起動シーケンスがある719885386 1649760492 596516649 1189641421 1025202362 1804289383 846930886 1681692777 1714636915 1957747793 424238335と私の問題は、私は、この発電機の元のソースを見つけることができないということですhttp://ideone.com/H7tsSICライブラリで使用されている正確なrand()を見つける方法はありますか?
#include <stdlib.h> /* rand */
#include <iostream>
using namespace std;
int main()
{
for (int i = 0 ; i< 10 ; i++) {
cout << rand() << " ";
}
cout << rand();
return 0;
}
で生成することができ、私は知りませんどのように私は発電機の完全なシーケンスから100年の長さで動作するかを理解することができます。誰かが元のジェネレータを見つけたり、ジェネレータをそのシーケンスから見つける方法を教えてくれますか?ありがとう!
を私は理解していません。あなたはデフォルトの種が何であるかを知る方法を尋ねていますか? – Barmar
また、 'rand()'がどのようなRNGアルゴリズムを使用しているのか知る必要がありますか? – Barmar
'rand()'で使用されるアルゴリズムは標準化されていません - 実装によって異なります。あなたの問題が開始シードを見つけたら、 'srand()'を使って、開始シードを知り、それを余裕で変更することができます。 (通常、 'srand()'を一度呼び出すだけでよいことに注意してください)。 – Peter