【恶魔轮盘赌】概率与策略 终极指南

您所在的位置:网站首页 射击俱乐部用的是实弹吗还是虚弹 【恶魔轮盘赌】概率与策略 终极指南

【恶魔轮盘赌】概率与策略 终极指南

2024-07-16 07:07| 来源: 网络整理| 查看: 265

一. 前言

恶魔轮盘赌,虽然名字里带个赌,但是随着道具的加入,对玩家策略和概率计算的要求高了许多。最开始,我自以为直接随着带着一点理性计算的感觉走就没有任何的问题,认为这就是一个很简单的游戏;然后,我看到很多up主非常脑溢血的操作,所以就有了写点简单的概率分析的想法。游戏上架steam并且还加了道具后,我感觉策略性更丰富了,值得唠嗑一下,所以就有了这篇文章。

计算获胜概率的算法非常简单,整个游戏的状态就是四个参数,你和大哥的血量,以及霰弹枪内实弹空弹的数目。但是,程序计算的结果让我实打实的吃了一惊:和我预想的完全不一样,下面也会提供具体的结论和算法,也算是给想凹分的大佬们提供点建议。

二. 反直觉的选择...?

让我们从剧情模式,也就是第一次玩游戏连踹两门第一次见到大哥开始吧。

第一次装弹:一实两虚。第一小回合无道具,纯粹的概率计算。

很多人第一发都会直接朝着自己射击,大概是因为“空弹概率比实弹概率大,所以先射自己”。但是如果你仔细想一下整个游戏的流程,你就知道第一发射大哥的优势比射自己大得多。

假设我们先射大哥,如果是实弹那就非常爽,直接结束;如果是空弹,那么现在枪里剩1实1虚,大哥需要做出选择,此时无论打谁都是50%概率。我们计算一下先射大哥后,大哥中弹的概率:

1/3 * 1 + 2/3 * 1/2 = 2/3

只要我们先射大哥,大哥就会有“两个回合”被枪指着,而我们只会有一个回合被枪指着,自然大哥中弹概率高很多。这也引申出这游戏隐性的一个资源,就是枪所指的位置的次数,下面就叫“枪指回合数”吧。最开始我以为只是把问题简化到这么简单以后,这个参数才显得比较重要,但实际上后面讨论的有一个很大的范围就和这个参数有关。在这里,我也先抛出一个结论:无论实弹虚弹的比例是多少,完全不考虑道具的参与,那么“无脑打大哥”就行(见下面的第三部分)。(无论弹比例是多少,先射对手的胜率不会低于0.5)

三. 经典的递归问题

不考虑道具,想计算最优解非常简单,这个问题也是一个很经典的递归计算的问题(或者高级点,这就是个动态规划问题)。假设在我们先手的时候,我们获胜的概率为f(hp, ehp, live, blank),参数分别为自己的血量、大哥血量、实弹数、虚弹数,那么显然有以下的等式:

公式写的很复杂,但实际上很简单,就是在开枪打大哥(第一行)还是开枪打自己(第二行)的两个选择里选获胜概率更大的那个。当然,实际编程比这个要复杂,一个是需要状态压缩,不然递归深度可能很深,一个是要选择边界条件不然会无限递归。

我是这么定义边界的:

如果所有实弹打完,谁血多算谁赢;一样血的话,则记为0.5。

谁血先清零,则谁输。

让我们看看,第一回合第二次装弹3-2的情况。第一回合已经有人挨了一枪了,看看此时的胜率:

第一轮自己挨了一枪第一轮大哥挨了一枪

可见,哪怕是最优解,也没有任何操作空间,一直朝对面开枪就行了。当然,如果第一回合中了一枪,为了节省时间还请直接重启游戏(迫真)

四. 啤酒仙人

大哥嗜喝酒,在扎了肾上腺素以后哪怕你桌子上有华子也会去抢啤酒。本来我以为啤酒没有什么特别好讨论的点,所以在编程之前我一直犹豫要不要把这个简单的结果编纂成文,直到我得到了非常反我直觉的结果,我一拍大腿,这专栏的内容不就来了嘛!

先下结论:啤酒不能乱喝;喝啤酒有可能会减少你的胜率!

因为我们定义了递归的边界,即当实弹用完时按照血量来决胜负,也就是说,当前枪内的实弹有两种情况,一种是实弹数目大于等于自己和大哥的血量之和,另一种情况是实弹数目少于血量之和,我们需要分别讨论:

当实弹数目大于等于血量之和,喝啤酒完全不改变双方的胜率。

当实弹数目小于血量之和,若当前实弹+虚弹的数目为奇数,喝啤酒降低胜率;实弹+虚弹的数目为偶数,喝啤酒提高胜率。

为什么会有奇数偶数的区别?还记得之前提到的“枪指回合数”吗?因为是己方先手,奇数子弹的时候大哥会多一个回合被枪指,而偶数子弹的时候双方一样,回合次数多受伤的概率就更大,所以喝啤酒强行退弹就会直接改变胜率。

