837. 新21点(动态规划)

蒙特卡洛方法实现21点最优策略寻找(MC) 21点规则简介 二十一点是一种扑克牌游戏,目标是尽量使手中牌的总点数达到 21 点,或是接近 21 点,但不能超过,然后与庄家的点数进行比较。人头牌(J、Q、K)的点数是 10。王牌可以是 11 点或 1 点,11 点时“可用”。这种游戏的整副牌是有限的(或者可以替换)。游戏开始时,每个玩家和庄家的一张牌朝上,另一张牌朝下。玩家可以请求更多的牌 (hit=1) 并决定何时停止请求牌(stick=0) 或者超过 21 点(爆牌)。玩家停止请求牌后,庄家翻开扣着的牌,并抽牌,直到所有点数之和是 17 点或大于 阅读详情
/**
 * 837. 新21点
 * @author wsq
 * @date 2020/10/26
	爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下:
	爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。
	当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少?
	
	示例 1:
	输入:N = 10, K = 1, W = 10
	输出:1.00000
	说明:爱丽丝得到一张卡,然后停止。

	示例 2:
	输入:N = 6, K = 1, W = 10
	输出:0.60000
	说明:爱丽丝得到一张卡,然后停止。
	在 W = 10 的 6 种可能下,她的得分不超过 N = 6 分。
	
	链接:https://leetcode-cn.com/problems/new-21-game
 */
package com.wsq.dp;

public class New21Game {
	/**
	 *	动态规划
	 *	按照从后向前顺序计算
	 * @param N
	 * @param K
	 * @param W
	 * @return
	 */
	public double new21Game(int N, int K, int W) {
        if(K == 0){
            return 1.0;
        }
        double[] f = new double[K + W];
        // 初始化转移方程
        for(int i = K; i <= N && i < K + W; i++){
            f[i] = 1.0;
        }
        // 为了计算方便,采用类似滑动窗口的方式,减少计算代价
        f[K-1] = 1.0 * Math.min(N - K + 1, W) / W;
        
        for(int i = K-2; i >=0; i--){
            f[i] = f[i+1] - (f[i + W + 1] - f[i + 1]) / W;
        }
        return f[0];
    }
}

【动态规划 逆向】837. 新 21 点|2350 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 k 分时抽取数字。 抽取时,她从 [1, maxPts] 的范围中随机获得一个整数作为分数进行累计,其中 maxPts 是一个整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得 k 分 或更多分 时,她就停止抽取数字。 爱丽丝的分数不超过 n 的概率是多少? 与实际答案误差不超过 10^-5^ 的答案将被视为正确答案。 阅读详情

相关推荐

游戏21点的C算法实现

用C语言实现的21点游戏,算是一个稍微大点的程序了,里面有机器玩家,用了较简单的算法来实现机器玩家的选牌。

强化学习丨蒙特卡洛方法及关于“二十一点”游戏的编程仿真

一、蒙特卡洛方法简介 在上一篇文章中,笔者介绍了动态规划算法(Dynamic Programming)的概念和实现,不难发现,动态规划是基于贝尔曼方程提出的一种迭代解法,即利用策略评估迭代计算价值,利用策略改进让智能体进行策略学习,但该算法需要完备的环境知识,即动态函数,另一方面,动态规划算法的迭代过程是自举的过程,即当前价值估计需要基于其他价值的估计。 假设智能体处在一个未知的环境中(其实现实生活中这种环境占大多数),环境的动作收益和状态转移都不能提前预知,这时智能体就...

qq_56937808的博客 1万+

21点游戏(javascript)

本来是打算发在Igoogle上的小工具的,但在做了一半时发现google上有了,做得太好了。。受打击了,所以就没有再做了。。有兴趣做21点游戏的可以看看。。还有一些小BUG。

扑克21点作弊算法【综合文 FreeXploiT收集整理】仅供研究,不要非法使用

21点规则与基本玩法(中文)玩家需将赌注置于下注圈中央。然后,庄家给每个玩家发两张牌,牌面朝上;给自己发两张牌,一张牌面朝上,一张牌面朝下。K、Q、J 和 10 牌都算作 10 点。 A 牌既可算作 1 点也可算作 11 点,由玩家自己决定。其余所有 2 至 9 牌均按其原面值计算。 如果玩家拿到的前两张牌是一张 A 和一张 10,就拥有黑杰克 (Blackjack);此时,如果庄家没有黑杰克,玩

FreeXploiT 1万+

别再只调A*算法了!聊聊ROS机器人导航中,OpenCV视觉信息如何与激光雷达数据“打配合”

