Re: [問題] 請問 C (n) 取 (m) 的 function

看板C_and_CPP作者 (忘記過去)時間15年前 (2009/02/22 03:06), 編輯推噓4(404)
留言8則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《dounts (忘記過去)》之銘言: : 大家好 我現在寫程式碰到一個問題 : 相信大家都學過 排列組合的 C (n) 取 (m) : 我現在試著寫 我自己設定了 factorial function : f(x) = x! (用 for-loop) : 所以 C(n,m) = n! / m! * (n-m)! : 這樣做在 n = 10 時可以 : 但在 n = 100 時就爆掉了 : 請問各位 怎麼處理這樣的問題呢 : 非常感謝 謝謝 基本上 我就是要寫 binomial distribution 的機率 但可能要寫到 1000 trials 所以有比較好的方法 可以讓數字不要爆調嗎 非常感謝各位 謝謝.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 64.131.237.93

02/22 03:08, , 1F
要麼就大數 不然想辦法看有沒有化簡一些運算的方式
02/22 03:08, 1F

02/22 03:34, , 2F
大一的時候有寫過速解法 不過我忘記是怎麼寫的了…
02/22 03:34, 2F

02/22 03:34, , 3F
關鍵好像是 不要去算那麼大的階層 換個方法算
02/22 03:34, 3F

02/22 09:18, , 4F
樓上正確 想想13!在int就爆了...
02/22 09:18, 4F

02/22 12:26, , 5F
C(m,n) = C(m-1,n) + C(m-1,n-1) 用DP算
02/22 12:26, 5F

02/22 15:49, , 6F
你是要輸出幾分之幾的精確機率嗎?
02/22 15:49, 6F

02/22 15:49, , 7F
如果只是算幾趴 用double即可
02/22 15:49, 7F

02/23 00:27, , 8F
文章代碼(AID): #19e52u_l (C_and_CPP)
文章代碼(AID): #19e52u_l (C_and_CPP)