看板 C_and_CPP 關於我們 聯絡資訊
試著寫寫看 語法沒有很在意 void GetPossibilityOfThrowDice (int numberOfDice) { // We want to get resultArray from 1 to 6N int *resultArray = new int[6*numberOfDice+1]; SubFunction (0, numberOfDice, resultArray); for(int i=0; i<=numberOfDice*6; i++) { printf("%d with possibility %f\n", i, (float)resultArray[i]/6*numberOfDice); } } void SubFunction (int subSum, int remainingDice, int* resultArray) { // End Condition if (remainingDice == 1) { for (int i=1; i<=6; ++i) { resultArray[subSum+i] += 1; } } for (int i=1; i<=6; ++i) { SubFunction (subSum+i, remainingDice-1, resultArray); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 71.197.148.13 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1421633065.A.CF0.html
conan0914: 命名好討厭>"< 01/19 10:04
uranusjr: C# 風 01/19 10:49
MOONRAKER: WAY TOO LONG 01/19 11:02
o07608: 喔喔我參考看看0.0 01/19 12:55
o07608: 這樣好像會造成跑不完的遞迴 01/19 16:22
o07608: 丟20次骰子,程式就跑不動了,可是這是功課要求的(噴笑) 01/19 17:27
TobyH4cker: 遞迴只要層數一多一定會很慢 01/19 18:30
o07608: 是阿,吃完飯回來寫個20層for迴圈跑跑看 01/19 18:41
holydc: 20 層要求多少時間啊?? 01/19 20:03
o07608: 沒有限定要跑多久,只要結果 01/19 20:06
holydc: 不過不管怎樣暴力法應該跑不完吧?? XD 01/19 21:05
o07608: 我是還沒真的寫20層迴圈下去...... 01/19 21:05
bigpigbigpig: 怎麼可能真的寫20層迴圈,用遞迴寫 DP 一下就算完了 01/19 21:17
holydc: 看好久總算看出規則... http://ideone.com/WTJCCl 01/19 22:45
holydc: TMP 版本 https://ideone.com/flY3Wd 01/20 16:24
holydc: TMP 二版 https://ideone.com/OhMzPG 01/21 17:03