C#擲骰子概率 - 程式人生

文章推薦指數: 80 %
投票人數:10人

我想證明骰子上擲出6的概率是1/6,而連續擲出6兩次的概率是1/36。

... 您不是要對單獨的試驗進行測試,以檢視“丟擲N個六分之一的機率是多少?”。

程式人生>c#>C#擲骰子概率 【c#】C#擲骰子概率 阿新••發佈:2021-01-17 我想證明骰子上擲出6的概率是1/6,而連續擲出6兩次的概率是1/36。

我編寫的程式是為了模仿該過程。

為了更好地解釋我的程式碼。

“嘗試”是擲骰子的次數。

“diceRoll”是我用來模擬擲骰子的變數。

“successiveAttempts”是用於測量是否連續滾動6的變數,否則將重置while迴圈。

我有一個while迴圈重複10000次的原因是為了多次重複擲骰子測試並獲得結果的平均值。

因為有時6將在3次嘗試或80次嘗試中連續滾動兩次,所以我想通過重複10000次來獲得結果的平均值。

“百分比”是嘗試次數除以重複測試的次數,以獲得每骰子擲骰子的平均嘗試次數。

當我將while迴圈內的數字更改為數字1時,它將在我的程式中返回正確的數字6。

為了擲出6,平均需要6次嘗試。

但是當我將數字更改為2次連續嘗試時。

我得到42,這是不正確的。

連續兩次擲出6的平均嘗試次數為36次嘗試。

當while迴圈中的數字是1vs2時,我無法弄清楚為什麼程式可以正常工作。

有人可以解釋我要去哪裡嗎?如果我的程式碼令人困惑,對不起,我是一個初學者,我很困惑。

如果有人可以幫助我,我將很樂意為您提供幫助。

publicstaticvoidMain(string[]args) { RandomnumGen=newRandom(); intdiceRoll=0; intattempts=0; intsuccessiveAttempts=0; intx=0; while(x<10000) { successiveAttempts=0; while(successiveAttempts<2) { diceRoll=numGen.Next(1,7); if(diceRoll==6) { successiveAttempts++; } else { successiveAttempts=0; } attempts++; } x++; } intpercentage=attempts/x; Console.WriteLine(percentage); Console.WriteLine(attempts); Console.ReadKey(); } 解決辦法 我不認為您在衡量自己在衡量的東西。

您不是要對單獨的試驗進行測試,以檢視“丟擲N個六分之一的機率是多少?”。

為此,您需要執行以下操作:publicstaticvoidMain() { RandomnumGen=newRandom(); intsucceses=0; constintTRIES=10000; for(inti=0;i



請為這篇文章評分?