[枫之谷] 长年实际机率高于设定机率 原厂又道歉

楼主: chejps3105 (氋氃)   2026-04-10 00:48:19
橘子也发公告了,你没看错,这次的机率不实是实际“高”于表定(以及其他相对不重要
的机率bug),是从开服至今都没被修正的有利于玩家的bug
https://maplestory.beanfun.com/bulletin?bid=80429
简单来说就是原厂发现开服至今20多年来掉宝率、爆击率等等使用的机率算法有bug(详
细我写在后面,没兴趣的可以跳过),导致实际的机率比设定的机率还高,所以要修正,
但是修正后大家实际掉落率都会下降,所以所有角色基本掉落率增加24%,以及道歉和虚
宝补偿
嗯……原来现代枫之谷还没办法摆脱20年前写的屎山代码,是说20多年都没工程师发现并
想修改这个对玩家有利的bug吗
=====以下是这次有问题的机率算法简介=====
依照金总监(韩版枫之谷总监)直播说的,使用了20多年的有bug的机率算法大致如下
中奖机率为 x (x大于0小于1),则产生 10000000/x (1000万除以x) 个箱子,然后会有 4
294967296 颗球(2的32次方),将所有的球平分到 10000000/x 个箱子内,其中会有 1000
0000(1000万) 个箱子是中奖的箱子,其余 10000000/x-10000000 个是没中奖的箱子,然
后从 4294967296 颗球中抽取一颗球,如果那颗球是放在中奖箱子的球,代表这次中奖了
问题来了,箱子数目不可能每次都能整除 4294967296 ,那余数的球怎么办,他们算法
设计会优先将多余的球放到中奖箱子,若中奖箱子全部都被额外多放一颗后还有剩才会放
到没中奖箱子,这就是导致实际机率比表定机率高的元凶
以中奖机率1%为例,会有1000万/1%=10亿个箱子
可整除部分每个箱子平分4颗球
剩余2亿9千万多颗球不能平分给10亿个箱子,所以其中1000万颗优先塞入中奖箱子,再剩
下的2亿8千万多颗球才放入没中奖箱子
那这样1000万个中奖箱子每个都会有各5颗球,所以共5000万颗球是中奖的
实际中奖机率5000万/42亿9496万7296=约1.164%,比1%高了约16.4%
那中奖机率1.1%实际会是怎样呢?会有1000万/1.1%=约9.09亿个箱子
可整除部分每个箱子平分4颗球,剩的也足够1000万颗中奖箱子各放1颗,所以掐指一算一
样共5000万颗球是中奖的,实际中奖机率5000万/42亿9496万7296=约1.164%,虽然和1%时
一模一样,但也有超过1.1%,看似问题不大,但大家仔细想想,如果1%和1.1%是因为穿上
10%掉宝装造成的(原本掉落率1%,穿上10%掉宝装,掉落率变1.1%),因为1%和1.1%实际机
率一样,所以会导致这件10%掉宝装有穿跟没穿根本没差,问题就相对比较大条了……
作者: zyxx (321)   2026-04-10 00:50:00
这种时候就会发公告了
作者: daidaidai02 (不推理的名侦探)   2026-04-10 00:50:00
公告出来就好了 但不必修吧
作者: negisan39 (The建)   2026-04-10 00:54:00
这么久才发现还修掉是闲台湾玩家太多吗w
作者: joy3252355 (九月 ~*)   2026-04-10 01:06:00
这个算法挺有趣的 感谢说明 借转专板
作者: xo1100 (虾蒸河粉)   2026-04-10 01:07:00
修不修也没差了 淡季玩家出逃中
作者: jeff666   2026-04-10 01:12:00
怎么发现的阿AI吗
作者: z900215ro (Kevin182)   2026-04-10 01:19:00
为什么要用这么多箱子占用系统资源啊
作者: qaz19wsx96 (xyz)   2026-04-10 01:23:00
修不了因为是屎山代码所以下次改版统一加基本掉落率24%
楼主: chejps3105 (氋氃)   2026-04-10 01:37:00
是修掉才给24%,没修干嘛再多给玩家增加掉宝率
作者: GawrGura3527 (鸣将)   2026-04-10 01:46:00
枫之谷改了这么多东西 居然还有没改的屎山代码
作者: orze04 (orz)   2026-04-10 01:53:00
不要重新发明轮子、程式能动就不要动
作者: livefish5566   2026-04-10 02:02:00
枫星关测试服了TMS 即将重返荣耀
作者: sillymon (塑胶袋)   2026-04-10 02:28:00
为什么是用这种箱子算法呀
作者: ducamao (Macha)   2026-04-10 02:48:00
比起这个问题比较大的还是活动掉落物或特定王掉落物不是照实际增加掉宝率计算吧,到现在才公布
作者: aegius1r (SC)   2026-04-10 04:29:00
说明版本是比喻吧 实际上就只是处理除不尽余数没做好
作者: tonylolz (Itachi)   2026-04-10 06:55:00
准备收一收吧
作者: Nitricacid (硝酸酸)   2026-04-10 06:56:00
码农祖训:能动就不要动
作者: devidevi (蜜蜜)   2026-04-10 07:20:00
高于设定机率还好阿,不要低于就好
作者: spfy (spfy)   2026-04-10 07:22:00
这种最底层而且放了八百年没人动 但能正常跑的程式码 正常工程师都不可能去碰的 他们是被谁托梦的吗
作者: kevin373tw1 (新竹哈比人)   2026-04-10 07:49:00
真的有高吗,还是觉得反正没人发现就这样写
作者: hayate65536   2026-04-10 08:59:00
丢给AI吃的时候抓出来的吧?
作者: ltytw (ltytw)   2026-04-10 09:03:00
it is not bug, is feature
作者: crazyanight (crazyanight)   2026-04-10 09:05:00
枫谷机率都能信的吗
作者: aaaaajack (丁丁是个人才)   2026-04-10 09:49:00
比较直接一点的讲法就是他把机率先近似成1e7/y,取一个0到y-1之间的随机整数判断他是否小于1e7,问题一般取这种随机数的方式是找一个范围更大的随机整数除以y取余数,但他这个32bit整数的范围既没比y大太多又不被y整除,导致不同余数实际被取到的机率有比较明显的差距

Links booklink

Contact Us: admin [ a t ] ucptt.com