作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
您有一个有偏随机数生成器,它以概率 p 生成 1,以概率 (1-p) 生成 0。您不知道 p 的值。使用它可以生成一个无偏随机数生成器,它以 0.5 的概率生成 1,以 0.5 的概率生成 0。
注意:这道题是来自Cormen, Leiserson, Rivest, Stein的Introduction to Algorithms的练习题。(clrs)
最佳答案
事件 (p)(1-p) 和 (1-p)(p) 是等概率的。将它们分别取为 0 和 1,并丢弃其他两对结果,得到一个无偏随机生成器。
在代码中,这很容易完成:
int UnbiasedRandom()
{
int x, y;
do
{
x = BiasedRandom();
y = BiasedRandom();
} while (x == y);
return x;
}
关于algorithm - 使用有偏随机数生成器的无偏随机数生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1986859/
我是一名优秀的程序员,十分优秀!