看板 W-Philosophy 關於我們 聯絡資訊
※ 引述《reader (讀者)》之銘言: : → ericpony:可能要晚一點才有時間完整回文, 但在這之前還是先指出一 02/05 20:06 : → ericpony:個最明顯的問題: 您文中所定義的"重複性"性質, 對於真正 02/05 20:07 : → ericpony:的隨機數列而言,既不是充分條件也不是必要條件.(對於pi產 02/05 20:11 : → ericpony:生的數列我就不清楚了,要再查查)如果S是無限長的隨機數列 02/05 20:12 : → ericpony:那麼對於任意有限N, 此數列的 0~(N-1) 區段和 N~(2N-1) 02/05 20:14 : → ericpony:相同的機率恆不為零, 也就是說, 你永遠不知道一個隨機數 02/05 20:18 : → ericpony:列自下一步起是不是會開始重覆它自己(雖然機率極小)... 02/05 20:19 你說的沒錯,但傳統方法最大的問題就是狀態數有限,在一定的數列之後, 必然產生完全重覆的數列。這算是我表達不精確的問題。 : → ericpony:另一方面, 01001000100001000001...這個正規數列並不隨機 02/05 20:20 : → ericpony:但是它循環的週期為無限大(即不重覆,依您文中的定義) 02/05 20:22 對,所以並不是每一個無理數都可以用來做成隨機數列。現在普遍都還是使用 圓周率或是自然對數的底數有相關性的方法。 : 推 ericpony:另外,數論裡多的是規則有限但結果無法預測的數列, 就您CS 02/05 20:28 : → ericpony:的訓練應該也知道, "判斷一個程式所產生的序列是否循環" 02/05 20:31 : → ericpony:是等價於停機問題(即使您有完整的程式碼!) 這個事實和該 02/05 20:31 : → ericpony:碎碎唸了一堆,簡單說就是: 我覺得, 就您文中所提出的論證 02/05 20:36 : → ericpony:並不足以證明以pi數列為種子的亂數產生法比傳統方法優越 02/05 20:37 : → ericpony:程式使用的是"傳統亂數方法"還是"新方法"無關~ (補漏句 02/05 20:42 現在的問題是,傳統的方法,例如 standard C library 的 rand() 主要幾種 實作方法,都是在 2^n (一般 n 為 32) 個數之後「必定」重覆。若是在 open design 的狀況下,破解的可能性就會大得許多。 因此在使用一定次數之後,就得重設種子,而重設種子往往也只是打亂部分的 序列,如同將橋牌分成兩堆,後堆改成前堆,然後繼續發牌,其中的有序性仍 清晰可見。 無論是網路安全或人工智能研究,都不會覺得一個容易被分析破解、狀態數並 不多的亂數產生程式會是較好的選擇。 當然在工程上,由於系統限制,兩種方法有可能是等價的,例如現在最常用的 arc4random(), 理論雖是用新的方法,實作上則是一個約有 2^1700 個狀態, 較為強力的亂數產生程式,而不是一個狀態數可極大化的系統,於是我們確實 可用傳統方法製作出等價的系統。 -- ※ 編輯: reader 來自: 59.125.136.160 (02/06 02:16)