※ 引述《asd823 (Jason)》之銘言:
: 這篇只單純聊抽獎機制猜測,之前再艦娘板也有大概聊過這種話題,
原文大量誤導我就不附上了.
直接講結論, 想要控制抽卡結果直接求神問卜都比在那邊想一堆有的沒的程式寫法有用
我是不知道為什麼一堆人對隨機數是建表產生的這麼情有獨鍾
這個問題可以分三個面向討論
一. 到底什麼是建表, 什麼是隨機數
除非真的有人去弄台儀器來產生真隨機數,
不然電腦的隨機數算法就是很單純的一個數字套公式算出下一個數字, 然後一直往下套
以C來說, 那個公式經過很巧妙的選擇使它在範圍內的數字都會跑過一次
也就是說把所有數字都跑過一次以後就會循環了
....
有沒有很熟悉? 這不就一堆人信誓旦旦說的建表?
所以我一直搞不懂建個表來跑轉蛋的理由在那. 建個公用表還要考慮一堆其他的問題.
就算其他語言的隨機算法不一樣, 大不了尻個C的隨機就解決了好嗎
別再建表啦!
二. 有表以後是否就可以破解轉蛋
一句話, 單機可以, 網路不可能.
古早時代的單機RPG因為會用到隨機的場合較少,
而且也沒有做把時間套進去當種子的概念,
所以很多遊戲可以靠重開機(種子固定)以後做固定動作產生固定結果刷寶
當然現代單機遊戲有可能可以, 理論上你只要把開遊戲時間精確到"毫秒"或是"微秒"
然後再搞清楚那些地方會呼叫隨機或重置隨機種子, 再破解它的運算方式
你就可以控制隨機數了
我要求不多, 麻煩來個人隨便找款5年內的遊戲示範上面這些步驟就好了
然後再講到網路遊戲, 除了上面那些要求以外,
你還得先知道伺服器啥時開機 (一樣精確到"毫秒"或"微秒")
還得知道你在進行操作的時候全世界有多少人做了其他會影響隨機的操作
然後恭喜, 你可以控制轉蛋結果了
三. 是否有人真的隨機數是建表一個一個抽的?
有, 單機遊戲我有看過. 它的目的是要維持在一個表內的機率恆定.
比如說角色可以升到50級, 這49級間總共會加100點生命
那我可以把這100點建個表隨機撒到49級內, 這樣每個人升每一級加的都不一樣
但50級時大家生命都會多100.
但是會這樣搞的人少之又少, 原因無他, 這超級麻煩
假設今天我想要改成加120點生命怎麼辦? 不就每個角色都要修正一次這張表
新創的角色表可以直接用新的建法
而如果有人已經30級了, 就要在剩下的20級內灑20點
已經50的人就要直接加20點
與其找自己麻煩還不如直接建一張表寫清楚每一級是多少生命, 大家都照著跑
用在轉蛋更是找自己麻煩
一般場合上面就講過了, 直接叫隨機出來用就好沒必要畫蛇添足再弄個表
但有時候可能大獎只要有限定數量
這種場合實務上多半是機率寫好以後再加個限制數量上去
比在那邊弄個公用表簡單多了
可能會有人講說公用表可以控制大獎要什麼時候出, 不會一開始就出
我是不知道講這句話是想把公用表建多大
是我的話就直接弄個前多少次抽獎絕對不會中大獎就好了
然後這種東西弄多了被玩家戳爆肯定就GG了
是我的話就不要搞那麼多怪招, 直接隨機數下去, 出事還可以學龍珠公佈原始碼, 多棒
不然弄個表到時候公佈原始碼被大家發現有公用表多不方便