Re: [請益] 亂數表有沒有規律??
※ 引述《StaticVortex ()》之銘言:
: ※ 引述《semop (semop)》之銘言:
: : 電腦可以產生合乎各種亂數檢測方法、基本上無法逆推的 "真實亂數" (當然
: : 有人不同意這是 "真實" 亂數,但這是定義問題) 。
: : 只是一般來說,產生這種亂數的運算成本甚高。
: : 一個簡單的例子是拿 pi 或 e 值或更不常見的無理數作為基準來製作亂數,
: : 它們沒有常用的亂數方法的循環問題,永遠不會重複產生資料。
: : 但除非是使用硬體方法,無法產生 "自然亂數" 。
: : 現在已經有 http://random.org 這類網站出現,免費公開地提供硬體產生的
: : 自然亂數,以後電腦程式使用的亂數資料應該會逐漸改以自然亂數為主了。
: : 所以大家以後就別說電腦所使用的亂數都一定是假亂數了。這觀念要改一改。
: 對不起我是個門外漢,
: 如果避免了重複使用同一個亂數種子,
: 以及同一個亂數種子產生的亂數不要多過週期,
: 為什麼還需要這種自然亂數呢?
: 譬如以使用者的 input 時間間隔來取種子等等方式, 會遇到什麼限制嗎?
: 使用偽亂數還會遇到什麼樣的問題與困擾呢?
此問題應回歸於:為何需要亂數?
因實際需求,有些亂數要求無法預測以提升系統安全
有些亂數要求分佈足夠均勻以提升搜尋效果
而有些亂數要求模擬真實環境以測試系統容錯能力
基於以上需求,有些情況並非虛擬亂數可以滿足
無法預測的特性乃自然亂數優於虛擬亂數的原因之一
在一般的情況下
虛擬亂數 (如 Java 內建 Random 類別所含演算法) 已經足以應付大部分的需求
好比說:隨機從題庫抓練習題、隨機閱讀網路的一篇文章
並不需要多麼難以預測的亂數源,只要虛擬亂數即可。
然而,需要絕對無法被猜到的情況下,自然亂數比虛擬亂數更加可靠
好比說:隨機產生加密金鑰、隨機產生雜訊
自然亂數保證任何人都無法準確地猜到未來的亂數是多少
畢竟人類還沒有能力預言這個世界的所有細節。
回到原發問者的問題:以使用者的 input 時間間隔來取種子的方式會遇到什麼限制?
假設使用者 input 時間間隔足夠稱為自然亂數 (不是由機器精準地以固定時間輸入)
那麼,此種子即為自然亂數,後面的種種運算都是基於自然亂數的結果
此時間間隔不能說是偽亂數。
然而,如果將自然亂數再做一次虛擬亂數演算法所得到的數值,並不能稱之為自然亂數
因為每一次運算所得到數值都與自然亂數相關
連續做多次虛擬亂數演算法所得到一連串數字彼此之間有關聯
這些數字只能代表同一個自然亂數的衍生物
只要知道第一個數字是多少,後面的數字全部都可以推算出來
相對地,一連串真正的自然亂數是知道第一個數字,仍然無法推算出其他亂數是多少。
舉例而言,你有辦法知道另一個使用者 (人) input 的時間間隔嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.247.13
→
05/19 12:48, , 1F
05/19 12:48, 1F
→
05/19 12:48, , 2F
05/19 12:48, 2F
→
05/19 12:48, , 3F
05/19 12:48, 3F
→
05/19 12:49, , 4F
05/19 12:49, 4F
→
05/19 12:50, , 5F
05/19 12:50, 5F
討論串 (同標題文章)
ask-why 近期熱門文章
PTT職涯區 即時熱門文章