rand7生成rand10,rand1生成rand6,rand2生成rand5(包含了rand2生成rand3)
这种题要分两步,第一步是“插空儿”,第二步是“筛”
1.rand7生成rand10
只要是10的倍数就好
int rand10() {
        int num;
        do{
            num = (rand7() - ) *  + rand7() - ;
        }
        while(num >= );
        return num %  + ;
    }
概率计算:
https://blog.csdn.net/excellentlizhensbfhw/article/details/81174138
再将这49个数分为两部分, {0, 1, 2, ... , 39}和{40, 41, .., 48},如果生成的数处于第2部分,再将第二部分等概率分到第1部分,总概率 = 
2.rand01生成rand6(这个是面试指南上的题目)
int rand03(){
    return rand01() *  + rand01();
}
int rand6(){
    int num;
    do{
        num = rand03() *  + rand03();
    }
    while(num >= );
    return num %  + ;
}
第二题稍稍改改:rand01是一个以p概率产生0以1-p概率产生1的随机函数
这个时候就需要把rand01改成等概率的rand01p
int rand01p(){
    int num;
    do{
        num = rand01();
    }
    while(num == rand01());
    return num;
}
3.rand2生成rand5
int rand03(){
    return (rand2 - ) *  + rand2 - ;
}
int rand5(){
    int num;
    do{
        num = rand03() *  + rand03();
    }
    while(num > );
    return num %  + ;
}
2经过插空儿后无法大于5,或者说5的倍数,所以只能通过辅助的生成03这种方式再来生成一次
rand7生成rand10,rand1生成rand6,rand2生成rand5(包含了rand2生成rand3)的更多相关文章
- 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统
		
区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统 区块链区块的生成和链接,比特币btc的产生,UTXO的生成和消耗,比特币系统
 - QT中使用MinGW 编译的protobuf库--包含库的生成和使用
		
QT中使用MinGW 编译的protobuf库--包含库的生成和使用 0前言 1准备工作 2生成protobuf库文件 3在QT中测试protobuf的使用 4结语 0前言 最近要在QT中使用prot ...
 - 百度地图和高德地图坐标系的互相转换  四种Sandcastle方法生成c#.net帮助类帮助文档  文档API生成神器SandCastle使用心得  ASP.NET Core
		
百度地图和高德地图坐标系的互相转换 GPS.谷歌.百度.高德坐标相互转换 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记 ...
 - 在生成.net core 3.0程序时不包含nuget库
		
在.net core 3.0中,默认的生成行为有了两个变化,一个是默认生成可执行文件,另一个是会复制依赖的Nuget项. 前一个变化会默认生成可执行的exe,用起来更加方便了.另一个变化可能是为了减少 ...
 - SpringBoot接口 - 如何生成接口文档之非侵入方式(通过注释生成)Smart-Doc?
		
通过Swagger系列可以快速生成API文档,但是这种API文档生成是需要在接口上添加注解等,这表明这是一种侵入式方式: 那么有没有非侵入式方式呢, 比如通过注释生成文档? 本文主要介绍非侵入式的方式 ...
 - 470. 用 Rand7() 实现 Rand10()
		
已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数. public class Solution { public s ...
 - 随机数范围扩展(如rand7()到rand10())(转)
		
题目:已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10.分析:要保证rand10()在整数1-10的均匀分布,可以构造一个1-10*n的均 ...
 - 利用rand7()构造rand10()
		
题意 已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10 参考代码 int rand7() { srand((int)time(NULL)) ...
 - 利用rand7()  产生rand10()(腾讯)
		
题目1:已知rand7() 可以产生 1~7 的7个数(均匀概率),利用rand7() 产生rand10() 1~10(均匀概率) int rand10() { int temp; int te ...
 
随机推荐
- Android中自定义弹出PopupWindow后返回按键失效的问题解决
			
PopupWindow出现之后,默认的是所有的操作都无效的,除了HOME键.而且是可以操作后面的界面的.想要锁定后面的界面,很简单,只需要让PopupWindow是focusable的:popupWi ...
 - HotSpot 虚拟机中对象的创建过程
 - redis集群的远程管理与监控
			
一.redis集群的重要性 目前大部分的互联网平台,都会用到Redis内存数据库,以提高响应速度,提升用户使用体验. 为了实现Redis的高可用,通常都会布署Redis集群,使用Redis-Senti ...
 - 第一天-python基础
			
每一个今天的坚持都会改变明天的自己! 一.python介绍 python是一门由解释型.弱类型的高级开发编程语言,由龟叔于1989圣诞开发出,后经过二十多年的发展,因其简洁高效的特点而被广泛使用,在世 ...
 - CF17E Palisection
			
题意 给定一个长度为n的小写字母串.问你有多少对相交的回文子串(包含也算相交) 相交的回文子串个数 \(mod\ 51123987\) Sol 求相交的回文子串不太好求 考虑用总数减去不相交的回文串个 ...
 - 洛谷P3384 树链剖分
			
如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作: 操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z 操作2: 格式: 2 x ...
 - php中怎么理解Closure的bind和bindTo
			
bind是bindTo的静态版本,因此只说bind吧.(还不是太了解为什么要弄出两个版本) 官方文档: 复制一个闭包,绑定指定的$this对象和类作用域. 其实后半句表述很不清楚. 我的理解: 把一个 ...
 - meta name id class 标签的区别
			
meta https://zhidao.baidu.com/question/2052283721385566387.html name 跟 id 的区别 http://blog.csdn.net/f ...
 - react项目 路径优化
 - 【python爬虫】 之 爬取百度首页
			
刚开始学习爬虫,照着教程手打了一遍,还是蛮有成就感的.使用版本:python2.7 注意:python2的默认编码是ASCII编码而python3默认编码是utf-8 import urllib2 u ...