利用rand5()产生rand7().rand5()产生1到5的整数,rand7()产生1到7的整数.
来源:互联网 发布:ubuntu磁盘一直不足 编辑:程序博客网 时间:2024/05/01 17:24
利用rand5()产生的一个整数空间,然后将其映射到[1,7]的整数空间上,映射时保证概率相等,且等于1/7,下面介绍两个有意思的实现。
1.利用预置数组 该方法简单,易理解,但是不具扩展性,需要额外存储空间.
int rand7(){ int vals[5][5] = { {1,2,3,4,5}, {6,7,1,2,3}, {4,5,6,7,1}, {2,3,4,5,6}, {7,0,0,0,0} }; int result = 0; while(result == 0) { int i = rand5(); int j = rand5(); result = vals[i - 1][j - 1]; } return result;}
2.常规实现方法 可扩展,主要分为三步,构造大的整数区间,限制整数区间,最后映射整数区间。
int rand7(){ int i; do{ i = 5 * (rand5() - 1) + rand5(); //产生[1,25]的整数区间 }while(i > 21); //将[1,25]整数区间控制于[1,21] return i%7 + 1; //将[1,21]映射到[1,7]}
0 0
- 利用rand5()产生rand7().rand5()产生1到5的整数,rand7()产生1到7的整数.
- rand5产生rand7
- 算法--rand5()产生rand7()
- rand5()产生rand7()
- 利用rand5()产生rand7() 扩展:randn()
- rand5()产生rand7() 方法总结
- Moderate rand5()产生rand7() @CareerCup
- 给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 【转】给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 【转】给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 【转】给定一个函数rand5(),使函数rand7()可以随机等概率的生成1-7的整数
- 从rand5到rand7的思路和代码验证
- 已知rand7() 可以产生1~7的7个数(均匀概率),利用rand7()产生rand10()1~10(均匀概率)
- 程序员面试金典——解题总结: 9.17中等难题 17.11给定rand5(),实现一个方法rand7()。也就是,给定一个产生0到4(含)随机数的方法,编写一个产生0到6(含)随机数的方法
- 利用rand5构造rand7
- 1.0.1 JavaScript Array对象
- 安卓开发.SO文件
- 常用代码备份--OLE操作Excel之sheet复制
- Swift 基本控件UISlider学习
- Linux du命令
- 利用rand5()产生rand7().rand5()产生1到5的整数,rand7()产生1到7的整数.
- 第一行代码-8.2 接收和发送短信
- python文档生成工具pydoc在网页上查看的方法
- 与数据库的连接池说明、应用
- 【小镇的技术天梯】小镇的实战!mysql性能优化。
- flv格式学习
- 路由器被蹭网后,我有被黑的风险吗?
- Android React Native环境配置以及第一个实例
- 理解傅里叶变换