本文探讨了ROS机器人导航中激光雷达与OpenCV视觉融合的实战策略,揭示了如何通过多模态感知提升导航精度。文章详细介绍了视觉特征到代价地图的转化方法、系统级挑战的工程解决方案,以及融合感知下的路径规划进化,帮助开发者优化机器人导航系统。

weixin_29278805的博客 227

UE5新手必看:如何用蓝图系统快速打造赛车游戏(含Chaos Physics配置)

本文为UE5新手提供使用蓝图系统快速打造赛车游戏的完整指南,涵盖Chaos Physics配置、载具蓝图架构设计、控制逻辑实现等关键步骤。通过详细的实战案例和优化技巧,帮助开发者高效构建具备专业物理反馈的赛车游戏原型。

weixin_29001327的博客 388

JavaScript 基础:21点算法

在赌场 21 点游戏中,玩家可以通过计算牌桌上已经发放的卡牌的高低值来让自己在游戏中保持优势,这就叫 21 点算法 。 根据下面的表格,每张卡牌都分配了一个值。如果卡牌的值大于 0,那么玩家应该追加赌注。反之,追加少许赌注甚至不追加赌注。 Count Change Cards +1 2, 3, 4, 5, 6 0 7, 8, 9 -1 10, ‘J’, ‘Q’, ‘K’, ...

小知的博客 2509

VMware Workstation Pro 25H2 去虚拟化精简便携版完全指南

虚拟机技术在现代开发和测试环境中扮演着重要角色,但客户机系统常因暴露虚拟化特征而被特定软件识别为“虚拟机”,导致功能受限。同时,官方 VMware Workstation Pro 安装包体积大、安装流程繁琐,难以实现移动化部署。去虚拟化通过修改 VMX 配置、屏蔽 CPUID 特征、反射宿主机硬件信息等手段降低被检测概率;精简与便携则通过裁剪非核心文件和改用脚本注册服务,实现即解压即用的轻量化形态。这类改版方案特别适合临时环境搭建、敏感软件兼容测试以及构建随身开发环境。本文从虚拟化检测原理出发,系统梳理了

weixin_34068198的博客 379

21点算法

