欢迎光临散文网 会员登陆 & 注册

【三国杀】基于蒙特卡洛仿真的张昌蒲“严教”技能分析

2022-09-25 01:19 作者:似晚非晚  | 我要投稿

武将介绍

张昌蒲【三国杀OL】

    张妈作为三国杀史上设计非常优秀的一名武将,早已被冠上了“数学老师”、“队友智商检测机”等名号,玩张昌蒲时那种恨铁不成钢的感觉属实揪心,那么到底是“严教”技能没用还是队友小笨蛋呢,本帖对其技能“严教”拿牌数权且进行一个分析,与杀友们共同探究其中的数字之谜。(本帖非攻略帖,攻略含量很低,想看攻略的可以看看其他UP主的攻略帖如二分算法等)。

    为了确切的知道张昌蒲“严教”能拿其中多少张牌,采用蒙特卡罗仿真的方法模拟严教亮出的牌组,然后以整数规划模型对其进行建模,从而计算其能拿到最多牌的最优策略。

分析流程


    为方便表述,记n为发动“严教”时亮出的牌数,f(n)为通过“严教”最多能获得的牌数。在张昌蒲的技能设定中,n最小为4,通过发动“省身”可以增加“严教”亮出的牌数,游戏中设定为n最大为10。

蒙特卡洛仿真方法

    蒙特卡洛仿真方法(Simulation)实际上就是对现实操作的模拟,与我们在三国杀OL中亮出牌没有本质区别,为了方便求解而采用此方法。通过不断的重复模拟,变量观察值必将收敛到其理论均值附近,观察值的累积均值随仿真重复次数的变化如下,因而可取重复次数为10000次。

    笔者看到网络上有基于穷举概率的“严教[4~8]”的理论分析(坤姐b站号有),这种算法自然是极好的,但仿真方法具有更好的实用性和扩展性,比如可以扩展到任意亮牌数的“严教”从而规避概率组合爆炸。(主要是穷举概率咱也算不明白啊)

“严教[6]”拿牌数的实验均值随仿真次数变化

混合整数线性规划求解“严教”

    显然,可以将此问题建模为如下整数规划模型进行求解,现有的很多张昌蒲计算器的小程序应该也采用的此类方法。

整数规划模型

    上述模型为定制化的模型,实际上我们可以将其推广到将任意I张卡牌划分到J组,也将模型推广到更具有一般性的混合整数线性规划模型(MIP)。需注意,本帖只计算拿牌数最多的最优解,在游戏中每张卡牌对张昌蒲和被“严教”玩家的价值和需要度非常复杂,且卡牌之间的组合价值也不尽相同,实战中需随机应变,如果在目标函数中给每张卡牌的价值赋权重则可以使此模型更为实用些,但永远无法保证最优策略。

混合整数线性规划模型


结果分析

    经过实验,主要结果汇集到如下表中:

“严教"实验结果

        通过分析,有如下结论:

  1. 随着亮出牌数量的增多,“严教”能拿到的牌数量也显著增加(废话)。同时可以归纳出如下结论,若不限制亮出的牌数量上限,则有极限:

    因为亮出牌的点数和为奇数和偶数的概率分别占二分之一,而偶数全拿的极限概率将逐渐收敛到1。

   2. 在亮出牌数[4,10]的区间内,随着亮出牌数量的增多,能拿到的最多牌数比n-1能拿到的牌数之差在逐渐降低,因而玩好张昌蒲应合理运营好自己的血量,在血量健康时积极追求第一次和第二次“省身”,因为这时侯“省身”的收益最高,“省身[1]”的收益高达1.71+1.5=3.21,而由1.中的极限式也可以推算出“省身”的收益将无限逼近2.5。

   3. 在求解时间方面,随着亮出牌数量的增多,计算时间的增量也有增加趋势,因而在严教[7+]后切勿苛求队友能够全拿走,知足常乐、常棣之华才是硬道理。

   4. 进一步统计了“严教”无解和触发“手牌上限-1”效果(未拿走的牌数大于1)的概率如下,用作参考:

“严教”实验分析

     可以看到,严教[6+]是必定有解的,有没有杀友知道其中的原因,笔者除了穷举法也未知其原理。而严教[4]手牌上限-1的概率竟高达0.5以上,因而如果需要手牌上限更应当找机会发动“省身[1]”或省身[2]。

    本期的分享就到这里啦,感谢观看。

    

参考代码


【三国杀】基于蒙特卡洛仿真的张昌蒲“严教”技能分析的评论 (共 条)

分享到微博请遵守国家法律