三国杀中的概率学问题2——神郭嘉

news2024/11/27 17:40:02

前言

四年前,我写过一篇博客三国杀中的概率学问题。当时有一条评论,让我算一算神郭嘉慧识的摸牌数。这也是我写这篇博客的动力来源。相比起四年前,我的数学水平渐长,于是想做一些更深入的数学问题。这篇文章将从更加理论的角度来看待这些概率学问题,试图做一些更一般的结论。最近我也会写一系列关于三国杀中的概率学问题的博客,讨论一些有意思的武将的技能收益,也欢迎大家指点一二!

三国杀中的概率学问题

先声明,我不想从实践的角度来作解释,我只想研究这些问题中所蕴含的数学模型,所以,此系列文章均默认为在理想条件下的概率。

理想条件在本文中指:牌堆无限且随机,各花色的牌数永远相等,各点数的牌数永远相等。

神郭嘉慧识的期望摸牌数

在这里插入图片描述
神郭嘉是三国杀手杀中的一个武将,一技能慧识是一个强力的摸牌技。为了更好地研究这个问题,我们抛开体力上限小于10的限制。

问题概括:不断亮牌,直到亮出的牌中有相同花色的牌就停止,求平均亮出多少张牌。

方法一

我们先用传统方法来做一下这个问题。由于牌一共有四种花色,慧识最少会亮出2张牌,最多可以亮出5张牌。对于亮出的牌数进行分类讨论,求出每种情况的概率,再做加权平均就可以求出期望摸牌数。设亮出i张牌的概率为 P i P_i Pi

亮出两张牌的情况:只亮出了两张牌,说明第二张牌的花色跟第一张牌一样,于是 P 2 = 1 4 P_2=\frac{1}{4} P2=41

亮出三张牌的情况:亮出三张牌,也就是第二张牌跟第一张牌花色不同,第三张牌跟第一张或第二张花色相同,于是 P 3 = 3 4 ∗ 2 4 = 3 8 P_3=\frac{3}{4}*\frac{2}{4}=\frac{3}{8} P3=4342=83

亮出四张牌的情况:亮出前三张牌的花色各不相同,亮出第四张的花色与前三张的某一张相同,于是 P 4 = 3 4 ∗ 2 4 ∗ 3 4 = 9 32 P_4=\frac{3}{4}* \frac{2}{4}* \frac{3}{4}=\frac{9}{32} P4=434243=329

亮出五张牌的情况:前四张刚好亮出了四种不同的花色,第五张必定与前面的牌花色重复,于是 P 5 = 3 4 ∗ 2 4 ∗ 1 4 = 3 32 P_5=\frac{3}{4}*\frac{2}{4}*\frac{1}{4}=\frac{3}{32} P5=434241=323

期望摸牌数 E = ∑ i = 2 5 i ∗ P i = 103 32 = 3.21875 E=\sum_{i=2}^5{i*P_i}=\frac{103}{32}=3.21875 E=i=25iPi=32103=3.21875

方法二

对比周泰的不屈(见三国杀中的概率学问题)和神郭嘉的慧识之后,可以发现,其实两个问题非常类似,都是不停亮牌,直到花色或者点数重复就停止。唯一的区别在于,一副牌有4种花色,13个点数。所以我们把这两个问题看成是在不同参数下的同一类问题。我们假设 f ( x ) f(x) f(x)是在牌的种类为 x x x时的数学期望。那么慧识的期望摸牌数为 f ( 4 ) f(4) f(4),不屈的期望为 f ( 13 ) f(13) f(13)

那么我们看看能不能求出 f ( x ) f(x) f(x)。根据数学期望的公式, f ( x ) = ∑ n = 1 x + 1 n ∗ P n f(x)=\sum_{n=1}^{x+1}{n*P_n} f(x)=n=1x+1nPn

通过观察或者简单的计算可知, P n = A x n − 1 ( n − 1 ) x n P_n=\frac{A_x^{n-1}(n-1)}{x^n} Pn=xnAxn1(n1)

