游戏设计——峰回路转?黑市买马问题的进一步研究


3楼猫 发布时间:2024-12-10 22:34:38 作者:AlbusDante Language

还记得上一期讨论的黑市买马问题吗?之前我们给出了一种解决方案,并将这道题目定性为错题,但经过后续进一步地思考,笔者发现对于这道题的探索还远没有结束,如果在题干中补齐一个前置条件,这将会是一道正确的题。

一、题目回顾

回顾一下原题:
在官方市场,有一匹马的价格是500铜币。玩家也可以前往黑市,黑市每次的入门费是20铜币。每次进入黑市,都可能发生以下事件: (1)有1%的概率,以50铜币购买一匹马。 (2)有3%的概率,以100铜币购买一匹马。 (3)有X%的概率,以250铜币购买一匹马。 (4)有Y%的概率,获得一枚碎片, 攒齐50枚碎片可以换一匹马。 (5)有50%的概率,啥也没有获得。 假设市场信息畅通无阻,玩家知道这些信息。 问:如果希望黑市马的期望价格与官方马的价格相同,那么事件(3)的发生概率X%应该是多少?
已经知道本问题的关键是事件(4),因为它的存在使得这个问题不再构成Markov Chain,在上篇文章我们按照大数定理求解,得到了一个结果为负的答案,但在验证结果的过程中,o1模型提供了一个递归求解算法,并得出了一个正数答案。而上次由于短期无法验证该答案的正确性,笔者并没有再朝这个方向做进一步研究,文章发布后,有读者在评论区对该种方法给出了一些分析,那么对这道题的研究就此结束了吗?
后来经过笔者的进一步思考,发现o1给出的递归思想并不是笔者一开始想当然的那样同解不同法,若按照此方法求解,我们将得到一个新的结果,并且明显这个结果才是出题人所希望的。

二、递归算法

o1模型给出的递归思想

o1模型给出的递归思想

再来看一下 o1 给出的算法思想,既然无法把买马过程看成一条链,那便把其按题目条件(4)拆分成 50 条构成 Markov process 且相互独立的链,即玩家分别拥有 0 个碎片,1 个碎片,...,49 个碎片时再去买马的情况。这 50 条独立的链是可以按照全概率公式分别计算价格期望的,考虑有 k 个碎片时的买马价格期望,只需将条件(4)转换为 E(k+1),且当玩家拥有 49 玫碎片时,再去买马对应的价格期望:
E(49)=47+5X
通过如下求解过程算出E(0)关于 Y 的函数:
接着用二分法编程求解该代数方程,MATLAB代码如下:
由上一篇文章结果可知,如方程有根则一定在 Y=46 附近,取初值 Y=46,代入后求解得 Y≈44.636998 ,在 46 附近变换初值,结果稳定,证明此时的 Y 确实是原方程的根,即在 X=1.36%,Y=44.64% 时,玩家在黑市购买第一匹马的期望价格与正常价格相等。

三、结果分析

在此笔者想要强调的是,如果题目不对玩家买马次数加以限制,那么按照上一期的求解方法我们得到的期望价格是玩家买无穷匹马时的极限情况,但本题微妙之处就在于此,如果只考虑玩家在黑市购买第一匹马时的价格期望,那么按照本文的递归算法同样可以解出一个正确的答案,且符合实际。
试想现实中,如果有游戏真的设计了这样一个市场机制,那么在活动刚上线被玩家一阵声讨后,一些玩家看到了笔者的分析文章,发现这竟然是一个稳赚不赔的购买系统,并分享到了游戏论坛,使得不少玩家又纷纷参与其中,而后不少运气好的玩家(混杂官方苟托)便会晒出自己省钱买马的截图,引得更多玩家下场参与。而设计这一切的游戏策划看着后台飙升的销量数据与风评逆转尽收渔翁之利,既达到了本次活动的流水指标,又让玩家心甘情愿的充钱的同时直呼“良心”,真是大赢特赢。
最后,有了买第一匹马的求解过程,感兴趣的读者可以再思考一下玩家买第二匹,第三匹,... ... ,第 n 匹马时的期望价格,还可以画一条曲线来观察期望价格变化规律,这将使得本题更具现实意义与可移植性,如果有好的想法也欢迎在评论区分享出来。


© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com