我们知道在C语言中有rand()函数可以提供随机数,rand()函数的范围为0到32727。我们假定认为rand()产生的随机数在0到32727范围内是等概率的。如果我们需要得到一个小范围内的随机数,比如0到55之间的随机数,那我们可以采用rand()U。但是对于我们要得到一个更大范围内的随机数,rand()便满足不了我们的要求。

1、用大的随机函数生成小的随机函数

利用等概率Rand5产生等概率Rand3

问题描述:现在有一个叫做Rand5的函数,可以生成等概率的[0,

5)范围内的随机整数,要求利用此函数写一个Rand3函数(除此之外,不能再使用任何能产生随机数的函数或数据源),生成等概率的[0,

3)范围内的随机整数。

int Rand3()

{

int x;

do

{

x = Rand5();

} while (x >= 3);

return x;

}

我们来证明一下:

以输出0为例,看看概率是多少。x的第一个有效数值是通过Rand5得到的。Rand5返回0的概率是1/5,如果这事儿发生了,我们就得到了0,否则只有当Rand5返回3或4的时候,我们才有机会再次调用它来得到新的数据。第二次调用Rand5之后,又是有1/5的概率得到0,2/5的概率得到3或4导致循环继续执行下去,如此反复。因此概率的计算公式为:

c语言 等概率随机数,等概率随机函数的实现(转)相关推荐

  1. 用人脑生成等概率随机数,困扰人类30万年的问题解决了 | 附“源代码”

    晓查 发自 凹非寺 量子位 出品 | 公众号 QbitAI 让人类随机说出一个1-10之间的整数(包括1和10),每个数字被选中的概率都是10%吗?答案当然是否定的. 半年前,有人对8500名学生做了 ...

  2. 随机数---等概率,特殊概率

    转自http://blog.csdn.net/liuxizhiyi/article/details/3097398 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间 ...

  3. R语言逻辑回归的预测概率怎么算

    在R语言直接通过predict 计算 概率 手动计算可能不会, 我的逻辑回归模型如上所示, 预测就是 predict(fit.logit,newdata = data.frame(Pregnancie ...

  4. java实现随机数抽奖_JAVA使用随机数实现概率抽奖

    本文实例为大家分享了JAVA使用随机数实现概率抽奖的具体代码,供大家参考,具体内容如下 需求 网站现有一抽奖功能,已经定义好奖品,每个奖品都有对应的中奖概率.通过奖品概率随机进行抽奖 实现思路 1.每 ...

  5. js抽奖事件——生成不同概率随机数

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 任务说明 一.任务要求 二.代码 1.关键代码 2.整体代码 总结 任务说明 js抽奖事件--生成不同概率随机数. 5支球队 ...

  6. python概率随机数_基于概率python的随机数

    嗨,我已经做了研究,我相信当我在这个线程结束时,我的方向是正确的:Basically my question is: what is the code in the link doing line b ...

  7. 概率分布函数和概率密度函数

    如果随机变量的值可以都可以逐个列举出来,则为离散型随机变量. 如果随机变量X的取值无法逐个列举则为连续型变量. 通俗解释:能够用日常使用的量词度量的取值,如次数,个数,块数等都是离散型随机变量.    ...

  8. 概率密度函数、概率分布函数、常见概率分布

    1. 概率函数 概率函数,就是用函数的形式来表达概率. pi=P(X=ai)(i=1,2,3,4,5,6)p_i=P(X=a_i)(i=1,2,3,4,5,6)pi​=P(X=ai​)(i=1,2,3 ...

  9. 如何理解概率分布函数和概率密度函数?

    我的理解: 当是离散型时,概率函数为pi=P(X=ai)(i=1,2,3,4,5,6),每次只能取一个点的概率:把所有可能的离散型随机变量的值分布和值的概率都列举出来那就是概率分布:概率分布函数就是在 ...

最新文章

  1. 红杉资源出售麦考林29%股份套现1亿美元
  2. 无限乱斗机器人ap出装_另类出装畅玩无限乱斗!AP小丑成致胜黑科技
  3. 当Java遇上机密计算,又一段奇幻之旅开始了!
  4. BlackBerry 开发笔记入门 J2ME
  5. python画图怎么调色_Python气象数据处理与绘图(19):如何使用NCL色板(调色盘思路相同)...
  6. linux QT 结束当前进程_嵌入式linux编程开发必备知识
  7. mysql主节点1593从节点正常_keepalived+双主架构
  8. python大文件排序_Python 大文件排序
  9. Wordpress如何正确书写Robots.txt
  10. excel表中怎么插入visio_Microsoft Visio2007中vsdx文件怎么打开|Visio插入表格方法
  11. word:清除格式(设置快捷键)
  12. ERP系统中BOM的作用
  13. 【PS】证件照转换背景色
  14. 敏捷开发讲义---如何打造敏捷团队
  15. html中js计算百钱百鸡,JS经典案例之百钱百鸡
  16. 第六届蓝桥杯大赛个人赛决赛(C/C++大学B组)
  17. python 收发微信之二:获取微信上行信息(利用 flask 框架实现 Web API,获取 WxPusher 上行微信)
  18. mvdbos php spider,踩坑,windows部署phpspider采集,报错:failed to open stream
  19. RabbitMQ 高级特性(吐血猝死整理篇)
  20. 怎么把PDF文件转换成CAD格式

热门文章

  1. 如何彻底删除windows10自带的美式键盘
  2. 求x+x2+x3+...+xn的值
  3. 不要以工作时长论英雄,不要以加班加点为美德
  4. String字符串类型
  5. 带您聚焦第十四届中国航展新看点
  6. Ondesoft AudioBook Converter 如何将iTunes有声读物转换为MP3?
  7. 按键为什么要进行消抖
  8. git push origin master报错的解决方法 常见git命令(待更新)
  9. 【陈工笔记】# Latex中,bib格式转换为bbl格式文件 #
  10. Web前端开发,必须规避的8个错误点!