Re: [問題] 扔n次骰子,各種點數和的機率

作者: conan0914 (è Ÿç­†)   2015-01-19 10:04:23
試著寫寫看 語法沒有很在意
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);
}
}
作者: conan0914 (è Ÿç­†)   2014-01-19 10:04:00
命名好討厭>"<
作者: uranusjr (←這人是超級笨蛋)   2015-01-19 10:49:00
C# 風
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-01-19 11:02:00
WAY TOO LONG
作者: o07608 (無良記者)   2015-01-19 12:55:00
喔喔我參考看看0.0這樣好像會造成跑不完的遞迴丟20次骰子,程式就跑不動了,可是這是功課要求的(噴笑)
作者: TobyH4cker (Toby (我要當好人))   2015-01-19 18:30:00
遞迴只要層數一多一定會很慢
作者: o07608 (無良記者)   2015-01-19 18:41:00
是阿,吃完飯回來寫個20層for迴圈跑跑看
作者: holydc (のヮの)   2015-01-19 20:03:00
20 層要求多少時間啊??
作者: o07608 (無良記者)   2015-01-19 20:06:00
沒有限定要跑多久,只要結果
作者: holydc (のヮの)   2015-01-19 21:05:00
不過不管怎樣暴力法應該跑不完吧?? XD
作者: o07608 (無良記者)   2015-01-19 21:05:00
我是還沒真的寫20層迴圈下去......
作者: bigpigbigpig (To littlepig with love)   2015-01-19 21:17:00
怎麼可能真的寫20層迴圈,用遞迴寫 DP 一下就算完了
作者: holydc (のヮの)   2015-01-19 22:45:00
看好久總算看出規則... http://ideone.com/WTJCCl

Links booklink

Contact Us: admin [ a t ] ucptt.com