我需要一些關於隨機性算法的幫助。所以問題是。隨機性算法
在8個小時的時間內將發生50個事件。事件可以隨機發生。 現在它意味着在每秒鐘內有事件發生的機會是50 /(8 * 60 * 60)= .001736。 如何用隨機生成算法做到這一點?
我可以得到隨機數
int r = rand();
double chance = r/RAND_MAX;
if(chance < 0.001736)
then event happens
else
no event
但大部分時間蘭特()返回0和0 < 0.001736,比需要我得到更多的事件。
有什麼建議嗎?
抱歉,我忘記提及 餘計算的機會,因爲 雙機會=(的static_cast)(R)/(的static_cast)(RAND_MAX);
它可以除去從的static_cast
雙機會=(雙)R /(雙)(RAND_MAX)雙;
這將有助於瞭解你所使用的語言和蘭特庫。 – 2008-11-13 20:00:19
這個問題的標題可能會更具描述性。 – 2008-11-13 20:13:41