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

前言

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

三国杀中的概率学问题

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

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

神郭嘉慧识的期望摸牌数

在这里插入图片描述
神郭嘉是三国杀手杀中的一个武将,一技能慧识是一个强力的摸牌技。为了更好地研究这个问题,我们抛开体力上限小于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.mzph.cn/news/126834.shtml

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

相关文章

密码学基础

密码学总览 信息安全面临的危险与应对这些威胁的密码技术: 关于上图中的威胁,这里在简单的说明: 窃听:指的是需要保密的消息被第三方获取。篡改:指的是消息的内容被第三方修改,达到欺骗的效果。伪装&…

GoLong的学习之路(十七)基础工具之Gin框架使用JWT(前后端分离)

文章目录 JWT安装JWT使用什么是Claims默认Claims自定义Claims生成JWT解析JWT 在gin框架中使用JWT获取Token渠道定义方法设置中间件注册路由 总结一下 JWT JWT全称JSON Web Token是一种跨域认证解决方案,属于一个开放的标准,它规定了一种Token实现方式&a…

【LeetCode】415 字符串相加

415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和并同样以字符串形式返回。 你不能使用任何內建的用于处理大整数的库(比如 BigInteger), 也不能直接将输入的字符串转换为整数形式。 示例 1&#xff1a…

UNVEILING A CORE LINGUISTIC REGION IN LARGE LANGUAGE MODELS

本文是LLM系列文章,针对《UNVEILING A CORE LINGUISTIC REGION IN LARGE LANGUAGE MODELS》的翻译。 揭示大型语言模型中的核心语言区域 摘要1 引言2 前言和背景3 核心语言能力区4 讨论和未来工作5 结论 摘要 大脑定位描述了大脑特定区域与其相应功能之间的联系&a…

Window下SRS服务器的搭建

---2023.7.23 准备材料 srs下载:GitHub - ossrs/srs at 3.0release 目前srs release到5.0版本。 srs官方文档:Introduction | SRS (ossrs.net) Docker下载:Download Docker Desktop | Docker 进入docker官网选择window版本直接下载。由…

系列四十七、Spring的事务传播行为案例演示(七)#NOT_SUPPORTED

一、演示Spring的传播行为(NOT_SUPPORTED) 1.1、StockServiceImplNOT_SUPPORTED /*** Author : 一叶浮萍归大海* Date: 2023/10/30 15:43* Description: 演示NOT_SUPPORTED的传播行为* 外部不存在事务:不开启新的事务* 外部存在…

1.使用tensorflow

1.张量和操作 tensorflow对张量的操作实际上和numpy差不多,不够有所差距,numpy的数据可以随时被修改,但是tensorflow的数据要分情况。 (1).使用tf.Constant() a tf.Constant([[1,2,3],[4,5,6]]) 这个矩阵就是2*3的矩阵,但是它无…

7.多线程之单例模式

单例模式 文章目录 单例模式1. 什么是单例模式2. 饿汉模式3. 懒汉模式3.1 单线程版:3.2 多线程版 1. 什么是单例模式 单例模式是一种设计模式,常见的设计模式还有工厂模式、建造者模式等。 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码…

Vue3前端100个必要的知识点

为什么是必要的,就是这100个知识点学完后,能独立完成一个小项目。最终能得到一个解决方案。也算是前端知识的积累。如果后面有需要的地方可以回来查。100个其实比较多,我会按新手老鸟,大神来分成3个等级,话不多说&…

SQLyog连接数据库报plugin caching_sha2_password could not be loaded......解决方案

问题描述 问题分析 因为MySQL新版默认使用caching_sha2_password作为身份验证的插件,而旧版本使用的是mysql_native_password。当出现plugin caching_sha2_password could not be loaded报错,我们更换为旧版本 如何解决 先使用cmd命令登录MySQL&a…

【IDEA】设置sql提示

第一步:注入SQL语言 1.首先选择任意一条sql语句,右击,选择 ‘显示上下文操作’ 2.选择 ‘注入语言或引用’ 3. 往下翻,找到MySQL 第二步:配置MySQL数据库连接 1.首先点击侧边的数据库,再点击上面的加号 2…

蓝桥杯刷题

欢迎来到Cefler的博客😁 🕌博客主页:那个传说中的man的主页 🏠个人专栏:题目解析 🌎推荐文章:题目大解析(3) 👉🏻最大降雨量 原题链接&#xff1…

UIKit-WKNavigationDelegate

WKNavigationDelegate 是webKit框架中的一个代理协议,用于处理webVIew导航和与导航相关的事件 WKWebView 是IOS 8引入的一个高性能web视图控件, 相关API webView:didCommitNavigation 导航已经陈工完成且页面内容已经加载时调用此方法,这…

前端移动高级web详细解析五

响应式布局方案 媒体查询 Bootstrap框架 01-媒体查询 基本写法 max-width:最大宽度(小于等于) min-width:最小宽度(大于等于) 书写顺序 min-width(从小到大) max-width&…

MySQL数据库入门到精通——运维篇(1)

MySQL数据库入门到精通——运维篇(1) 1. 日志1.1 错误日志1.2 二进制日志1.3 查询日志1.4 慢查询日志 2. 主从复制2.1 主从复制的概述2.2 主从复制的原理2.3 主从复制的搭建2.3.1 服务器准备2.3.2 主库配置2.3.3 从库配置2.3.4 测试 1. 日志 在任何一种…

边界缩小维护最值——倒序枚举/中部切开:1101T2

http://cplusoj.com/d/senior/p/CPNOIPB 发现维护边界缩小类最值很难做,有两种常见方法: 倒序进行,边界就变成扩大了在 m i d mid mid 处切开,复杂度可以均摊

python实现MC协议(SLMP 3E帧)的TCP服务端(篇一)

python实现MC协议(SLMP 3E帧)的TCP服务端是一件稍微麻烦点的事情。它不像modbusTCP那样,可以使用现成的pymodbus模块去实现。但是,我们可以根据协议帧进行组包,自己去实现帧的格式,而这一切可以基于socket模…

记录 vue + vuetify + electron 安装过程

NodeJs 版本: 20 内容来自: Electron Vue.js Vuetify 构建跨平台应用_思月行云的博客-CSDN博客文章浏览阅读61次。Go coding!https://blog.csdn.net/kenkao/article/details/132600542 npm config set registry https://registry.npm.taobao.org np…

【c++|opencv】二、灰度变换和空间滤波---2.直方图和均衡化

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 图像直方图、直方图均衡化 1. 图像直方图 #include <iostream> #include <opencv2/opencv.hpp>using namespace cv; using namespace std;…

Android NDK开发详解之调试和性能分析的系统跟踪概览

Android NDK开发详解之调试和性能分析的系统跟踪概览 系统跟踪指南 “系统跟踪”就是记录短时间内的设备活动。系统跟踪会生成跟踪文件&#xff0c;该文件可用于生成系统报告。此报告有助于您了解如何最有效地提升应用或游戏的性能。 有关进行跟踪和性能分析的全面介绍&#x…