题目:  计算机使用的随机数生成器往往是伪随机的,为了达到统计意义上的真随机数,可以需要引入系统 外的变量等作为随机种子(如UNIX系统中熵池)。假设有一天出现了上帝的投硬币函数: int G(); 由于这里用到的上帝硬币可能不均匀。但可以保证是G()可以x概率返回1,1-x的概率返回0,其中x为未知常数(且x不等于0或1)。 请实现目标函数: int F(double p); 要求 1. F函数以概率p返回1,以1-p返回0。 2. 除了G之外,不使用的任何库函数。 PS:定义宏UINT_MAX=0xffffffff 基于前述类似思路,请构造函数求下述无理数近似值: 1. double pi(); //圆周率π 2. double e(); // 自然对数函数的底数e。 提示:作为模拟过程,可引入最高重复试验次数,请简述思路并完成代码。 群主解答: 利用G()生成01和10概率是相同的 1.接下来假设01的概率生成1,10的概率生成0 2.那么假设p为3/7,那通过上面的假设构造出等概率的000 001 010 011 100 101 110 111八种概率结果 3.去掉其中一个,取三个为1,得到3/7概率为1的函数。 总结:每个有理数P可以构造为分数a/b,然后构造2^m>b的m位数字,去掉多余的2^m-b个数,制定其中a个数字为1,其他的为0. 至于无理数的求解有一些数学知识,利用下面公式加上群主的第一个方法就可以啦。
点赞 评论

相关推荐

不愿透露姓名的神秘牛友
昨天 15:39
点赞 评论 收藏
分享
xdm怎么说 要被拷打了 担心是KPI
丹田:面就完了,就当日薪四位数的大佬免费给给你面试。
点赞 评论 收藏
分享
05-19 15:21
已编辑
华南农业大学 Java
白火同学:你才沟通了200,说实话,北上广深杭这里面你连一座城市的互联网公司都没投满呢,更别说还有各种准一线二线城市了。等你沟通突破了三位数,还没结果再考虑转行的事吧。
点赞 评论 收藏
分享
强大的马里奥:不太可能,我校计算机硕士就业率99%
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务