您的位置:首页 > 职场人生

九章算法面试题16 01随机生成函数

2015-05-12 13:34 387 查看

九章算法官网-原文网址

http://www.jiuzhang.com/problem/16/

题目

有一个01随机生成函数,rand(2),以p的概率生成1,1-p的概率生成0。请用这个生成函数设计一个等概率的01随机生成函数。

解答

随机2次,可能的结果有,00, 01, 10, 11。概率分别为:(1-p)*(1-p), (1-p)*p, p*(1-p), p*p。可以发现01和10的生成概率是相等的。因此让01代表0,10代表1,如果随机出了00或者11,就再随机2次。

面试官角度

本题和九章算法面试题13都是经典的随机数生成函数的题目。他们用到的一个基本思路通过多次随机构造答案所需要的等概率事件,该事件可能是生成结果的一个子集,在子集以外的结果,就重新来一次。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: