博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
n个骰子的点数
阅读量:3561 次
发布时间:2019-05-20

本文共 933 字,大约阅读时间需要 3 分钟。

描述:

n个骰子扔在地上,所有骰子朝上一面的点数之和为S。输入n,打印出S的所有可能的值出现的概率。

 

 

 

 

转移方程:

k表示骰子个数,n表示k个骰子的点数和

                |            =F(k-1, n-6) + F(k-1, n-5) + F(k-1, n-4) + F(k-1, n-3) +F(k-1, n-2) + F(k-1, n-1)        对于 k > 0,k <= n <= 6*k

F(k, n) =  | 

                |            = 0              对于 n < kor n > 6*k

 

初始化k=1,F(1,1)=F(1,2)=F(1,3)=F(1,4)=F(1,5)=F(1,6)=1

 

代码:

constint FACE_NUM = 6;

voidPrintSumProbabilityOfDices(int number)

{

    // number超过20的话,会导致概率无法用double表示,因为double能表示的精度只有15~16位有效数字

    if(number > 20)

    {

        cout << "error\n";

    }

    double pro[FACE_NUM * 20 + 1] = {1, 0};

    int i, j, k;

    for(i = 1; i <= number; i++)

    {

        for(j = FACE_NUM * i; j >= i;j--)

        {

            pro[j] = 0;

            for(k = 1; k <= 6&& j >= k; k++)

            {

                pro[j]+= pro[j - k] / 6;

            }

        }

        for(j = i - 1; j >= 0; j--)

        {

            pro[j] = 0;

        }

    }

    double dj;

    for(i = number, dj = 0; i <= FACE_NUM *number; i++)

    {

        cout << "number: "<< i << " probability:" << pro[i] << endl;

        dj += pro[i];

    }

    cout << dj << endl;

}

intmain(int argc, char *argv[])

{

    int n;

    cin >> n;

    PrintSumProbabilityOfDices(n);

}

 

转载地址:http://yvirj.baihongyu.com/

你可能感兴趣的文章
[LeetCode javaScript] 637. 二叉树的层平均值
查看>>
[LeetCode javaScript] 1. 两数之和
查看>>
[LeetCode javaScript] 14. 最长公共前缀
查看>>
[LeetCode javaScript] 26. 删除排序数组中的重复项
查看>>
[LeetCode javaScript] 8. 字符串转换整数 (atoi)
查看>>
[LeetCode javaScript] 28. 实现strStr()
查看>>
cv2.error: OpenCV(3.4.2) c:\projects\opencv-python\opencv\modules\imgproc\src\color.hpp:25
查看>>
前端网页学习7(css背景属性)
查看>>
前端网页学习8(css三大特性:层叠性,继承性,优先级)
查看>>
前端网页学习9(css盒子)
查看>>
python学习8(列表)
查看>>
JavaScript学习(new1)
查看>>
http GET 和 POST 请求的优缺点、区别以及误区
查看>>
JVM的4种垃圾回收算法、垃圾回收机制
查看>>
什么是分布式事务
查看>>
常用的分布式事务解决方案
查看>>
设计模式:单例模式 (关于饿汉式和懒汉式)
查看>>
一致性Hash算法
查看>>
更新Navicat Premium 后打开数据库出现1146 - Table 'performance_schema.session_variables' doesn't exist
查看>>
安装rabbitmq时踩的坑
查看>>