2015-10-29 17 views
0

大家好我一直在做一些閱讀,並且使用放射性衰變的熵來實現真正的隨機數生成。我寫了一個幫助工具,返回下一個隨機字節。它使用提供這種設置的服務器,我相信它的數據來自銫衰減。我做了相當多的搜索,並沒有真正能夠弄清楚如何使用它來生成範圍從0..n-1的數字。問:在一定範圍內使用拒收採樣來生成真隨機數(放射性衰變的熵)

的非官方SO IRC用戶告訴我,這

如果你有一個隨機字節,0..255分佈均勻,要在範圍內的隨機數0..5有6個值在輸出範圍內,在輸入範圍256中,最大倍數6即< = 256是252,因此您將隨機字節採樣,直到得到範圍爲0..251的數字,然後您可以將MOD 6的數字得到你的輸出編號。

我不知道如何採樣字節。我使用單個字節還是必須不斷請求更多字節?我真的只是難以置信地說出這些,所以任何不使用晦澀難懂的數學符號的透徹解釋都將非常值得讚賞。

謝謝。

回答

0

「採樣」是指(免責聲明:沒有字典的定義)「反覆檢查的價值」,所以你的情況,你會讀出字節,直到你得到一個在適當的範圍內,丟棄他人。

+0

這看起來非常密集。是否有可能以較少的隨機字節消耗來做同樣的事情,也許只是基於位的位置? –

+0

坦率地說,我可能和IRC上的那個人一樣可靠(甚至更少)。隨機性很難得到正確的結果,所以每當你想出某種捷徑時,最可能的結果就是隨機性的下降。 – Kayaman

+0

@DevinWall如果你的意思是每個輸出數字的平均輸入字節數爲1.01,那麼我想是這樣。您可以使用單個位來獲取每個輸入字節的更多輸出密度,但是如果您希望輸出值的均勻分佈,則不會繞過某些值的概率。 –

相關問題