我想實現機能的研究產生隨機二進制數,使用以下:如何在C++中生成隨機二進制數字?
srand(time(NULL));
int S = rand() % 2;//continuous random variable between 0 and 1
然後:
rand()%2;
不斷叫2^20倍......然而 即時通訊沒有得到適當的隨機數字..任何改進建議?
是否有二進制數字或eqv的數據類型? (而不是聲明一個整數)
另外,我見過的srand種子的唯一實現是時間(NULL)或時間(0),有沒有辦法操縱種子以獲得更好的隨機數?
您可能希望將標籤的「C++」或「c」添加到你的問題,因爲我認爲這就是你的代碼在。 –
你認爲什麼是「正確的隨機數」?你得到什麼樣的結果? – JJJ
使用'rand()%2;'只挑選剛生成的隨機數的低位。一些PRNG會以低位產生模式,這可能是導致問題的原因。通過使用像'if(rand()%10000> = 5000)...'這樣的更好的方法避免了這個問題,它使用PRNG輸出的更多位。 – rossum