leetcode 837. New 21 Game(新21点)

news2024/12/25 9:09:21

在这里插入图片描述
起始点数为0,当手上点数 < k 时抽取新的卡片,
每次抽取的点数范围在 1 ~ maxPts.
每次收取是独立的,每个点数概率相同。
当手上点数 >= k 时游戏结束。

返回手上点数 <= n 的概率。

思路:

先看特殊情况
k = 0时,不会抽取新的卡片,游戏直接结束,点数 <= n 的概率为1.
手上点数 < k 时会抽新的卡片,直到点数 >= k为止,

那么游戏结束时点数范围在 k ~ k + maxPts - 1.
(假设手上点数在临界的k-1, 最后一次抽到最大点数maxPts).

n如果 < k, 那么最后概率是0,
n > k + maxPts, 那么最后概率是1。

再分析一般情况

假设最大点数maxPts=3,要找到点数=5的概率。
抽取点数范围在[1, maxPts], 所以可能抽到的是1, 2, 3, 概率都是1/3,

如果手上已有点数为4,则需要再抽取1,概率=prob(4) * 1/3
手上点数为3,则需要再抽取2,概率= prob(3) * 1/3
手上点数为2,则需要再抽取3,概率=prob(2) * 1/3
如果手上点数为1,就没法凑够5了,因为卡片最大点数是3.

从上面的情况可以看出来,想要得到点数k
P(k) = P(k-1) * 1/maxPts + P(k-2) * 1/maxPts + … + P(k-maxPts) * 1/maxPts
这相当于一个 k-1 到 k-maxPts 的一个长度为maxPts的滑动窗口。

假设dp[i] = P(i) (P为概率),sum = dp[i-1] + dp[i-2] + … + dp[i-maxPts]
那么dp[i] = sum / maxPts.
移动 i, 超出滑动窗口左边界的要从sum中减掉,新进入的dp[i]要加到sum里。

i 这里指的是已经得到的点数。
同时,要判断 i < k. 因为 i >= k时游戏结束,游戏结束后把dp[i]加到结果res里。
i >= maxPts时,左边界开始超出滑动窗口,需要把左边的部分从sum中减掉。

