【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁


3樓貓 發佈時間:2024-02-25 13:13:00 作者:穿越8Q Language

【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁-第0張

名鑽假日賭場的幸運輪盤允許玩家轉動以抽取各種獎勵。多年以來,玩家發現通過控制搖動轉盤的力度、搖動轉盤的時機、遊戲內的幀數等要素,似乎可以改變幸運輪盤的轉速和時長,以讓轉盤指針最終停留在玩家所期望的結果附近。以此為基礎,各類 “四秒大法”、“五秒大法” 等奇招進而相繼誕生。那麼,這些操作的背後是否有理可循?而通過對腳本代碼的解讀,我們將給出名鑽假日賭場幸運輪盤的最終事實,即:其結果是一個完全隨機過程,不由玩家意志而發生改變,以此反駁迄今為止的所有各類 N 秒大法。

一、腳本代碼

下面是本地腳本 casino_lucky_wheel.c 中用於生成獎品的有關代碼。為了方便閱讀,所有變量名稱均作改動。

【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁-第1張

上面這段代碼告訴我們,函數 generating_lucky_wheel_prize() 定義並初始化了用於儲存 20 種幸運輪盤獎勵的數組 luckyWheelRewardType[20](分別對應幸運輪盤上的 20 格),並通過函數 GET_WEIGHT_OF_LUCKY_WHEEL_REWARD_TYPE() 彙總了每種獎勵的權重。這裡,每種獎勵的權重通過 20 個可調參數定義,每個是 5:

【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁-第2張

於是得出權重總和 sumOfWeight,即 100。

下一步,生成在 [0,100) 範圍內的一個隨機整數,並從獎勵 0 開始,判斷生成的隨機數是否小於等於該獎勵的權重 5——若小於,則選擇該獎勵;若大於,則將隨機數減去 5,並從下一個獎勵開始繼續判斷,直到選出獎勵。

通過這段代碼,遊戲確保了在所有 20 種獎勵中,每一種獎勵的選取都是隨機且等概率的,即 5%。而如果把一些同類型的獎勵概括為一種獎勵,那麼真實的獎勵概率,完全符合幸運輪盤界面所開示的概率,即:

  • 展臺載具:5%
  • 載具折扣:5%
  • 神秘獎品:5%
  • 服裝:20%
  • 籌碼:20%
  • 遊戲幣:20%
  • 聲望值:25%
【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁-第3張

二、隨機數發生器

這裡有一個問題,即上述代碼中用於獲取隨機數的隨機數發生器 MISC::GET_RANDOM_MWC_INT_IN_RANGE() 是否充分滿足其隨機性?因為如果其生成的序列過分簡單,例如生成某一些數字的概率遠大於其他數字,反映到幸運輪盤中就將是抽中某一個獎品的概率遠大於其他概率,那麼所謂的隨機也就無從談起了。

關於這一點則不必擔心。事實上,Rockstar 專門給幸運輪盤採用了一個更高精度、更高質量的隨機數發生器——進位相乘法偽隨機數發射器(Multiply-with-carry Pseudorandom Number Generator,MWCPRNG),其可以在一秒內生成一千萬個具有巨大週期的不同的隨機數序列,因而完全不必擔心其隨機性問題。對這一算法感興趣的,可參考維基百科條目。

【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁-第4張

三、幸運輪盤結果的確定

接下來我們回答一個問題:幸運輪盤的結果是從何時開始生成並確定的?答案是當玩家在幸運轉盤按下 E 時。

當玩家進入賭場時,局部腳本 casino_lucky_wheel 就開始載入。在玩家沒有按下 E 時,幸運輪盤的結果是 -1,即無;只要玩家按下 E,那麼輪盤結果就立刻傳輸至有關的局部變量之中予以儲存。接下來,玩家無論在什麼時機以什麼樣的力度、什麼樣的幀數轉動轉盤,都只會導向早就已經確定了的結果。

只不過,Rockstar 在這一步耍了一點心機,那就是玩家的轉動轉盤的時機確實會導致轉盤存在肉眼可見的轉速區別。事實上,轉盤的轉速由且僅由以下因素決定:

  • 若玩家在第 0 ~ 2 秒間搖動轉盤,則轉盤是一個 “快轉(Fast Spin)”;
  • 若玩家在第 2 ~ 3.5 秒間搖動轉盤,則轉盤是一個 “中轉(Medium Spin)”;
  • 若玩家在第 3.5 秒以後搖動轉盤,則轉盤是一個 “慢轉(Slow Spin)”。

但是,無論轉盤的轉速如何,都只是通過加減轉盤轉動的週期來進行誤導,以讓玩家覺得 “結果是可以自己控制的” 罷了。例如,假設玩家選中的獎品默認情況需要花 5 圈 + 5 格來轉到,如果玩家轉得慢一點,那就轉 2 圈 + 5 格;如果玩家轉得快一點,那就轉 10 圈 + 5 格。無論怎樣,最終的結果是相同的。

需要注意的是,玩家如果按下 E 但是又退出去,那麼重新進入轉盤的時候,結果又會重選一遍。因而,假設存在一種方法使得玩家可以觀測到結果,那麼玩家就可以反覆進退轉盤,直到看到心儀的結果時,再轉下轉盤。

四、驗證

下面我們來實際驗證幸運輪盤的隨機性。這裡,我們調用有關腳本來模擬玩家的抽轉情況。我們讓幸運輪盤結果每 5 秒鐘就重算一次(相當於讓玩家每 5 秒鐘就進退一次轉盤),以此運算一千次,來觀察最終的概率分佈。

【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁-第5張

可見,最終的概率分佈已經相當接近系統開示的概率。

【俠盜獵車手5】名鑽假日賭場幸運輪盤原理——對傳統“N秒大法”的反駁-第6張

五、省流

最後通過正式回答開頭的問題來結束本文:

——這麼多年以來,那些各類 “N 秒大法” 都是玄學、毫無任何依據可言嗎?

——對。

尊重概率吧。

六、補充

在第四節調用腳本的部分,Tez2 提供了一些幫助。

事實上,Tez2 在以前就發佈過幾段遊戲內的實機測試視頻,證明了 “當玩家按下 E 時結果就已經確定了,與搖動的時機、力度等均無關”,具體可見此處(Youtube 視頻)。

在這段視頻中,當 Tez2 按下 E 的時候,輪盤結果就已經確定為了 14,對照第一部分的數據,可知這是 $40,000。然後 Tez2 搖下轉盤,結果準確無誤地停留在了 $40,000 的格子上。

以下是其評價:

...There's no way to guarantee a vehicle prize or a mystery prize by waiting 4 seconds or by attempting myths like that. Your result is determined from the moment you accept the prompt. What I will say is that the result changes every time you exit and accept the prompt again. You don't have to spin, but simply exit and enter the animation. However, you wouldn't be able to figure out whether a spin is good or not from doing that so it's totally guesswork. You could end up replacing your vehicle prize with something less worthy for all we know.

本文原作者為 @一日暮言葉,系受權發佈。


© 2022 3樓貓 下載APP 站點地圖 廣告合作:asmrly666@gmail.com