Skip to content

Instantly share code, notes, and snippets.

@mingsil
mingsil / prop.md
Created June 17, 2016 22:52 — forked from superlayone/prop.md
等概率问题

概率问题

  • 由非等概率Rand生成随机序列

题目:已知随机函数rand(),以p的概率产生0,以1-p的概率产生1,现在要求设计一个新的随机函数Rand(), 使其以1/n的等概率产生1~n之间的任意一个数

1、该问题可以先生成一个等概率0、1生成器。由于以p的概率产生0,以1-p的概率产生1,所以00、01、10、11的生成概率分别是p^2、p(1-p)、p(1-p)和(1-p)^2,我们发现生成01和10的概率是一样的,所以我们可以标记这两个序列构造0、1等概率生成器

    int gen(){
 int i1 = rand();