作者achicn3 (Sher)
看板C_and_CPP
標題[問題] 生日悖論
時間Mon Mar 27 00:14:22 2017
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
Dev c
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
No
問題(Question):
新手發問
程式主要是算生日悖論發生的機率
並且要用經驗法則去驗證 5000次中 n個人至少有2人是同天的機率
主要問題點就是我該怎麼去驗證陣列days[j]內是否有相同的數字?!也就是如何驗證同天
生日
像是說如果只是2個人那if(days[j]==days[j+1)就可以了
但當延伸到2個人以上時就不夠用了
因為可能會發生days[0]==days[2] ,days[1]==days[3], days[32]==days[48] .... etc(
也就是說可能是第2人跟第48人同天生日或第3人跟 第5人同天 等)
有餵狗可是好像沒找到解決方法
請問各位大大該怎麼解決呢
餵入的資料(Input):
預期的正確結果(Expected Output):
這是直接用機率計算的 程式結果大略相等即可
http://i.imgur.com/S4F5Nsa.jpg
錯誤結果(Wrong Output):
http://i.imgur.com/D98sdDA.jpg
程式碼(Code):(請善用置底文網頁, 記得排版)
http://codepad.org/1Wy0YkW8
http://i.imgur.com/mjFTOjG.jpg
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.217.237.13
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1490544864.A.DDD.html
※ 編輯: achicn3 (180.217.237.13), 03/27/2017 00:27:56
1F:→ achicn3: 我剛剛想到了用stack儲存生日 之後在往前搜尋有無同天生 03/27 00:29
2F:→ achicn3: 日 有的話次數就加一 感覺上是可以的 晚點試試看 有其他 03/27 00:29
3F:→ achicn3: 更好的方法嗎 03/27 00:29
4F:→ Schottky: 生日只有 366 個,統計每天生日的各有幾人就知道了 03/27 00:39
5F:→ Schottky: 這方法叫 distribution counting 03/27 00:39
6F:→ achicn3: 感謝s大 有想法了應該做的出來!!! 03/27 01:43