你如何测试某些东西是随机的?还是"足够随机"?

e-s*_*tis 4 python random unit-testing

我必须从我的数据库中返回一个随机条目.

我写了一个函数,因为我random在Python中使用该模块,所以除非我以愚蠢的方式使用它.

现在,我如何编写一个单元测试来检查这个功能是否有效?毕竟,如果它是一个很好的随机值,你永远不会知道.

我不是偏执狂,我的功能并不复杂,而且Python标准库的时间足够1000 x,足以达到我的目的.我不是在做密码学或者是一些关键的东西.我只是想知道是否有办法.

Bil*_*ard 19

RANDOM.ORG上列出了几个用于测试随机性的统计测试.请参阅链接文章的最后两部分.

此外,如果你能得到美丽测试的副本,那么John D. Cook就有一整章称为测试随机数生成器.他解释了上面文章中列出的许多统计方法.如果您真的想了解RNG,那么这一章是一个非常好的起点.我自己写过这个主题,但约翰在解释它方面做得更好.


Esc*_*alo 6

你无法真正说出来(见卡通片).

但是,您可以测量生成的样本的,并根据您期望的熵对其进行测试.正如之前提到的那样,random.org做了一些非常聪明的测试.

替代文字