题目:假设你希望以各1/2的概率输出0和1。你可以自由使用一个输出0或1的过程brandom.它以概率p输出1,1-p输出0,不知道p直,给一个利用brandom的算法返回0和1的概率为1/2.

解答:

#include<iostream.h>
#include<time.h>
#include<stdlib.h>
#define MinProb 3.05185094759972e-5
bool happened(double probability)//probability 0~1
{
if(probability<0)return false;
if(probability<MinProb)
return rand()==0&&happened(probability/MinProb);
if(rand()<=probability*RAND_MAX)
return true;
return false;
}

bool happened2(double p){
bool m1,m2;
while(1){
m1=happened(p);
m2=happened(p);
if(m1!=m2)
return m1;
}
}

void main()
{
long happen=0;
srand(time(0));
for(long i=0;i<1000000;++i)
if(happened2(0.9))++happen;
cout<<happen<<endl;
}

转载于:https://www.cnblogs.com/593213556wuyubao/archive/2012/10/24/2736797.html

算法导论-概率发生器相关推荐

  1. 【算法导论学习-012】n个数随机等概率的抽样m个

    算法法导论>P129页课后题5.3-7 suppose we want to create a random sample of the set {1,2,3,-,n}, thatis, an ...

  2. 算法导论中C语言代码,算法导论-学习笔记与进度

    算法导论 阅读进度 第一部分 基础知识 第一章 计算中算法的角色 Done 1.1 算法 输入与输出 算法可以解决哪些问题 数据结构 技术 一些比较难的问题 1.2 作为一种技术的算法 效率 算法和其 ...

  3. 散列表(算法导论笔记)

    散列表 直接寻址表 一个数组T[0..m-1]中的每个位置分别对应全域U中的一个关键字,槽k指向集合中一个关键字为k的元素,如果该集合中没有关键字为k的元素,则T[k] = NIL 全域U={0,1, ...

  4. 【算法导论33】跳跃表(Skip list)原理与java实现

    Skip list是一个用于有序元素序列快速搜索的数据结构,由美国计算机科学家William Pugh发明于1989年.它的效率和红黑树以及 AVL 树不相上下,但实现起来比较容易.作者William ...

  5. 麻省理工学院《算法导论》(MIT - Introduction to Algorithms)

    关于课本的介绍如下: 本书自第一版出版以来,已经成为世界范围内广泛使用的大学教材和专业人员的标准参考手册.本书全面论述了算法的内容,从一定深度上涵盖了算法的诸多方面,同时其讲授和分析方法又兼顾了各个层 ...

  6. 算法导论 — 比较排序算法对比实验

    <算法导论>这本书介绍了5种比较排序算法:插入排序.冒泡排序.归并排序.堆排序.快速排序.我们现在通过实验来对比这5种排序算法的运行时间.用随机数发生器生成不同长度的数组,将每种算法应用于 ...

  7. 《算法导论》习题5.3-1 ~ 5.3-7

    <算法导论>习题 5.3.1 - 5.3.7  5.3-5 带星号我抄了一下题目, 5.3-6 比较有意思我抄了一下题目, 其他的题可以自己对照书(原书第三版). 5.3-1   直接考虑 ...

  8. 算法导论中英文版下载

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 算法导论 ...

  9. 网易公开课-MIT麻省理工学院《算法导论》 学习笔记(1)

    本文为麻省理工学院<算法导论>课程第一讲的学习笔记. 网易云课堂上该课程的网站为http://open.163.com/special/opencourse/algorithms.html ...

最新文章

  1. docker logstash log docker logs to elasticsearch
  2. Android之app引导页(背景图片切换加各个页面动画效果)
  3. P3288-[SCOI2014]方伯伯运椰子【0/1分数规划,负环】
  4. 模拟网页行为之工具篇
  5. c++ new 数组_用Java实现JVM第八章《数组和字符串》
  6. 孤独的个人在社会中生存应掌握的基本健康技能(个人分析)
  7. raise JSONDecodeError(“Expecting value“, s, err.value) from None
  8. DeepMind登上Science:“和AI相比,人类都是猪队友”,团战称霸雷神之锤3
  9. vSphere虚拟机磁盘热扩容
  10. ISO/IEC 27000官方文档
  11. 阿里图标库运用于项目---实例
  12. 数据分析EXCEL常用统计函数
  13. 《计算机世界》封面报道:互联网10年孤独[z]
  14. 【报错】Verion 9 of Highlight.js has reached EOL
  15. Django migrate 报错,通过fake 和 --fake-initial来修复
  16. 安卓开发实战!一年后斩获腾讯T3,年薪超过80万!
  17. android 本地数据库持久化框架,android数据库持久化框架, ormlite框架,
  18. pdc-admin 学习心得
  19. android 控件美化,Android UI 美化
  20. 华为服务器显示100错误,华为12708风扇狂转100%故障排除

热门文章

  1. python threading_【python标准库学习】thread,threading(一)多线程的介绍和使用
  2. python的字符串_百度资讯搜索_python的字符串
  3. openresty完全开发指南_FDA拟修订群体药代动力学指南:医药商需要了解些什么?...
  4. alert点击确定后跳转_公众号/h5 跳转到小程序填坑指南
  5. 3d打印 路径规划_3D打印螺旋桨技术的应用和挑战
  6. python ioc di_PHP的依赖注入(DI) 和 控制反转(IoC)
  7. android 请求参数打印,Android开发-----关于解决Retrofit打印HttpLog和设置连接超时的问题...
  8. 如何获得CSDN访问量和积分
  9. ubuntu下安装jre的步骤
  10. myeclipse10.1破解方法