随机数产生转换-根据(1,5)随机数生成器,生成(1,7)之内的随机数
1. 题目
给定一个随机数生成器,这个生成器能均匀生成1到5(1,5)的随机数,如何使用这个生成器生成均匀分布的1到7(1,7)的数?
2. 思路
方法一:生成两个(1,5)的随机数,这样一共是25种情况,注意这两个数是有顺序的,从这25种情况中,取前21种,每三种代表(1,7)中的一个数字,如果取到的是这21种以外的情况,丢掉重新取。
方法二:生成三个(1,5)的随机数,分别表示一个二进制位,其中1和2映射为0,3跳过,4和5映射为1。这样产生的三位二进制数,即1-8这8个数字都是等概率的。如果产生的是8,那么丢弃即可。
方法三:生成两个(1,5)的随机数,产生一个两位的五进制数,5 * (random5() – 1) + random5()。这个公式能够等概率产生1-25,即第一个随机数代表:0,5,10,15,20,地位代表1,2,3,4,5。这样对这个数字(1-25的数字),采用方法一的方法,只用1-21,分7分,代表1-7,22-25这4个数字扔掉。
3. 参考
根据(1,5)随机数生成器,生成(1,7)之内的随机数
[编程之美]随机数范围扩展方法总结
转载于:https://www.cnblogs.com/pangxiaodong/archive/2011/10/21/2220582.html
随机数产生转换-根据(1,5)随机数生成器,生成(1,7)之内的随机数相关推荐
- java中生成1000~10000之间的随机数
要生成在[min,max]之间的随机整数,可使用Random类进行相关运算: Random random = new Random(); int s = random.nextInt(max)%(ma ...
- 给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数
给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数 文章目录 给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数 一.问题 二.分析 三.错解 四.正解一 五.正解二 ...
- Vb生成一定范围内的随机数(含小数部分)
下面这个函数,可以生成一定范围内的随机数,可以指定小数位数. 比如 RndBetween (10, 99, 2) 返回 [10.00~99.00] 范围内的随机数. Function RndBetwe ...
- python生成一个含有20个随机数的列表_python随机模块22个函数详解(上)
作者:小伍哥 来源: AI入门学习 今天给大家纤细介绍下python中的随机模块,随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性.平时数据分析各种分 ...
- C/C++ 中生成特定范围内的随机数
大家在写 C/C++ 程序时,难免会遇到要求获取某个范围内的随机数,我查阅了一些资料后,总结如下.本文分两部分,先介绍 C 语言中与随机数相关的两个函数 srand 和 rand,后介绍 C++ 中的 ...
- Java黑皮书课后题第7章:*7.13(随机数选择器)编写一个方法,返回1到54之间的随机数,但不能是传递到实参中的数。指定如下方法头
7.13(随机数选择器)编写一个方法,返回1到54之间的随机数,但不能是传递到实参中的数.指定如下方法头 题目 题目描述 可变长参数列表 破题 代码 运行实例 题目 题目描述 7.13(随机数选择器) ...
- python从random生成列表_详解Python利用random生成一个列表内的随机数
详解Python利用random生成一个列表内的随机数 首先,需要导入random模块: import random 随机取1-33之间的1个随机数,可能重复: random.choice(range ...
- JS生成x到y的随机数
/** Math.random()* - 可以用来生成一个0-1之间的随机数* - 生成一个0-10的随机数* - 生成一个0-x之间的随机数* Math.round(Math.random()*x) ...
- html生成1-32位随机数,如何生成一个32位的随机数 | 求索阁
CStringA CreateHex(int max) { CStringA precision; precision.Format("%x",max); int size = p ...
- C++生成指定范围内的随机数
代码 rand()% 3 : 3就是范围,代表生成[0,3)之间的随机数 int main(){for (int i = 0; i < 20; i++) {switch (rand() % 3) ...
最新文章
- boost::mp11::mp_nth_element相关用法的测试程序
- 基于百度地图js进行地理定位
- 一些应该记住的东西(持续更新?再也不会更新了)
- [MySQL] mysql 的行级显式锁定和悲观锁
- jupyter notebook运行的快捷键_AI Studio-Notebook基础使用教程(一)
- ERROR 1130 (HY000): Host ‘192.168.3.238‘ is not allowed to connect to this MySQL server
- 计算理财产品收益的JS代码
- MINIS FORUM U820黑苹果安装教程
- 程序员因工资低拒绝offer,HR:估计你一辈子就是个程序员
- “代理服务器出现问题,或者地址有误”解决方案
- 30天数据分析与机器学习实践之Day16——Python文本数据分析:新闻分类任务
- HDU 5761 Rower Bo 物理题(积分求时间)
- android百度日语输入法下载,百度日文输入法
- 宝塔安装包下载linux版本,宝塔linux面板下载
- 目标检测网络(RCNN系列,SSD,Yolo系列)
- 栈的应用之中缀表达式转后缀
- SAP总账模块的基本功能
- 京东比价教程之 圈X-QuantumultX购物软件比价
- 极品飞车ol服务器维护,极品飞车ONLINE-官方网站-腾讯游戏
- 可信时间戳如何生成?可信时间戳技术原理
热门文章
- 使用winx dvd ripper转换视频,如何获得高质量的视频?
- 《Programming in Lua 3》读书笔记(九)
- BeyondCompare This license key has been revoked:
- www计算机会议影响力
- 【linux】16进制格式查看命令hexdump
- flume 整合kafka
- Wordpress 错误ERROR: Cookies are blocked or not supported by your browser.
- Asp.net MVC4 下二级联动
- PopTip View
- MVC中的service controller 有状态,无状态Bean线程安全