如何测试某物是否随机?或者“足够随机”?
我需要从我的数据库中随机返回一条记录。
我写了一个函数,因为我在用Python的random
模块,所以我觉得应该没问题,除非我用错了。
现在,我该怎么写一个单元测试来检查这个函数是否有效呢?毕竟,如果返回的是一个好的随机值,你永远也无法确定。
我并不是过于担心,我的函数并不复杂,而且Python的标准库在这方面已经足够好,不需要担心。我并不是在做加密或者其他重要的事情。我只是好奇有没有什么方法可以做到这一点。
5 个回答
10
21
在RANDOM.ORG网站上,有几个统计测试可以用来检查随机性。你可以查看那篇文章的最后两个部分。
另外,如果你能找到一本叫做Beautiful Testing的书,其中有一整章是John D. Cook写的,标题是测试随机数生成器。他详细解释了上面文章中提到的许多统计方法。如果你真的想了解随机数生成器,这一章是个很好的入门点。我自己也写过相关内容,但John的解释要清晰得多。