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

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

时间:2023-09-07 22:02:38浏览次数:44  
标签:骰子 Offer int double 示例 60 点数 0.16667

把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]
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[] tmp = new double[5 * i + 1];
            for (int j = 0; j < dp.length; j++) {
                for (int k = 0; k < 6; k++) {
                    tmp[j + k] += dp[j] / 6.0;
                }
            }
            dp = tmp;
        }
        return dp;
    }
}

标签:骰子,Offer,int,double,示例,60,点数,0.16667
From: https://blog.51cto.com/u_16040716/7402045

相关文章

  • 剑指 Offer 22. 链表中倒数第k个节点
    输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。示例:给定一个链表:1->2->3->4->5,和k=......
  • 统信UOS1060使用UDOM工具箱打开支持长文件名特性
    原文链接:统信UOS1060使用UDOM工具箱打开支持长文件名特性hello,大家好啊,今天给大家带来一篇文章,在统信UOS发布的最新版桌面操作系统1060中,增加了长文件名模式,最长支持255个中文或英文字符,这样对于在windows上使用长文件的文件,迁移到国产操作系统上而言,避免了文件命名失败、文件丢失......
  • CF 1860 B
    FancyCoins这道题使用贪心。先使用a1个常规硬币,补足m%k的金额,不够的使用花色硬币补上,并最大化a1硬币的价值。再计算剩余需要价值为k的硬币数量,不够的使用花色硬币补足,并输出总共使用的花色硬币数量。代码#include<bits/stdc++.h>#defineendl'\n'usingnamespacestd;ty......
  • CF 1860 C【最大上升子序列】
    C.GameonPermutation这道题需要求出先手必胜点通过分析可知,每个位置结尾的最大上升子序列长度为2的点为先手必胜点,≥3的点为先手必败点。即只需要求出以每个位置为结尾的最大上升子序列长度为2的点的数量即可求出答案。本题目的n(1≤n≤3⋅105),所以无法使用O(n2)的方法,因此......
  • 剑指 Offer 46. 把数字翻译成字符串
    题目链接:剑指Offer46.把数字翻译成字符串题目描述:解法思路:代码://dp[i]=dp[i-1]+dp[i-2]//dp[i]表示长度为i的数字,翻译成字符串有多少种functranslateNum(numint)int{s:=strconv.Itoa(num)n:=len(s)dp:=make([]int,n+1)dp[0]=1......
  • 剑指Offer
    题目链接:题目描述:解法思路:代码:funcfindNthDigit(nint)int{//1、确定是几位数(-10-90-900-9000等)//2、确定是几位数的第几位数(求第n位数是属于哪一个数的)//3、确定是属于那个数的第几位digit,digitNum,count:=1,1,9//digit表示是几位数;dig......
  • 剑指Offer 43. 1~n 整数中 1 出现的次数
    题目链接:剑指Offer43.1~n整数中1出现的次数题目描述:解法思路:代码:funccountDigitOne(nint)int{ //思路 ifn==0{ return0 } //求出该数的各个位上的数字,保存到nums中 varnums[]int tmp:=n fortmp!=0{ a:=tmp%10 nums=append(nums,a)......
  • lattice crosslink开发板mipi核心板csi测试dsi屏lif md6000 fpga
    1.概述    CrossLink开发板,是用Lattice的芯片CrossLink家族系列的,LIF-MD6000-6JM80I。该芯片用于桥接视频接口功能,自带2路MIPI硬核的功能,4LANE MIPI的功能,支持高速率1.5Gbps。   其他普通IO支持1.2Gbps速率,支持5路MIPI通道功能。 芯片包含LVDS,SLVS200,SubLV......
  • 用友畅捷通T+ Upload.aspx任意文件上传漏洞CNVD-2022-60632
    漏洞描述用友畅捷通T+Upload.aspx接口存在任意文件上传漏洞,攻击者通过preload参数绕过身份验证进行文件上传,控制服务器漏洞影响用友畅捷通T+漏洞复现fofa语法:app="畅捷通-TPlus"登录页面如下:上传文件类型验证不完善,可上传任意文件到服务器中的任意位置,验证POCPOST/......
  • CodeForces 960G Bandit Blues
    洛谷传送门CF传送门发现设排列最大值位置为\(i\),那么\([1,i]\)只可能存在前缀最大值,\([i,n]\)只可能存在后缀最大值。由此设\(f_{i,j}\)为长度为\(i\)的排列,前缀最大值有\(j\)个的方案数,有转移:\[f_{i,j}=f_{i-1,j-1}+(i-1)f_{i-1,j}\]意思是每......