转:决战21点算牌法  (2008-08-05 15:58:00)  转载▼ 标签:  杂谈    发牌员---庄家---先发给玩家两张牌,把这两张牌加起来---2到10是面值,10以上的花牌(face cards,就是J,Q,K)都算10,A算11,如果要爆掉的话就算成1---越接近21越好,超过就爆了,算输的。如果你头两张牌正好是21点,就被称作Blackjack(就是21点

snowlevel的博客 3万+

无人机蜂群联合指挥作战技术详解

随着人工智能、通信技术、新材料等领域的不断进步,无人机蜂群联合指挥作战技术将迎来更加广阔的发展前景。未来,无人机蜂群将更加智能化、自主化,能够执行更加复杂、精细的作战任务。同时,加强国际合作,共同制定国际规则和标准,将是推动无人机蜂群技术健康发展的重要方向。无人机蜂群技术,是指通过先进的通信技术、自主导航与决策算法,将大量小型、低成本、功能各异的无人机组织成一个高度协同的群体,执行复杂多样的军事任务。2. 通信与数据链:采用高速、低延迟、抗干扰的通信技术,保障群体内无人机间的信息交换。

专注多旋翼、复合翼无人机技术研究,从事低空经济行业。 1546

2024年物联网嵌入式最新嵌入式期末大作业——家用智能晾衣杆,初面蚂蚁金服

在家用智能晾衣杆中,用户可以根据自身的需要,切换手动和自动两个模式。天气对应的接口对应心知天气的天气图,可以下载后:调整尺寸->调整透明度->用画图工具保存为单色位图->提取出点阵信息(如我用的zimoV2.2软件),将点阵信息,存到数组里,根据weather的信息,调用display.drawBitmap()方法就能打印出对应的天气了。该库依赖于,将他们导入后,设置屏幕的主从关系,片选信号和数据,时钟信号等引脚后,就设置好屏幕的驱动。

2401_85013604的博客 1248

LeetCode 837.新 21 点:动态规划+滑动窗口

LeetCode 837.新 21 点:动态规划+滑动窗口 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 k 分时抽取数字。 抽取时,她从 [1, maxPts] 的范围中随机获得一个整数作为分数进行累计,其中 maxPts 是一个整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得 k 分 或更多分 时,她就停止抽取数字。 爱丽丝的分数不超过 n 的概率是多少? 与实际答案误差不超过 10-5 的答案将被视为正确答案。

<font color="Pink">Tisfy的博客</font> 918

基于C#的机器人控制框架:如何将ROS与硬件集成

本文探讨了如何利用C#与ROS(Robot Operating System)集成开发机器人控制系统。通过ROSSharp库和rosbridge中间件,实现了C#与ROS的WebSocket通信,并展示了硬件控制模块的设计方法。文章详细介绍了电机控制的串口通信实现、ROS消息订阅机制,以及性能优化和容错处理策略,最终构建了一个智能小车控制框架的案例。这种C#与ROS的集成方案为机器人开发提供了跨平台支持,同时兼顾了系统的高效性和可靠性。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1143

LeetCode-837.新21点 动态规划

这里是题目描述:LeetCode-837.新21点 本题我们使用动态规划来解决 维护一个长度为一维表dp,dp[i]存储累计点数为i这种情况的概率。一般的,状态转移方程为:dp[i]=dp[i-1]*(1/M)+dp[i-2]*(1/M)+...+dp[j-W]*(1/w),解释:每次抽取的数字在1~M之间,累计点数为i这个情况是由若干次独立的抽取数字累计得到的,因此累计点数为i可以被看做——由累计点数为i-1时又抽取了数字1、累计点数为i-2时又抽取了数字2、…累计点数为i-M时又抽取了数字M这些情况得到

qq_24210431的博客 303

笔试题-2023-紫光展锐-数字芯片设计【纯净题目版】

笔试题-2023-紫光展锐-数字芯片设计【纯净题目版】

w0shishabi的博客 2924

华为OD机考2025C卷 - 精准核酸检测(Java & Python& JS & C++ & C语言)

华为OD机考2025C卷 - 精准核酸检测,提供在线OJ Java & Python& JS & C++ & C

算法大师! 2884

(nice!!!)(LeetCode 每日一题) 837. 新 21 点 (动态规划、数学)

【代码】(nice!!!)(LeetCode 每日一题) 837. 新 21 点 (动态规划、数学)

记录一些刷过的题并分享学习心得 466

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Leetcode 837. 新21点【动态规划】

文章目录问题描述解题报告实现代码参考资料 问题描述 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例 1: 输入:N = 10, K = 1, W = 10 输出:1.00000 说明:爱丽丝得到一张卡,

MD 301

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Leetcode【动态规划】| 837. 新21点

题目 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例 1  输入:N = 10, K = 1, W = 10  输出:1.00000  说明:爱丽丝得到一张卡,然后停止。 示例 2:  输入:N =

Cherils的博客 336

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

leetcode837. 新21点/动态规划

爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例 1: 输入:N = 10, K = 1, W = 10 输出:1.00000 说明:爱丽丝得到一张卡,然后停止。 示例 2: 输入:N = 6, K =

yyf_blog 495

【力扣】837:新21点 |动态规划

题目描述 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/new-21-game 著作权归领扣网络所有。

Heart_for_Ling的博客 633

LeetCode 837. 新21点(动态规划)

1. 题目 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得 >= K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例 1: 输入:N = 10, K = 1, W = 10 输出:1.00000 说明:爱丽丝得到一张卡,然后停止。 示例 2: 输入:N

Michael是个半路程序员 2484

【算法】leetcode 837. 新21点(理清思路,动态规划)

问题来源 837. 新21点 837. 新21点 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例 1: 输入:N = 10, K = 1, W = 10 输出:1.00000 说明:爱丽

weixin_43868754的博客 361

Leetcode:NO.837 新21点 动态规划

题目 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 示例 1: 输入:N = 10, K = 1, W = 10 输出:1.00000 说明:爱丽丝得到一张卡,然后停止。 示例 2: 输入:N = 6

泛泛之素 587

[Leedcode][JAVA][第837题][新21点][动态规划][数学]

【问题描述】[中等] 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 输入:N = 6, K = 1, W = 10 输出:0.60000 说明:爱丽丝得到一张卡,然后停止。 在 W = 10 的 6

dadongwudi的博客 274

动态规划——837. 新21点

关于小羊仔的刷题记录题目描述解答(动态规划)总结 题目描述 难度medium 爱丽丝参与一个大致基于纸牌游戏 “21点” 规则的游戏,描述如下: 爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? 解答(动态规划) class Solution: def new21Gam

东川路肖恩 214
上一篇: 1365. 有多少小于当前数字的数字
下一篇: 140. 单词拆分 II(回溯法)
Lazy mode
博客等级 码龄10年 13粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值