【发布时间】:2013-02-20 20:00:05
【问题描述】:
假设我有一个例程,当被调用时,它将使用 RNG 并在 30% 的时间返回 True,否则返回 False。这很简单。但是,如果我想模拟调用该例程 100 亿次会得到多少 True 结果呢?
在一个循环中调用它 100 亿次需要太长时间。将 100 亿乘以 30% 将得出 30 亿的统计预期结果,但不会涉及实际的随机性。 (结果是正好 30 亿的可能性也不是很大。)
是否有一种算法可以模拟这样一系列随机事件的聚合结果,这样如果它被多次调用,它给出的结果将显示与实际运行它多次模拟的随机序列相同的分布曲线,在 O(1) 时间内运行(即,随着要模拟的序列长度的增加,运行时间不会更长)?
【问题讨论】:
-
也许我遗漏了什么,但是你不知道生成函数的特性还是不知道?
-
正如所写,这可能是题外话。你会想要阅读binomial distribution。
标签: algorithm random language-agnostic