看板 C_Chat 關於我們 聯絡資訊
橘子也發公告了,你沒看錯,這次的機率不實是實際「高」於表定(以及其他相對不重要 的機率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%掉寶裝有穿跟沒穿根本沒差,問題就相對比較大條了…… -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.8.162.151 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1775753301.A.226.html
zyxx: 這種時候就會發公告了 04/10 00:50
daidaidai02: 公告出來就好了 但不必修吧 04/10 00:50
negisan39: 這麼久才發現還修掉是閒台灣玩家太多嗎w 04/10 00:54
joy3252355: 這個演算法挺有趣的 感謝說明 借轉專板 04/10 01:06
joy3252355:轉錄至看板 MapleStory 04/10 01:06
xo1100: 修不修也沒差了 淡季玩家出逃中 04/10 01:07
jeff666: 怎麼發現的阿 04/10 01:12
jeff666: AI嗎 04/10 01:12
z900215ro: 為什麼要用這麼多箱子佔用系統資源啊 04/10 01:19
qaz19wsx96: 修不了因為是屎山代碼所以下次改版統一加基本掉落 04/10 01:23
qaz19wsx96: 率24% 04/10 01:23
chejps3105: 是修掉才給24%,沒修幹嘛再多給玩家增加掉寶率 04/10 01:37
GawrGura3527: 楓之谷改了這麼多東西 居然還有沒改的屎山代碼 04/10 01:46
orze04: 不要重新發明輪子、程式能動就不要動 04/10 01:53
livefish5566: 楓星關測試服了 04/10 02:02
livefish5566: TMS 即將重返榮耀 04/10 02:02
sillymon: 為什麼是用這種箱子算法呀 04/10 02:28
ducamao: 比起這個問題比較大的還是活動掉落物或特定王掉落物不是 04/10 02:48
ducamao: 照實際增加掉寶率計算吧,到現在才公布 04/10 02:48
aegius1r: 說明版本是比喻吧 實際上就只是處理除不盡餘數沒做好 04/10 04:29
tonylolz: 準備收一收吧 04/10 06:55
Nitricacid: 碼農祖訓:能動就不要動 04/10 06:56
devidevi: 高於設定機率還好阿,不要低於就好 04/10 07:20
spfy: 這種最底層而且放了八百年沒人動 但能正常跑的程式碼 正常 04/10 07:22
spfy: 工程師都不可能去碰的 他們是被誰托夢的嗎 04/10 07:22
kevin373tw1: 真的有高嗎,還是覺得反正沒人發現就這樣寫 04/10 07:49
hayate65536: 丟給AI吃的時候抓出來的吧? 04/10 08:59
ltytw: it is not bug, is feature 04/10 09:03
crazyanight: 楓谷機率都能信的嗎 04/10 09:05
aaaaajack: 比較直接一點的講法就是他把機率先近似成1e7/y,取一個 04/10 09:49
aaaaajack: 0到y-1之間的隨機整數判斷他是否小於1e7,問題一般取這 04/10 09:49
aaaaajack: 種隨機數的方式是找一個範圍更大的隨機整數除以y取餘數 04/10 09:49
aaaaajack: ,但他這個32bit整數的範圍既沒比y大太多又不被y整除, 04/10 09:49
aaaaajack: 導致不同餘數實際被取到的機率有比較明顯的差距 04/10 09:49
orze04: 很可能是AI去爬出來的 04/10 14:25
orze04: Claude Mythos最近就挖到OpenBSD一個27年的祖傳漏洞。 04/10 14:26