那为什么实弹数目大于等于血量之和就不改变呢?首先是大于的情况,这个时候子弹管够,啤酒弹的子弹和你开枪实弹虚弹的概率是一样的。你打大哥一定交换控制权,实弹获利空弹损利;你喝啤酒一定不交换控制权,实弹损利空弹实际上获利(实弹管够,交换射击,同时少了空弹不确定性的影响),二者是能抵消的。接着是刚好等于的情况,实际上也和刚才的情况一样:因为第一发可能是原本应该送走大哥的那最后一颗实弹,也可能是减少不确定性的虚弹。所以,当实弹已经管够,纯喝啤酒的意义不大。

举例:

(2 2 3 3) 胜率0.5 -> 0.65; (2 2 3 4) 胜率0.628571 -> 0.5

(2 2 4 3) 胜率0.571429不变; (2 2 4 4) 胜率0.6不变

(2 3 4 4) 胜率0.242857 -> 0.371429; (2 3 4 3) 胜率0.371429 -> 0.242857

(2 3 5 5) 胜率0.31746不变; (2 3 5 6) 胜率0.292208不变

五. 简单道具

华子?没到上限无脑抽就是;肾上腺素?大哥桌上有好东西偷就完事;锯子?服务于战术的,概率上没太合适的评判标准;过期药?现在改成50%对50%的概率,只要生命数不会溢出吃就完事,胜利期望肯定是变大的,但是你的方差也会相应变大,看你能不能接受(这也同时是一般玩家拒绝吃过期药的原因,因为人们直觉上总是侥幸+厌恶风险的)。放大镜,准确获得当前枪内上膛的这发子弹的信息,和锯子一样,都是服务于战术的,不需要多讨论。

六. 未来手机与三门问题

每一个三门问题的视频下面都会有“不具备科学精神”的“民科”开杠。三门问题一直是我很想写专栏的一个问题,同时也附着只要学贝叶斯公式就一定不会漏掉的流行病假阳概率的概率学问题(后来感觉写这种东西浪费时间+反驳那些人有些掉价,就没写)。正好我发现未来手机这个模型很适合与三门问题进行对比,在这里就一起讨论了。

首先是三门问题的简述版:有三个门,一个有奖品、其他两个没奖品。你先选一个门,然后主持人一定会从剩下两个门里面打开一个空门,问你换不换门。这个问题非常简单,你使用“一定换门”的策略,你一开始选错了,这次换门就一定对;你一开始选对了,换门就一定错。你最开始选错的概率为2/3,所以你使用换门策略能拿到奖品的概率就是2/3。那为什么有的人认为开门后,两个门有奖品的概率都是1/2了???

大哥往枪里面塞了1实2空,你使用未来电话知道第二颗是空弹,那么这个时候第一颗是实弹的概率是多少?没错,从1/3变成了1/2!最后一颗也是一样!那这两题明明一样,为什么概率不同了呢?

因为未来电话是有可能告诉你第二颗或者第三颗弹是实弹的,但三门问题主持人不可能开有奖品的门给你!当你第一次选错门以后,主持人是“被迫开出一个空门”,而未来电话不会被迫一定要告诉你空子弹的位置!

所以,未来手机告诉你一个子弹的位置后,其他位置的子弹的分布依旧是均匀分布。

七. 过牌重视

感觉叫“过子弹重视”很怪,就用牌这个字了。如果你实际计算过,或者看了我之前给的数据,你应该清楚先手拥有的巨大优势:哪怕没任何道具,只要子弹管够,等血量开始,无论实虚子弹的比例,先手的胜率都是不低于50%的。因为在游戏中,永远是玩家先手,所以把子弹过完(比如疯狂喝啤酒退干净)不一定是个坏事。

之前有讨论胜率降低从0.62857降到0.5,实际上这个值只对了一半,因为你和大哥有可能会相同血量进入下一次装弹,而此时因为你是先手,你的胜率可能比50%高,所以如果有道具Combo的时候,喝啤酒“降胜率”不一定是个错误的选择。(同时,大哥可能有锯子,如果你跟他玩排队枪毙你可能还会亏,还不如过子弹)。

当大哥只有手锯,大哥1血你2血,枪里只有一实若干虚,你也可以选择一直朝自己开枪,赶紧过到下一轮拿道具把大哥干掉,避免被大哥赌到实弹扣两血暴毙。这么做显然会亏名义上的胜率,但是这种“安全打法”实际上能降低获胜概率的方差,显然是一个非常好的打法。当有战术的时候,概率的参考价值便不大了。当然这一切也是可以计算的,前提是你把作者生成血量和道具的代码扒出来。

八. 结语

游戏是游戏,现实是现实。十赌十输,不赌为赢。

每次你感觉有利可图的时候,建议翻翻《随机过程》看看生灭过程,然后放弃念想吧,哪来的天降馅饼。

(代码仓促写的,可能有bug,如果计算有错误欢迎指出)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3