10_5随机数01

给定一个以p概率产生0,以1-p概率产生1的随机函数RandomP::f(),p是固定的值,但你并不知道是多少。除此之外不能使用任何额外的随机机制,请用RandomP::f()实现等概率随机产生0和1的随机函数。

class RandomP {
public:
    static int f();
};

class Random01 {
public:
    // 用RandomP::f()实现等概率的01返回
    int random01() {
        int a = RandomP::f();
        int b = RandomP::f();
        while(!a^b){
            a = RandomP::f();
            b = RandomP::f();
        }
        return a;
    }
};
```s
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容