首页 > 其他分享 >动态规划:剑指 Offer 60. n个骰子的点数

动态规划:剑指 Offer 60. n个骰子的点数

时间:2023-05-29 15:36:36浏览次数:53  
标签:骰子 Offer int double 60 点数

题目描述:

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

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

 

方法:动态规划

 

 

 

 

 

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,点数
From: https://www.cnblogs.com/zhz123567/p/17440591.html

相关文章

  • sockjs.js:1603 GET http://localhost/sockjs-node/info?t=1685340190468 net::ER
    vue项目报错不影响运行,但控制台看到这报错,属实不舒服 解决方法:进入\node_modules\sockjs-client\dist\sockjs.js注释1603行   刷新页面,没报错了 ......
  • 剑指 Offer 06. 从尾到头打印链表
    剑指Offer06.从尾到头打印链表</br></br>题目:输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例:输入:head=[1,3,2]输出:[2,3,1]限制:0<=链表长度<=10000</br></br>思路一:使用reverse函数完成链表的逆序打印。我们通过遍历将链表中的值插......
  • 剑指 Offer 57 - II. 和为s的连续正数序列
    题目描述:输入一个正整数target,输出所有和为target的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。 方法:滑动窗口(双指针) classSolution{publicint[][]findContinuousSequence(inttarget){inti=1,j......
  • [ARC160F] Count Sorted Arrays
    ProblemStatementThereareaninteger$N$and$M$pairsofintegers:$(a_1,b_1),(a_2,b_2),\dots,(a_M,b_M)$.Eachpair$(a_i,b_i)$satisfies$1\leqa_i\ltb_i\leqN$.Initally,youhaveall$N!$permutationsof$(1,2,\dots,N)$.Youwillperf......
  • 打卡 c语言趣味编程 掷骰子
    问题描述:骰子是一个有六个面的正方体,每个面分别印有1~6之间的小圆点代表点数。假设这个游戏的规则是:两个人轮流掷骰子6次,并将每次投掷的点数累加起来。点数多者获胜:点数相同则为平局。要求编写程序模拟这个游戏的过程,并求出玩100盘之后谁是最终的获胜者。思路:要得到6个......
  • 剑指Offer58-II.左旋转字符串——学习笔记
    题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入:s="abcdefg",k=2输出:"cdefgab"示例2:输入:s="lrloseum......
  • 剑指 Offer 24. 反转链表
    剑指Offer24.反转链表</br></br>题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入:1->2->3->4->5->NULL输出:5->4->3->2->1->NULL限制:0<=节点个数<=5000</br></br>思路一:双指针法:可以通过改变链表中节点的next指针的指......
  • (双指针)剑指 Offer 57. 和为s的两个数字
    题目描述:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。   classSolution{publicint[]twoSum(intnums[],inttarget){inti=0,j=nums.length-1;while(i<j){......
  • ZOJ 3960 What Kind of Friends Are You?(模拟)
    传送门给你几个人,然后下i行对应的是回答出来第i个问题的人,最后询问回答出来了哪几个问题的是谁。用一个map,存名字和数字,回答出的问题编号也转化为2进制,然后转化为10进制,这样的话每个人回答出的问题就对应的是一个数字,询问的时候也把2进制的串转化为10进制,这样的话比对就比较方便。......
  • 快速制作60页,3500行软著代码文档的实用教程。
    本篇文章主要讲解,制作软著代码文档的高效方法,当然不可能手动一个个复制了,这显然太笨拙,他浪费时间了。这里我给大家介绍一个更快的方式。如下是我制作好的软著代码文档:说明:申请的要求是每页50行,页眉有软件的版本信息,页码信息,页脚有作者名,或者页脚有页码和作者名均可通过。图片......