于是 f ( x ) = ∑ n = 1 x + 1 A x n − 1 ( n − 1 ) n x n = ∑ n = 0 x A x n n ( n + 1 ) x n + 1 = ∑ n = 0 x n ( n + 1 ) x ! x n + 1 ( x − n ) ! f(x)=\sum_{n=1}^{x+1}{\frac{A_x^{n-1}(n-1)n}{x^n}}=\sum_{n=0}^{x}{\frac{A_x^{n}n(n+1)}{x^{n+1}}}=\sum_{n=0}^{x}{\frac{n(n+1)x!}{x^{n+1}(x-n)!}} f(x)=n=1x+1xnAxn1(n1)n=n=0xxn+1Axnn(n+1)=n=0xxn+1(xn)!n(n+1)x!

这个复杂的式子,我们无法求解。于是我在把这个图像画出来之后,观察发现,图像的走势跟 x \sqrt{x} x 非常相似。于是我用 a x + b a\sqrt{x}+b ax +b来拟合这个函数。拟合结果为 f ( x ) = 1.2493 x + 0.7116 f(x)=1.2493\sqrt{x}+0.7116 f(x)=1.2493x +0.7116

拟合的函数图像如图所示
拟合图像

两条线已经几乎重合到了一起,肉眼已经看不出它们的区别了。

f ( 4 ) = 3.2102 f(4)=3.2102 f(4)=3.2102,跟精确值3.21875的差距不到0.01。 f ( 13 ) ≈ 5.216 f(13)\approx5.216 f(13)5.216,跟精确值5.212的差距也不到0.01。

虽然 f ( x ) f(x) f(x)的表达式比较复杂,难以求解,但是拟合函数形式相对简单,且误差很小,在实际计算中也更加方便。

总结

本文将慧识和不屈这两个相似的技能合在一起,构造了一个通用的函数,并给出了函数的表达式。由于表达式过于复杂,于是又给出了较为简单的函数的拟合形式,并且拟合的精度相当高。本文既计算出了原问题的精确解,又给出了一个解此类问题的新思路。

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

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

相关文章

JMeter的使用——傻瓜式学习【下】

目录 前言 1、自动录制脚本 1.1、原理 1.2、JMeter脚本录制 2、JMeter直连数据库 2.1、直连数据库的作用 2.2、JMeter直连数据库的步骤 案例: 3、JMeter的逻辑控制器 3.1、if控制器 案例: 3.2、循环控制器 案例: 3.3、ForEach控…

答题小程序好友PK答题模块来袭,快来一决高下!

答题小程序源码之好友pk答题怎么做 各位亲爱的答题小程序小伙伴,大家好!今天我们来一起看一下答题小程序的好友PK答题怎么做,好友PK顾名思义即邀请微信好友进行一对一的PK答题,该模式的特点是有针对性的PK答题,比如我要…

Kafka、RabbitMQ、RocketMQ中间件的对比

消息中间件现在有不少,网上很多文章都对其做过对比,在这我对其做进一步总结与整理。 RocketMQ 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成…

敲敲云零代码平台—近期亮点功能,让开发者对零代码心动~

近期敲敲云零代码平台,更新了很多实用新功能,包括汇总组件添加了筛选条件,增加了汇总日期控件,子表添加了批量添加和默认值等等。 1. 单选/多选/下拉选择 颜色设置 效果展示 在列表和表单中可通过不同颜色显示字段的不同等级或者…

【深⼊理解指针4】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 1. 回调函数是什么? 2. qsort使用举例 2.1测试qsort函数排序整型数组 2.2测试qsort函数排序结构体数组 3. qsort函数的模拟实现 3.1测试bubble_sort函数…

C++对象的内存分布和虚函数表

Linux C/C 开发(后端/音视频/游戏/嵌入式/高性能网络/存储/基础架构/安全) c中一个类中无非有四种成员:静态数据成员和非静态数据成员,静态函数和非静态函数。 1.非静态数据成员被放在每一个对象体内作为对象专有的数据成员。 2.静态数据成员被提取出来…

Linux -------------------设置防火墙和SELinux

(一)防火墙概述 防火墙的概念:防火墙是一种非常重要的网络安全工具,它是网络安全的重要组成部分,用于保护计算机网络免受未经授权的访问、恶意攻击和数据泄漏等威胁等。 防火墙的特点 防火墙通常具备以下几个特点。 …

(免费领源码)springboot#MYSQL钓鱼交友平台小程序33506-计算机毕业设计项目选题推荐

目 录 摘要 1 绪论 1.1课题目的与意义 1.2国内外研究现状 1.3论文结构与章节安排 1.4小程序框架以及目录结构介绍 2 Springboot钓鱼交友平台小程序系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2…

