巴哈姆特

哈啦區 超異域公主連結☆Re:Dive
查看全文

【密技】給非洲朋友一個小小建議(轉蛋學問)

綜合討論
Irene (rainsong) 2018-11-18 14:50:24
#1
你是否認為自己轉蛋運氣很差,身邊都是10抽20抽泳裝出貨,自己卻200抽0三星,或連續出現三隻真步來亂的慘況?

對於這種現象,通常會有「命注定」、「挖礦理論」、「系統是不是有問題or工程師的陰謀」,「我的是非洲號」等各種幻覺,不信邪的會繼續課好幾單拚出貨,結果下場是19N

於是,非洲人的同伴如我寫了這篇,歐洲人就不用往下看了,看完說不定蛋運會下降(?)

先說結論:非洲人不要瘋狂般的連按10連抽,自覺運氣差請關掉遊戲,隔些時間再上去抽!


當然玄學信不信看個人,而接下來的內容就是我要向各位解釋,為何我會有這種結論。

這裡探討的不是你的業障問題,而是伺服器端程式是如何計算機率的?首先各位可能聽過所謂的「亂數」,但是你懂電腦程式中的亂數是什麼意思嗎?你知道「亂數」是如何產生的嗎?

電腦中的亂數是透過演算法計算出來的,只要將seed代入就會得到亂數。前面這段話包含一些專有名詞,講白話一點:亂數是透過數學式計算出來的,只要隨機代入變數就會產生亂數。

所謂的數學式就像:

5a + 6

a代入1得11
a代入2得16

OK,由於計算式是固定的,代入相同變數(seed)會算出相同結果,故程式不該重複使用相同seed來產生亂數。實務上伺服器程式會接收各種硬體輸入充當seed,例如鍵盤、滑鼠,因為我們認為鍵盤鍵位的觸發是隨機的,是不可預測的,因此拿這個隨機值當成seed計算亂數。

如果重複使用seed,或是演算法不夠好,會發生什麼事情呢?

這就好像把糖扔進麵粉後沒有充分拌勻,烤出來的餅乾有些很甜,有些卻沒味道。看到這裡,有沒有一種似曾相識的感覺

TMD周圍同事轉蛋都好香,怎麼自己扒出來的都是渣渣

實務上seed的採樣與亂數演算過程複雜得多,不在本文討論範圍內。但是請認清:電腦的亂數未必真的亂,它只是代入一個不可預測的因子,獲得不可預測的結果。


OK,接下來,為什麼說要關掉遊戲,等待一段時間再連上去抽呢?

通常伺服器計算亂數時是很消耗資源的,而且也沒那麼多seed可以滿足所有玩家使用。因此實務上伺服器會預先準備一張「亂數表」,大量計算亂數後填充至表內,等待玩家轉蛋時再從這張表依序取出亂數。

花凛問:你掉的是金色懸賞令,還是銀色懸賞令?

換句話說,這張表產生時就已經決定了許多事情,例如玩家會不會當歐洲人百發百中,或是連續各種歪。


作法一:同一亂數表不停重複使用(最糟糕的作法!)

為了節省伺服器資源,或者工程師蓄意這樣設計,只在伺服器開機時算出唯一一張亂數表,然後重複使用該表直到關機。更誇張一點是永遠固定死一張亂數表。

這種設計唯一好處是伺服器幾乎沒有開銷,再多人同時轉蛋也不會出現卡頓現象。但,假設這張亂數表沒弄好,亂數不夠亂,會發生某些玩家好幾百抽都零3星的現象,同時又有人單抽把老婆帶出場。

假設這唯一一張亂數表3星出貨率換算出來是1%,那麼所有人都會感受到老婆特別難抽,懷疑機率是不是被偷改過,其實不是。不過這種作法現在應該很少見了。


作法二:在系統產生新亂數表之前,重複使用舊表

seed採樣與亂數計算是需要花時間的,填充一張亂數表按照表的容量大小,可能會花費幾秒到幾十秒的時間。

這麼長的時間當然不能讓成千上萬的玩家排隊等待!因此舊表耗盡時,在新表還沒填充完畢之前,繼續從頭利用舊表的內容,這麼做大量玩家轉蛋時也不會感受卡頓,同時改進機率的分佈,是目前主流作法。

聰明的你馬上能懂,假設同時轉蛋的人太多,同一張舊表重複使用率就會增加。為何我建議非洲人不要瘋狂連抽?因為TNND你就是在重複使用那張出貨率1%的舊表!

那麼,為何要特地登出遊戲一段時間呢?

有些伺服器程式在玩家登入時,會將亂數表直接綁到你的連線上,讓你進入非洲人的世界線。這種如果不重登,你就等著抽到棄坑。


作法三:永遠保證使用新的亂數表

開銷很高,是牽涉到密碼學才比較需要用到的技巧,不太可能用在遊戲中。


我不知道這遊戲在伺服器端用的是哪種作法,在無法確定哪種作法的情況下,建議重登來避開不幸的狀況。

以上

祝福各位轉蛋順利

我要去打撈我的黑騎了(哭)

看較舊的 42 則留言

沙皮: B31 2018-11-20 03:52

樓上 c語言的亂數本身也是從亂數表取出來的

shark: B45 2019-12-27 09:54

開銷哪會多大...,而且哪會跑十幾分鐘,10毫秒還差不多吧,你是生活在40年前喔

shark: B46 2019-12-27 09:54

一個程式設計師,又不是演算法工程師,怎麼會去看密碼學自己開發,馬都用open source,不管你說的哪種方法,完全都不是一個程序員會花超過10分鐘的東西。

嘎哩布: B47 2019-12-27 10:42

雲遊戲設計師 厲害,還密技勒 ^^

阿金: B48 2019-12-28 00:02

不然CY設計師在這跟你發廢文嗎?

延伸閱讀

閒聊7月56圖刷裝小建議

2022-07-16 01:51:30

閒聊39圖刷裝小建議

2021-02-10 03:35:49

【2024.4月公會戰1~4階段,全自動/短軸刀 隊伍

2024-04-24 09:55:19

心得台服4月戰隊戰純set懶人刀套餐 【4階

2024-04-23 16:34:50

心得台版四月份手動刀+補償刀分享

2024-04-24 13:57:57

閒聊66圖下半 刷裝小建議

2024-02-07 13:06:13

閒聊43&44圖刷裝小建議(緊急修正43-7不用刷)

2021-06-22 12:08:57

【翻譯】第521話「大地との繋がり」

2024-04-24 22:10:14

古色古香的歐式建築

看更多

【情報】城堡戰爭8.5(新版) 2024/01/17

魔獸爭霸

【情報】戰鬥道具、轉蛋券、貓薄荷/獸石、城堡素材、貓眼石、喵力達、本能珠珠無課金獲取方式

貓咪大戰爭(にゃんこ大戦争)

【心得】分享我的歌德式城堡~~(1/30更新 在6樓)

幻獸帕魯

開啟 APP

face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】