用公平硬币模拟任意概率 的事件
Probability Simulation
题目详情
仅用一枚公平硬币,如何模拟一个发生概率为 的事件?
Fair coin => game with prob p in (0,1)?
解析
把 写成二进制小数:。
反复抛硬币得到随机比特 :
- 若首次出现 ,则判定“事件发生”;
- 若首次出现 ,则判定“不发生”;
- 若 ,继续抛下一个比特。
因为随机二进制小数在 上均匀,上述逐位比较等价于比较一个均匀随机数与 。
Original Explanation
Write in binary. Flip coin => bit . If => win, if => lose, else keep flipping.