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


    把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

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/nge-tou-zi-de-dian-shu-lcof
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    代码:

    class Solution {
    public:
        vector<double> twoSum(int n) {
            vector<double> ans;
            double d = 1;
            long long f[12][67] = {1};
            for(int i = 1;i <= n;i ++) {
                d *= 6;
                for(int j = i;j <= i * 6;j ++) {
                    for(int k = 1;k <= min(6,j - i + 1);k ++) {
                        f[i][j] += f[i - 1][j - k];
                    }
                }
            }
            for(int i = n;i <= n * 6;i ++) {
                ans.push_back(f[n][i] / d);
            }
            return ans;
        }
    };
    如果觉得有帮助,点个推荐啦~
  • 相关阅读:
    深入分析String类型(一)
    创建泛型类
    XML数据的读取—数据库配置文件
    Config配置文件读写
    jQuery动画
    设置屏幕快捷键
    jQuery事件
    jQuery操作DOM
    Python 二进制文件网址
    Centos使用crontab自动定时备份mysql的脚本
  • 原文地址:https://www.cnblogs.com/8023spz/p/13735356.html
Copyright © 2020-2023  润新知