n个骰子的点数
把n个骰子仍在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。
s可能出现的值的范围为:n--6*n
1.递归思想
通过递归的思想将n个骰子的点数累加。
要求出n个骰子的点数和,可以先求出前n-1个骰子的点数和,然后加上第n个骰子的点数;
递归结束条件:n=1,此时某个点数和出现的次数+1;
#include <iostream> #include <math.h> using namespace std; void pro(int number,int cur,int sum,int *p) { if(cur==1) p[sum-number]++; else { for(int i=1;i<=6;i++) { pro(number,cur-1,sum+i,p); } } } void pro(int number,int *p) { for(int i=1;i<=6;i++) pro(number,number,i,p); } void PrintPro(int n) { if(n<1) return; int maxnum=6*n; int *probability=new int[maxnum-n+1]; for(int i=0;i<maxnum-n+1;i++) probability[i]=0; pro(n,probability); int total=pow(6,n); for(int i=0;i<maxnum-n+1;i++) { double ratio=(double)probability[i]/(double)total; cout<<i+n<<' '<<ratio<<endl; } delete []probability; } int main() { PrintPro(5); return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端