看板 PerfectWorld 關於我們 聯絡資訊
※ 引述《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