看板 Programming 關於我們 聯絡資訊
版上的先進們好! 我有一個如下的不等式: http://imgur.com/a/dFgzL 目的是要根據輸入變數「F, R, CL」,求 N 值, N 值不會超過 500000, 假設 CL = 0.7 那麼 N 的答案應會如下圖所示: http://imgur.com/a/XBDBt CL=0.7, F=0, R=0.55,N 會等於 3; CL=0.7, F=3, R=0.75,N 會等於 19; CL=0.7, F=4, R=0.95,N 會等於 117; 這是我認為沒錯的部分答案,可是當程式執行 CL=0.7, F=6, R=0.95,N 不會等於 162 而是 132; CL=0.7, F=8, R=0.85,N 不會等於 68 而是 59; CL=0.7, F=10, R=0.75,N 不會等於 49 而是 44; 以下是不才我的程式碼, 是使用C語言撰寫的, 想請問各位先進們可不可以幫幫我找出錯誤的地方做修正, 先謝過大家的幫忙了! 非常感謝! http://pastie.org/10941922 CL=0.7, F=0, R=0.55,i=0時: N=1 不等式前的(value)會是0.55 > (1-0.7) N=2 不等式前的(value)會是0.3025 > (1-0.7) N=3 不等式前的(value)會是0.166375 < (1-0.7) 因此得到 ANSWER N值=3 。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.214.3.128 ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1476274825.A.CFD.html ※ 編輯: reister (49.214.3.128), 10/12/2016 20:27:11
chuegou: 隨便亂猜 改成int factorial(int n)如何? 111.243.61.40 10/12 21:23
alibuda174: 把combin回傳型別改成double 36.225.82.221 10/12 21:41
alibuda174: combin裏頭的C 也改成 double 36.225.82.221 10/12 21:42
謝謝兩位大大的幫助,改成double型態後的確可讓部分數值正確, 但是像CL=0.7 F=9 R=0.95 得到的N值=172 似乎無法得到正確的227 :(
alibuda174: 爆掉了吧 值太大 36.225.82.221 10/12 22:08
我把型態改變成 long double 發現終於可以滿足現況了! 再次感謝各位的指點迷津! ※ 編輯: reister (49.214.3.128), 10/12/2016 22:18:36
alibuda174: 參考http://pastebin.com/shrP2ggp 36.225.82.221 10/12 22:23