首页 > 其他分享 >【剑指 Offer】 60. n个骰子的点数

【剑指 Offer】 60. n个骰子的点数

时间:2023-04-30 11:34:04浏览次数:28  
标签:骰子 概率 Offer double 60 点数 0.16667 dp

 【题目】

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

 

你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。

 

示例 1:

输入: 1
输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]

示例 2:

输入: 2
输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0.11111,0.08333,0.05556,0.02778]

 

限制:

1 <= n <= 11

 

【思路】

动态规划,上一层骰子的概率决定下一层骰子加上1-6各种情况的和。

 

 下一层的各情况概率就是dp【1】中每一个情况各加上1-6累加到下一层的总和。

 

 

【代码】

class Solution {
    public double[] dicesProbability(int n) {
        double[] dp = new double[6];
        Arrays.fill(dp,1.0/6.0);
        for(int i=2;i<=n;i++){
            double[] temp = new double[5*i+1];
            for(int j=0;j<dp.length;j++){
                for(int k=0;k<6;k++){
                    // 下一层的概率 通过上一层加上新骰子1——6个数的概率能实现目标点数的和累加得到
                    temp[j+k] += dp[j]/6.0;
                }
            }
            dp=temp;
        }
        return dp;
    }
}

 

标签:骰子,概率,Offer,double,60,点数,0.16667,dp
From: https://www.cnblogs.com/End1ess/p/17365066.html

相关文章

  • 【剑指 Offer】 51. 数组中的逆序对
    【题目】在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例1:输入:[7,5,6,4]输出:5 限制:0<=数组长度<=50000来源:力扣(LeetCode)链接:https://leetcode.cn/problems/shu-zu-zhong-de-ni-xu-du......
  • day 60 84. 柱状图中最大的矩形
    给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱状图中,能够勾勒出来的矩形的最大面积。  classSolution{publicintlargestRectangleArea(int[]heights){if(heights==null||heights.length==0){......
  • day60(2023.4.29)
    1.JavaScript简介 2.JavaScript语句、标识符 3.变量 4.JavaScript引入到文件 5.JavaScript注释与常见输出方式 6.数据类型 7.typeof运算符 8.运算符之算术运算符 9.运算符之赋值运算符 10.运算符之比较运算符 11.......
  • CF600E Lomsat gelral(树上启发式合并)
    题目链接:https://codeforces.com/problemset/problem/600/E这是一道树上启发式合并的题,就只是在模板的基础上稍微变化了一下解题思路:我们需要计算当前u节点的答案,要计算加入非重链节点对此答案的影响,在计算加入节点对ans影响的时候,遍历u除了重链外的所有子树节点(因为重链部分的......
  • 【剑指 Offer】17. 打印从1到最大的n位数
    【题目】输入数字n,按顺序打印出从1到最大的n位十进制数。比如输入3,则打印出1、2、3一直到最大的3位数999。示例1:输入:n=1输出:[1,2,3,4,5,6,7,8,9]来源:力扣(LeetCode)链接:https://leetcode.cn/problems/da-yin-cong-1dao-zui-da-de-nwei-shu-lcof【思路】直接写......
  • P7603 [THUPC2021] 鬼街(减半警报器模板)
    P7603[THUPC2021]鬼街(减半警报器模板)前言这是一个由lxl大佬提出的神奇trick,第一次省选集训的时候有点颓,听完了没写。刚好明天又要讲这个不如写篇题解。还是,我太弱了;所以又是研究一晚上才写出来,所以还是吧我对这道题的理解讲讲。正文何为折半报警器按照lxl的ppt上的......
  • 剑指 Offer II 083. 没有重复元素集合的全排列
     分析:今天看的明日一练,这道题有点忘了怎么做了先偷个懒,用了个全排列函数,后面再研究代码:1classSolution(object):2defpermute(self,nums):3"""4:typenums:List[int]5:rtype:List[List[int]]6"""7returnlis......
  • 5760: 家庭问题 并查集
    描述 有n个人,编号为1,2,……n,另外还知道存在K个关系。一个关系的表达为二元组(α,β)形式,表示α,β为同一家庭的成员。当n,k和k个关系给出之后,求出其中共有多少个家庭、最大的家庭中有多少人?例如:n=6,k=3,三个关系为(1,2),(1,3),(4,5)此时,6个人组成三个家庭,即:{1,2,3}为一个家庭,{4,5}为一个家......
  • TNS-12541: TNS: 无监听程序 TNS-12560: TNS: 协议适配器错误
    MicrosoftWindows[版本6.1.7601]版权所有(c)2009MicrosoftCorporation。保留所有权利。C:\Users\Administrator>lsnrctlLSNRCTLfor64-bitWindows:Version11.2.0.1.0-Productionon28-4月-202311:29:22Copyright(c)1991,2010,Oracle.Allrightsreserved......
  • 【剑指 Offer】49. 丑数
    【题目】我们把只包含质因子2、3和5的数称作丑数(UglyNumber)。求按从小到大的顺序的第n个丑数。 示例:输入:n=10输出:12解释:1,2,3,4,5,6,8,9,10,12是前10个丑数。说明:    1是丑数。   n不超过1690。来源:力扣(LeetCode)链接:https://leetcode.......