橘子也發公告了,你沒看錯,這次的機率不實是實際「高」於表定(以及其他相對不重要
的機率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這種時候就會發公告了
作者:
xo1100 (蝦蒸河粉)
2026-04-10 01:07:00修不修也沒差了 淡季玩家出逃中
修不了因為是屎山代碼所以下次改版統一加基本掉落率24%
作者:
orze04 (orz)
2026-04-10 01:53:00不要重新發明輪子、程式能動就不要動
作者:
ducamao (Macha)
2026-04-10 02:48:00比起這個問題比較大的還是活動掉落物或特定王掉落物不是照實際增加掉寶率計算吧,到現在才公布
說明版本是比喻吧 實際上就只是處理除不盡餘數沒做好
作者:
tonylolz (Itachi)
2026-04-10 06:55:00準備收一收吧
作者:
spfy (spfy)
2026-04-10 07:22:00這種最底層而且放了八百年沒人動 但能正常跑的程式碼 正常工程師都不可能去碰的 他們是被誰托夢的嗎
作者: hayate65536 2026-04-10 08:59:00
丟給AI吃的時候抓出來的吧?
作者:
ltytw (ltytw)
2026-04-10 09:03:00it is not bug, is feature
作者: crazyanight (crazyanight) 2026-04-10 09:05:00
楓谷機率都能信的嗎
比較直接一點的講法就是他把機率先近似成1e7/y,取一個0到y-1之間的隨機整數判斷他是否小於1e7,問題一般取這種隨機數的方式是找一個範圍更大的隨機整數除以y取餘數,但他這個32bit整數的範圍既沒比y大太多又不被y整除,導致不同餘數實際被取到的機率有比較明顯的差距