Linux内核是如何创建进程?

目录 1.Linux如何创建进程 2.fork函数原理 2.1 fork函数原型 2.2 fork函数实现原理 2.3 父子进程虚拟地址空间(mm_struct)之间的关系 2.4 写时拷贝(copy-on-write)技术 2.5 父子进程如何共享文件(files_struct&…

四十三、【进阶】前缀索引

1、基础 简单点说,前缀索引就是当索引字段类型较大时,有时候需要索引很长的字符串,查询时,会浪费更大的空间,此时可以只对该索引的一部分前缀建立索引,可以大大的节省空间。 前缀索引一般配合选择度进行使用…

多测师肖sir_高级金牌讲师_性能指标

性能指标 一、性能测试指标 性能测试是通过测试工具模拟多种正常、峰值及异常负载条件来对系统的各项性能指标进行测试。 目的:验证软件系统是否能够达到用户提出的性能指标,发现系统中存在的性能瓶颈并加以优化。 二、指标分为两大类: 软件…

ZKP9 SNARKs based on Linear PCP (Pinocchio Groth16)

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 9: SNARKs based on Linear PCP (Yupeng Zhang) SNARKs learned so far Earliest Implemented SNARKs Pros Shortest proof size (3 elements [Groth16])Fast verifier (bilinear pairing) Cons FFT and group exponentiatio…

西门子PLC ModbusTcp通信访问网关后从站(SCL语言轮询状态机FB)

西门子PLC的ModbusTcp通信在专栏已有系列文章介绍,所不同的是每个项目的通信需求都略有不同,今天我们以访问网关后的三个从站数据来举例,给出轮询的推荐写法,这里我们利用SCL语音进行编程,方便大家导入导出到自己的项目里使用,相关文章链接大家可以参考下面地址: SMART…

飞致云及其旗下1Panel项目进入2023年第三季度最具成长性开源初创榜单

2023年10月26日,知名风险投资机构Runa Capital发布2023年第三季度ROSS指数(Runa Open Source Startup Index)。ROSS指数按季度汇总并公布在代码托管平台GitHub上年化增长率(AGR)排名前二十位的开源初创公司和开源项目。…

CS224W4.4——矩阵分解和节点Embeddings

我们稍微切换一下方向,讨论生成节点嵌入的矩阵分解方法。具体来说,我们讨论了前面提到的学习节点嵌入的方法如何与矩阵分解的方法联系起来。基于这些直觉,我们提出了基于矩阵分解和随机游走的嵌入方法的3个局限性。在接下来,我们将…

基于51单片机霍尔测速直流电机控制设计

**单片机设计介绍,1658【毕设课设】基于51单片机霍尔测速直流电机控制设计(含源码、原理图、论文、PCB封装) 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 51单片机是微型计算机的一种常见类型,用于处理数…

GB28181协议如何注册

前言 GB28181协议是视频监控领域的国家标准,本文将解析如何在FFmpeg中增加对GB28181协议的支持,使其可以与支持GB28181协议的设备进行通信与控制,实现设备的注册、保活以及流媒体的传输。 1.背景介绍 GB28181协议指的是国家标准GB/T 28181…

S/4 HANA 中的 Email Template

1 如何创建Email Template? 没有特定的事务用于创建电子邮件模板,我们可以将其创建为 SE80 事务中的存储库对象,如下所示: 1,选择包(或本地对象)并右键单击。 2,选择“创建”->“更多”->“电子邮件模板” 尽管如此,对于已有的Email Template,可以使用程序…

音视频开发:音频编码原理+采集+编码实战

原理: 消除冗余信息,压缩量最大,也叫有损压缩 剔除人耳听觉范围外的音频信号20Hz以下和20000Hz以上;去除被掩蔽的音频信号,信号的遮蔽可以分为频域遮蔽和时域遮蔽;频域遮蔽效应 屏蔽70分贝以下&#xff0…

【QT】仿函数

函数调用运算符 () 也可以重载由于重载后使用的方式非常像函数的调用&#xff0c;因此称为仿函数仿函数没有固定写法&#xff0c;非常灵活 示例&#xff1a; #include <iostream> #include <string> using namespace std;class MyPrint { public://重载的运算符是…