[機統] 這兩種同樣的機率 但為什麼方法不同?
各位高手你們好
是這樣子的 因為我要用程式碼製作一個10%~90%的起床機率 然後計算他花多久被叫起來
但是因為魯蛇我機率弱到爆 被老師電到翻掉 然後老師重新提出兩種方式叫我們修改
在講方法之前 怕誤導大家 先講老師跟我提到的例子
===================================
我們都知道 硬幣出現正反兩面的機率都是50%
但是要執幾次硬幣 出現正反兩面的機率剛好是50%?
執行10次可能9次反面 1次正面 執行100次可能39次反面 61次正面
所以要一直不斷擲硬幣 直到正反兩面剛好佔全部擲硬幣次數的一半才能停止
換句話說 就是樣本數要夠多才會準
===================================
回到主題
固定秒數(例如每30秒)叫人起床 總共要叫幾次 對方才會在10%的機率下醒來?
我目前做的方式就跟錯誤的擲硬幣一樣
在10%的機率下(1紅9黑 固定紅球的位子 隨機取亂數 如果亂數值位在紅球就算成功)
我只執行100次就說他有10% 也就是說
假設執行100次 總共累積叫了對方醒來共1632次
但其實醒來的機率只有100/1632=6.12%左右
老師提出兩種方法
1.同範例 增加樣本 把執行100次的次數 拉到200萬次 這樣就會更趨近於10%
2.不用1紅9黑的方式
看程式碼中random的範圍是多少 假設是0~999999999 然後設定10個區段
假設第一區段是0~99999999 第二區段是100000000~199999999...以此類推到第十個區段
然後隨機跑random 如果random值座落在第一區 那就算成功 接著跑一百次
這個出來的結果也會跟第一種方式一樣是10%
我不知道我有沒有完整打出老師的話 但是我想問的是
為什麼第二種方式把隨機取數從固定一個值(1紅9黑) 變成一個範圍(0~99999999)
就能說他也可以做出10%的機率?
另外第二種方式是不是random的預設範圍越大 機率會越準確(10%)?
--
作者 MicroGG (La new總冠軍) 看板 Japan_Travel
標題 [問題] 溫泉旅館的兒童人頭算法?
→
04/11 16:32,
04/11 16:32
→
04/11 16:34,
04/11 16:34
→
04/11 16:36,
04/11 16:36
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.138.238.19
※ 文章網址: https://www.ptt.cc/bbs/Math/M.1441797271.A.AE2.html
→
09/09 19:35, , 1F
09/09 19:35, 1F
應該要這麼解釋
第一次 叫了3次才醒來 第二次叫了14次才醒來...然後執行100次 再把叫的次數全部加總
→
09/09 19:40, , 2F
09/09 19:40, 2F
→
09/09 19:41, , 3F
09/09 19:41, 3F
→
09/09 19:41, , 4F
09/09 19:41, 4F
→
09/09 19:42, , 5F
09/09 19:42, 5F
應該是說用for loop跑100次 然後loop結束後 總計叫了1632次
但是這樣樣本數太少 我們老師才叫我們作多一點
→
09/09 19:52, , 6F
09/09 19:52, 6F
對 要叫到醒 如果叫第一次沒醒來 就要等下一個30秒之後再叫一次
→
09/09 19:55, , 7F
09/09 19:55, 7F
你說我們老師說的第二個方法?
推
09/09 19:59, , 8F
09/09 19:59, 8F
我會這樣算是因為 1632是包含叫成功跟失敗的次數 今天要計算出說10%的機率醒來
那就是要 執行次數(例如100次)/累計呼叫次數(叫失敗跟叫成功 例如1632)
還是說 這個想法 跟擲多少次硬幣才會剛好出現正面的機率是50% 不同?
→
09/09 19:59, , 9F
09/09 19:59, 9F
當然 執行這一組100次 跟下一組100次 總計次數絕對不同
※ 編輯: aiweisen (140.138.238.19), 09/09/2015 20:10:47
→
09/09 20:01, , 10F
09/09 20:01, 10F
→
09/09 20:03, , 11F
09/09 20:03, 11F
→
09/09 20:04, , 12F
09/09 20:04, 12F
→
09/09 20:07, , 13F
09/09 20:07, 13F
→
09/09 20:07, , 14F
09/09 20:07, 14F
→
09/09 20:07, , 15F
09/09 20:07, 15F
→
09/09 20:08, , 16F
09/09 20:08, 16F
→
09/09 20:10, , 17F
09/09 20:10, 17F
→
09/09 20:10, , 18F
09/09 20:10, 18F
→
09/09 20:10, , 19F
09/09 20:10, 19F
→
09/09 20:11, , 20F
09/09 20:11, 20F
→
09/09 20:11, , 21F
09/09 20:11, 21F
→
09/09 20:12, , 22F
09/09 20:12, 22F
→
09/09 20:12, , 23F
09/09 20:12, 23F
我演算法大致上是這樣 先用10%的
計數=0
10%陣列={1,0,0,0,0,0,0,0,0,0}
for(執行100次){
繼續=true
while(繼續){
亂數值=產生亂數0~9
計數加1
if(10%陣列[亂數值] is 1){
繼續=false
}
else{
skip
}//if else end
}//while end
}//for end
輸出計數值
※ 編輯: aiweisen (140.138.238.19), 09/09/2015 20:26:32
→
09/09 20:14, , 24F
09/09 20:14, 24F
→
09/09 20:14, , 25F
09/09 20:14, 25F
推
09/09 20:57, , 26F
09/09 20:57, 26F
→
09/09 20:57, , 27F
09/09 20:57, 27F
→
09/09 20:58, , 28F
09/09 20:58, 28F
→
09/09 20:58, , 29F
09/09 20:58, 29F
→
09/09 21:33, , 30F
09/09 21:33, 30F
→
09/09 21:34, , 31F
09/09 21:34, 31F
→
09/09 21:36, , 32F
09/09 21:36, 32F
→
09/09 21:38, , 33F
09/09 21:38, 33F
→
09/09 21:38, , 34F
09/09 21:38, 34F
→
09/09 22:13, , 35F
09/09 22:13, 35F
→
09/09 22:14, , 36F
09/09 22:14, 36F
→
09/09 22:14, , 37F
09/09 22:14, 37F
→
09/09 22:15, , 38F
09/09 22:15, 38F
→
09/09 22:40, , 39F
09/09 22:40, 39F
我目前是按照老師第一個方法 增加樣本數 目前是打算讓他跑兩百萬次
按照一萬比要跑5分鐘 兩百萬大概要花17小時左右個
只是原本在懷疑說 為什麼老師說跑第二種方法就不用執行很多次就可以
但就大家看來 還是一樣要執行很多次才會精準
話說我們老師說的第二種方式 是你們說的幾何分佈是嗎?
※ 編輯: aiweisen (140.138.238.19), 09/09/2015 22:48:32
→
09/09 22:55, , 40F
09/09 22:55, 40F
→
09/10 00:12, , 41F
09/10 00:12, 41F
→
09/10 00:15, , 42F
09/10 00:15, 42F
→
09/10 00:22, , 43F
09/10 00:22, 43F
→
09/10 00:24, , 44F
09/10 00:24, 44F
抱歉 現在才回 我是用JAVA寫的
的確程式有點問題 因為我在while中間有加入一個sleep(1) 每次一毫秒的函式
當時只是要先記錄喚醒次數 然後在與固定時間做相乘就好
忘記當初為什麼我要這麼做 最後放個變數去紀錄 幾秒就跑完2百萬筆
推
09/10 09:22, , 45F
09/10 09:22, 45F
→
09/10 09:22, , 46F
09/10 09:22, 46F
推
09/10 09:26, , 47F
09/10 09:26, 47F
推
09/10 09:30, , 48F
09/10 09:30, 48F
→
09/10 19:57, , 49F
09/10 19:57, 49F
→
09/10 19:58, , 50F
09/10 19:58, 50F
→
09/10 20:01, , 51F
09/10 20:01, 51F
→
09/10 20:01, , 52F
09/10 20:01, 52F
→
09/11 08:17, , 53F
09/11 08:17, 53F
→
09/11 08:17, , 54F
09/11 08:17, 54F
→
09/11 08:18, , 55F
09/11 08:18, 55F
→
09/11 08:19, , 56F
09/11 08:19, 56F
→
09/11 08:20, , 57F
09/11 08:20, 57F
→
09/11 08:21, , 58F
09/11 08:21, 58F
→
09/11 08:22, , 59F
09/11 08:22, 59F
→
09/11 08:22, , 60F
09/11 08:22, 60F
→
09/11 08:23, , 61F
09/11 08:23, 61F
→
09/11 08:24, , 62F
09/11 08:24, 62F
→
09/11 08:25, , 63F
09/11 08:25, 63F
好 謝謝你提供的問題 我在跟同學討看看
※ 編輯: aiweisen (140.138.150.27), 09/14/2015 12:38:55
※ 編輯: aiweisen (140.138.150.27), 09/14/2015 12:40:21