2015-10-29 19 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,那么我想是这样。您可以使用单个位来获取每个输入字节的更多输出密度,但是如果您希望输出值的均匀分布,则不会绕过某些值的概率。 –

相关问题