骰子概率
Dice probability
本文关键字:概率 更新时间:2023-10-16
我正在努力研究如何使掷骰子应用程序显示每个结果的百分比机会。例如,单个六面骰子将显示:1=16.6%2=16.6%3=16.6%4=16.6%5=16.6%6=16.6%。
用户将输入骰子的类型(边数n)和要掷骰子的数目(d)。
有人得到一个适用于C++的公式吗?到目前为止,我似乎无法弄清楚/理解我能找到什么。
感谢
EDIT如果可能的话,我也想将结果存储在某种类型的数组中。
void dice_analysis(int dice_sides, int dice_number, float * h2, int precision)
{
int temp=0;
int histogram[dice_sides*dice_number];
//init histogram
for(int k=0;k<dice_sides*dice_number;k++)
{
histogram[k]=0;
}
//statistical analysis
for(int i=0;i<precision;i++)
{
temp=0;
for(int j=0;j<dice_number;j++)
{
temp+=( rand()%dice_sides +1 );
}
for(int k=0;k<dice_sides*dice_number;k++)
{
if(temp==(k+1)){histogram[k]++;}
//actually histogram[temp]++; look better
}
}
//printing the calculated results
for(int k=0;k<dice_sides*dice_number;k++)
{
cout<<k+1<<":"<<(float)histogram[k]/(precision/100.0f)<<"%"<<endl;
h2[k]=histogram[k]/(precision/100.0f);
}
}
骰子分析输出(8,2,x,1000)--->两个8边骰子
1:0%
2:1.5%
3:4.4%
4:3.8%
5:5.7%
6:8.8%
7:9.1%
8:10.2%
9:14%
10:10.2%
11:8.3%
12:7.5%
13:6.8%
14:6%
15:2.8%
16:0.9%
您可以看到,对于两个或多个骰子,"1"是不可能的。此外,"9"最有可能是%14几率。
您可以使用类似的:dice_analysis(8,2,output_array,1000);
std::vector<double> probas;
for(i = 1; i <= num_faces; ++i)
{
std::cout << i << " = " << 100.0 / num_faces << "%" << std::endl;
probas.push_back(100.0 / num_faces);
}
编辑矢量内容
相关文章:
- 如何根据单词在文本中出现的概率输出单词
- CNTK:如何在C++-API中获取类概率?
- c++在循环中定义一组概率分布
- 关于骰子概率计算的一个C++问题
- 关于骰子概率和 2D 数组的问题
- 生成具有给定概率的随机数(C++)
- 概率和随机数
- 如何创建一个具有输出 z 分数的概率输入的函数?(C++)
- 在静脉中成功接受的概率
- 使用代码接近概率的近似值
- 如何读取uniform_int_distribution的概率质量函数?
- 计算 UUID 是唯一的概率
- 如何输出特定值 x 处 gamma 分布的概率密度?在C++
- 视觉C++计算事件的概率
- 从OpenCV MLP响应中获取最高值(概率)位置
- 每个顶点的概率
- 如何找到从给定容器中抽球的概率
- 拥有用于动态机会/概率的简单负载均衡器(在C++中,但语言无关)
- 根据值的概率从 Map 获取随机键
- 在代码中返回3221225725以进行简单概率运算