作者gpc (gpc)
看板PerfectWorld
標題Re: [抱怨] 我終於理解為啥有人會懷疑有吸寶外掛了
時間Fri Jun 15 16:04:43 2007
※ 引述《mimi9126 (Presentation Error)》之銘言:
: 黃昏2-2多王,全團85up
: 打完神武羅的時候一個羽靈先走,換成一個71級的羽靈
: 結果這個羽靈在後面四隻王,鐵架掉兩個他吸一個,甲皮三個吸兩個
: 鬃毛三個吸兩個,星辰之粉兩個吸兩個
: ...會不會太誇張了?
: 當然不能就這樣說他用外掛,可是真的很難讓人不起疑心...
關於這個小弟我提出一些個人的看法 從科學的角度來分析吸飽的這個問題.
首先,一般程式設計當有"亂數"決定的時候,一般會使用這樣的羽法
int user;
user = int(rnd() * 6)+1;
這樣的與法會產生一個 1-6的整數存放到變數user中
假設A物品要歸什,我們可以利用上面的程式碼來產生決定一個值,這個值就是得到A物代號
rnd()是一個取亂樹的函數
但實際上rnd()這個函數,在程式中,經過編譯之後他的動作實際上是在一個特定的"亂數表"
中取出一個數值.
rnd()裡面可以填入"亂樹種子的標號",比方說,rnd(20)=0.156,
那以後我只要呼叫rnd(20)就會傳回0.156,因此我們並不能說亂數表是完全的亂數
實際上在隨機程式的編寫中,選擇亂樹種子最容易的方式就是 timer
timer是系統中的一個時間計數器,以秒為單位,最大為86400,也就是一天的秒數
隨著時間 不斷的在改變
當程式設計者使用時間(timer)做種子的時候,就會遇到一個問題
假設我要產生兩個亂數,當這兩個亂數,產生的時間相當接近,甚至可以說是瞬間的時候
由時間timer決定出來的種子可能會相同,導致取出來的亂數會一樣
這就是解示根據這個原理,當有寶物產生,會有連續吸到(因為亂樹種子相同),
或者挑揀(利用亂數種子接近的時候,剪下來的東西,會與同時間撿的人一樣)
因此從程式開發者的角度來看,亂數隨機 並非真正的亂數
只要你掌握住時間.隨機可能真的就不是隨機
當然我沒看過也沒反組譯程式,並不了解分寶部分是怎麼決定,但根據編寫程式
的經驗,與大多數的隨機程式處理方式,我想應該是十之八九吧
警功慘考~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.177.212
推 loon:寫的真棒...可惜錯字好多,看的很辛苦! 06/15 16:49
→ onezillion:也可以seed從0開始,全伺服器的seed指向同一個記憶體 06/15 16:51
→ onezillion:這樣比較接近完全亂數 06/15 16:52
→ onezillion:seed一直延續下去,就不會有時間的問題了 06/15 16:53
推 nolieda:老師._./我看不懂! 06/15 18:16
推 gpc:從連C的情況來看 應該是用時間做種... 06/15 18:24
推 alex1025:這世界上沒有人能保證亂數夠亂吧 06/15 19:35
→ mimi9126:關於這個,我記得有論文提出並証明能產生絕對隨機的亂數 06/15 20:14
推 chris:請問樓上相關資料在哪呀?是電腦自力產生的嗎? 06/15 21:17
推 skenbo0916:不是rnd()%6嗎? 06/15 21:33
推 chris:rnd出來的是0~1間的小數。 06/16 00:56