zoukankan      html  css  js  c++  java
  • 837. 新21点

    class Solution {
        public double new21Game(int N, int K, int W) {
            // 先判断 K + W 是否小于N,如果是的话,说明肯定能赢得游戏,返回 1.0,也就是 100%
            if (N >= K + W) {
                return 1.0;
            }
            double[] dp = new double[K + W];
            // 将能赢得游戏的点数的概率设置为 1
            for (int i = K; i <= N; i++) {
                dp[i] = 1.0;
            }
            // 计算K + W 这几个点数的概率和
            double sumProb = N - K + 1;
            // 从 K - 1 开始计算,
            for (int i = K - 1; i >= 0; i--) {
                // 点数为 i 的赢得游戏的概率为 i + 1 ~ i + W 的概率和除以 W 
                dp[i] = sumProb / W;
                sumProb = sumProb - dp[i + W] + dp[i];
            }
    
            return dp[0];
        }
    }
  • 相关阅读:
    python二进制转换
    git的使用
    c++primer plus笔记
    c++primer 学习笔记
    二分查找
    字符串全排列
    斐波那契数列
    JavaScript 相关
    HTTP记录
    前端笔记
  • 原文地址:https://www.cnblogs.com/yonezu/p/13369199.html
Copyright © 2011-2022 走看看