2009-02-14 57 views
5

有一個名爲Uncommon Maths的Java庫,聲稱可以提供比Sun更好的隨機數生成器,甚至可能還有BouncyCastle。如何確定他們的圖書館是否可以信任?我相信Sun和BouncyCastle,因爲很多重要的公司都在使用他們的東西。目前尚不清楚Uncommon Maths是否屬於同一類別。有任何想法嗎?罕見的數學庫可信嗎?

+0

你可以問問開發人員自己:http://stackoverflow.com/users/5171/dan-dyer – 2009-02-14 04:48:18

+0

罕見的數學是由製表師框架,這是一個進化計算庫也由丹戴爾寫的分支。它已經存在了更長的時間,並且已經在幾個Apache項目中使用。我認爲它的社區信任歷史證明了它的價值。 – ingyhere 2014-01-15 03:19:45

回答

4

稀有數學聲稱通過Diehard tests來完成。這和我所知的一樣可靠。

您可以隨時成爲科學家,並作爲獨立檢查重新運行這些測試。

0

寫你自己的測試。

一個隨機數發生器的基本檢查可以使用chi-square test

8

好問題;)

所有的RNG算法是由人發明的聰明比我知名的算法。我是一名程序員,而不是數學家。我剛剛移植了原始的C代碼。所以你必須希望我沒有在轉換中引入任何錯誤。

與大多數開源軟件一樣,不存在任何擔保。如果你想用它進行模擬,我認爲這是一個非常好的選擇。如果你想用它來加密,像Fortuna這樣的東西會更好。

不常見數學不像一些圖書館那樣廣泛使用。它每週下載5到20次。我不知道有多少人真的會在嚴肅的應用中使用它。我將它用於evolutionary computation以及一些我一直在玩的與撲克有關的小程序。

我在每個RNG實現上都運行了Diehard,並沒有突出顯示任何缺陷。這就是說,死硬的結果不是最簡單的解釋:

因此,你不應該用 偶爾p值驚訝接近0或1,如 爲0.0012和0.9983。當比特流 確實失敗時,即使有好的 RNG,您也會在DIEHARD產生的數百個 之間發生p s of 0 or 1 to six or more places. By all means, do not, as a Statistician might, think that a p < .025 or p> .975 means that the RNG has "failed the test at the .05 level". Such p。所以請記住,「p 發生」。

Uncommons Maths RNGs都滿足這個成功的模糊定義。在0.025到0.975範圍之外有一個或兩個p值,但沒有一個「失敗很大」。這與使用Java的SecureRandom獲得的結果是可比的(並且比java.util.Random更好)。

如果你想自己測試這個,在發行版中有一個名爲DiehardInputGenerator的類。這會生成運行Diehard所需的12mb文件。