【发布时间】:2014-08-16 01:46:07
【问题描述】:
我在一次采访中被问到这个问题。
给定一个随机数生成器来生成一个介于 [0,N) 之间的数字,如何 证明这个数是均匀分布的。
我不知道如何解决这个问题,有什么建议吗?
【问题讨论】:
-
如果是黑匣子,那答案肯定是统计分析;但如果源可用,您可以分析remainder bias的算法
-
是的,根据建议改了
-
这个问题是专门询问分布,还是一般的随机性? RNG 的随机性和分布是独立的,您需要为每个运行不同的测试。
-
@CaptainCodeman 另外,xkcd: Random Number.
-
@ColeJohnson 不同意。显然,面试官认为这是他们希望候选人展示知识的东西。算法设计、实现和正确性通常需要数学,但这并不意味着它与数学有关。
标签: algorithm computer-science