2016-12-05 38 views
0

我想盡可能地避免重複。我運行了多次使用「隨機」數字的相同Matlab程序,並得到完全相同的結果。我知道我應該在開始時輸入命令shuffle,然後程序會根據時鐘的時間用新的種子替換默認的種子。但僞隨機數發生器的輸出序列仍將包含一個模式,即 。Matlab中可以使用在線量子隨機數發生器嗎?

我最近了解到一個量子箱隨機數發生器(this或類似的東西),並且在網上查找它的過程中,我發現了幾個網絡服務器,它們提供的量子機械手段不斷產生隨機數: ANU PhotonicsANU QRNG

要購買一個量子盒看起來很難買得起,所以我如何將一個在線服務器集成到Matlab中?

+0

(1)它的確聽起來你缺乏基礎知識或PRNGS,而你的*模式*是由於錯誤的使用。 (2)與着名的PRNGS相比,用(真正的隨機數字)*做一些壞事(科學地)要容易得多。 (3)我無法想象許多用例(實際上是零),我覺得需要使用這樣的服務。 (4)爲什麼同時發佈問題+答案? (5)**雖然您可能會以某種方式使用這些源,但我強烈建議告訴我們更多關於用例和!精確! PRNGS獲得的問題,因爲我覺得你在錯誤的道路上!** – sascha

+0

我正在研究信息理論,它是非常有意義的[Kolmogorov複雜性](https://en.wikipedia.org/wiki/Kolmogorov_complexity)的一系列隨機數不大於隨機數發生器的數目。因此,雖然'mod((key + pi)^ 5)'可能會產生隨機數,但實際上它非常簡單。雖然標準PRNG肯定比這更復雜,但在我的項目中,重要的是不要在我對Kolmogorov複雜性的估計中獲得任何不必要的錯誤。 – Post169

+0

現在的問題是如何估計這些複雜性。從實際的角度來看,沒有非差的PRNG輸出將不可能被壓縮(使用LZW/PPMZ等當前的算法),這給出了一些近似的邊界。那麼在基於硬件的設置中,您需要什麼樣的隨機數以及這些隨機數是如何生成的也很重要。這不是我的專長,但隨機抽取有它自己的複雜理論(從理論角度來看,基於熵估計的一切都是可怕的)。 – sascha

回答

0

http://qrng.anu.edu.au上,點擊文本中的「下載」鏈接,它會帶您進入FAQ page,它告訴您要下載哪些內容以不同的方式使用隨機數生成器。列表中的最後一個是Matlab,爲此它提供了一個鏈接,可以直接下載一些代碼以訪問隨機數並鏈接到Matlab Central以下載JSON解析器,這是工作所必需的。

該代碼非常簡單,並且腳本只顯示它提取的值,但可以輕鬆地轉換爲函數。我將parse_json.zip的內容解壓縮到C:/ Program Files/MATLAB/[version]/toolbox/JSONparser中,在Toolboxes中的一個新文件夾中,導航到Matlab當前文件夾中的Toolboxes,右鍵單擊JSONparser,然後單擊Add到路徑。

閱讀關於JSON解析器的Matlab中心頁面上的評論,以瞭解您一次可以拉下多少個隨機數的限制。

隨機數是16位非負整數;要創建一個更多位的隨機整數,比如32位,我建議採用其中兩個整數,乘以2^16,然後加上它們。如果你想要一個0到1之間的數字,除以2^32。