public double new21Game(int n, int k, int maxPts) {
    if(k == 0 || n >= k + maxPts) return 1.0;
    double[] dp = new double[n+1];
    double sum = 1.0;
    double res = 0.0;
    dp[0] = 1.0;
    for(int i = 1; i <= n; i++) {
        dp[i] = sum / maxPts;
        if(i < k) sum += dp[i];
        else res += dp[i];
        if(i - maxPts >= 0) sum -= dp[i-maxPts];
    }
    return res;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/568291.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JQuery实现小项目

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE初阶 目录 文章目录 一、JQuery是什么 二、JQuery项目 2.1 猜数字 2.2 表白墙 2.3 聚合搜索 2.4 计算器 一、JQuery是什么 jQuery是一个快速、简洁的JavaScript框架&#xff0c;是继Prototype之…

MQTT(1):MQTT协议介绍

随着 5G 时代的来临&#xff0c;万物物联的伟大构想正在成为现实。联网的物联网设备在 2018 年已经达到了 70 亿&#xff0c;在未来两年&#xff0c;仅智能水电气表就将超过10亿 海量的设备接入和设备管理对网络带宽、通信协议以及平台服务架构都带来了很大挑战。对于物联网协议…

pandas 遇到Key Error错误的一个小问题

最近刚刚接触Python&#xff0c;安装了Anaconda&#xff0c; 编程小白一个&#xff0c;照着教程准备做一个中考成绩录取分数线分析的案例&#xff0c; 使用read_excel()读入数据后&#xff0c; import pandas as pd data pd.read_excel(rC:\2021-2022深圳中考录取分数线(1).xl…

SpringBoot配置文件 | 多环境配置 | 读取配置的4种方式

文章目录 一、写配置文件的位置读取的优先级&#xff1a;1.文件位置&#xff1a;2.文件名和文件后缀&#xff1a;3.配置文件中的profile-specific文件&#xff1a;4.命令行参数 二、多环境配置1. properties&#xff1a;2. yaml 三、yaml配置文件yaml、properties、xml对比&…

【软考-中级】系统集成项目管理工程师 【13合同管理】

持续更新。。。。。。。。。。。。。。。 【第十三章】合同管理 2 分 考点 1考点 2考点 3考点4:成本补偿合同考点5:工料合同考点6:合同类型的选择考点 7考点 8:合同管理包括考点9考点 10考点 11考点 12考点 13考点 14考点 15历年真题2022 年 05 月2021 年 11 月2021 年 05 月 考…

Redis底层原理深入学习

一、基本类型及底层实现 1.String 1&#xff09;使用场景&#xff1a;简单字符串存储、分布式锁、计数器、全局唯一ID 2&#xff09;数据结构&#xff1a;C语言中String用char[]表示&#xff0c;源码中用SDS封装char[]&#xff0c;这是Redis存储的最小单元&#xff0c;一个SD…

安全中级3-nginx反向代理负载均衡的webshell

目录 一、负载均衡 1.nginx的负载均衡 2.nginx 支持的几种策略&#xff1a; 二、负载均衡下的webshell连接&#xff08;负载均衡下的wenbshell环境下载地址&#xff09; 1.内部网络的结构 2.场景描述 3.利用我们的中国蚁剑连接我们的代理服务器nginx 三、webshell遇到的…

电脑待机或者睡眠后TeamViewer就无法连接了

电脑待机或者睡眠后TeamViewer就无法连接了 设置睡眠状态下不关闭网卡驱动 公司的笔记本&#xff0c;安装了teamviewer&#xff0c;离开时把teamviewer打开&#xff0c;回家后连接时提示伙伴未在机器上运行&#xff0c;此时电脑处于黑屏、待机、睡眠状态 其实电脑睡眠后会关掉网…

创新管理工具:低代码平台在学校管理中的应用实践

随着信息技术的不断发展&#xff0c;学校管理也随之发生了变革。传统的学校管理方式往往是依靠人工操作&#xff0c;存在信息不透明、效率低下等问题&#xff0c;而数字化管理的出现&#xff0c;可以帮助学校提高管理效率、降低管理成本、提升数据统计和分析能力。而低代码技术…

SWAT模型教程

详情点击链接&#xff1a;SWAT模型教程详情点击链接&#xff1a;SWAT模型&#xff08;建模方法、实例应用、高级进阶&#xff09; 一&#xff1a;基于网络资源的SWAT模型快速建模​ 二&#xff1a;基于遥感产品的SWAT模型率定与验证​ 三&#xff1a;基于水文响应单元&#xff…

相机光圈和快门

相机光圈和快门 光圈光圈结构光圈值由来光圈范围光圈作用控制画面明暗控制画面景深和锐度 自动光圈 Auto IrisDC-IRIS原理及问题P-IRIS工作原理 快门快门简介快门速度与曝光快门速度与运动安全快门速度高速快门和慢速快门B门和T门 参考文献 光圈 光圈结构 光圈&#xff08;Ap…

记一次 Android 源码编译刷机过程

0 背景 为了能在开发设备上运行 adb root 命令得到 root 权限&#xff0c;获得更加强大的调试能力、开发体验&#xff0c;方便以后阅读源码时 Debug 跟踪、进行定制化开发&#xff0c;需要编译 Android 源码 userdebug 版本并刷入手机当中。 1 准备 1.1 硬盘 首先 Android 源…

新星计划 Electron+vue2 桌面应用 2 项目编写

练手的项目&#xff0c;需求简单&#xff0c;打算做平面设计社交类的软件。 一、需求 练手用&#xff0c;简单处理&#xff0c;写个简单的记事本&#xff0c;本地保存txt&#xff0c;能导出为其他格式的文件。 获取用户的网卡地址用于数据加密&#xff0c;本地保存加密后的文…

想变身“科技型”企业?掌汇云数字化服务平台为工业升级加分

40万亿元&#xff01;占GDP比重达到33.2%&#xff0c;这就是国新办公布的2022年数据&#xff0c;中国工业可以说是当之无愧的支柱产业。 中国工业规模大、覆盖面广&#xff0c;企业员工众多&#xff0c;项目遍及海内外。但由于科技欠发达、信息不流通等因素&#xff0c;近些年…

IDEA中 lombok不生效解决方法

目录 前言: springboot启动的时候报错, 说没有lombok编译器 第一步: 检查插件lombok是否存在 第二步: 查看springboot 官方推荐的lombok版本 -> 2.1 第一步 找到这个parent ctrl点进去 -> 2.2 在点红框位置 进去 -> 2.3 ctrlf 搜索一下 lombok.version 复制这个…

[论文评析]mixup: B EYOND E MPIRICAL R ISK M INIMIZATION, ICLR 2018,

mixup: B EYOND E MPIRICAL R ISK M INIMIZATION 介绍MixupMixup的提出动机Mixup与常规数据增广方法的区别References 介绍 采用ERM训练的模型往往存在泛化能力差的情形-可能是在简单的记忆样本, 对于噪声干扰的鲁棒性很差. 这篇论文提出了一种新的数据增广方法-Mixup, 这里主…

【ChatGPT】不会用ChatGPT?这几个镜像网站解决你的烦恼。

个人主页&#xff1a;【&#x1f60a;个人主页】 文章目录 前言ChatGPT介绍WoChatA TalkChatGPT Next WebAI EDUCHATGPTSITES 前言 还在为需要魔法才能与ChatGPT见上一面而叹息吗&#xff0c;今我就为大家汇总了国内能使用ChatGPT的方法。 也就是用国内的镜像网站玩ChatGPT&…

javaWeb 酒店民宿预定信息管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 java ssh酒店民宿预定信息管理系统是一套完善的web设计系统&#xff08;系统采用ssh框架进行设计开发&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为T…

2023阿里云学生服务器权益,含Clouder认证:云服务器ECS答案

文章目录 阿里云学生权益&#xff08;服务器使用7个月&#xff09;1、高校计划续费任务 - 飞天加速计划3.0&#xff08;2个任务&#xff09;2、任务1&#xff1a;完成实验《ECS云服务器新手上路》2.2&#xff1a; 续费6个月 3、任务2&#xff1a;Apsara Clouder云计算专项技能认…

【多线程】线程的可见性

目录 一、什么是线程的可见性二、可见性问题示例2.1 代码2.2 截图 三、解决可见性问题3.1 volatile关键字3.2 synchronized关键字 四、用volatile关键字解决可见性问题示例4.1 代码4.2 截图 五、用synchronized关键字解决可见性问题示例5.1 代码5.2 截图 六、可见性与原子性 一…