永发信息网

求教c++ 骰子求和问题

答案:2  悬赏:50  手机版
解决时间 2021-03-17 13:55
  • 提问者网友:且恨且铭记
  • 2021-03-16 19:32
求教c++ 骰子求和问题
最佳答案
  • 五星知识达人网友:想偏头吻你
  • 2021-03-16 20:10
void GetProVal(int DiceCount,int ThrowCount,int* ProVal){
int EachDiceVal = 0,m = 0,k = 0,ProValTemp[ThrowCount][DiceCount];
//记录每次扔骰子进行记录

for(int i = 0 ; i < ThrowCount ;i ++)
{

m++;

for(int j = 0 ;j < DiceCount ;j++)
{

EachDiceVal = Rand()%6;
ProValTemp[m][k++] = EachDicecVal;
}
}
//排序二维数组
//找出每维上出现次数最多的数 / 总数
//然后赋值给输出参数ProVal

}追问忘了说,是同时仍三个骰子,求三个骰子的和的概率。。您这个是一个计算的函数吗忘了说,是同时仍三个骰子,求三个骰子的和的概率。。您这个是一个计算的函数吗追答函数参数不是可以传输三 个 或 四 个吗?
ProValTemp[ThrowCount][DiceCount];//改成ProValTemp[100][100];
下面三步你上网查查 补上就行了。

//排序二维数组
//找出每维上出现次数最多的数 / 总数
//然后赋值给输出参数ProVal
全部回答
  • 1楼网友:鱼忧
  • 2021-03-16 21:07
这是基于蒙特卡罗方法的吧,或者说白了就是随机模拟,是吗?
如果是这样就for循环10000次,里面再for循环3次,每次都生成一个1-6的随机数,然后求和,然后统计就可以了。
您觉得困难主要在哪?追问我在想用排列组合应该怎么算,又表达不出来,求完整代码啊,大神追答但是 我看到输入里有一个number of rolling,这明显是要蒙特卡罗的征兆啊。
你要非用排列组合的话,自己把数学搞清楚先。”表达不出来“,我看不是你编程不会,而是根本就数学上不懂吧。如果真知道怎么算,很容易自己编出程序来。追问好吧,那用正确的方法应该怎么写啊。。。追答蒙特卡罗的思路我说过了,代码另一位网友也给了示例了。自己动手试试先,遇到问题再回来问。不要指望别人一下给你写好。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