1 ,rand的返回值最大值是7fff

 使用位操作产生大的随机值

 

View Code

int bigRand()
{return rand()<<15&rand();
}
int rand(int l,int u)
{int k=(rand()%3)<<30&(rand()<<15)&rand();return l+k%(u-l+1);
}

2,随机选取0-n之间的一个i,取i,i+m-1共m个数,结果取模

3,m<n/2时,从n取一个数,在集合中的概率小于1/2,因此取值次数的期望是2

这里题目的描述并不严谨

4,总共要取m次,集合的大小从0,1,2...m-1,次数的期望分别是n/n,n/(n-1),n/(n-2)...n/(n-m+1)

当m=n时,和大概是nln(n)

7,第一问:添加一个最大值,输出时用最大值减一下,ps,如果m很大肯定会栈溢出

View Code

void randselect(int m,int n,int nMax)
{if(m>0){if(rand()%n<m){printf("%d\n",nMax-n+1);randselect(m-1,n-1,nMax);}elserandselect(m,n-1,nMax);}
}

 第二问:每一个元素要么选要么不选,递归产生所有的情况

View Code

void randselect(int m,int n,vector<int> p)
{if(m>0){if(n>m)randselect(m,n-1,p);p.push_back(n-1);randselect(m-1,n-1,p);         }else{for (int i=0;i<p.size();i++){printf("%d ",p[i]);}printf("\n");}
}
int main()
{vector<int> t;randselect(2,10,t);system("pause");return 1;
}

8,产生有顺序的数,然后混合一下,书后答案是生成后就输出,这个答案比较靠谱..

基于集合的算法可以使用比如multiset保存数

直接生成m个数

9,使用Floyd的生成算法

可以证明每个元素被选到的概率相等

10,这个题目是看明白了,答案看不明白,谷歌一下终于明白了

答案的意思是说不断读取下一行,同时保存一个变量x指示当前应选择的行

在第n行时有1/n的概率将x设为n

可以用递归证明取每一行的概率都是1/n

11,其实就是3在12后面的概率,因为不用考虑其他元素,这个概率是1/3

12,话说我没找到它说的那个m=0就会崩溃的程序,知道作者指的是哪个程序,我觉的作者的意思是某个历史上的程序如何如何,我觉得这里翻译得不大好,有些歧义

测试方法:可以生成大量数据进行统计

  

转载于:https://www.cnblogs.com/mightofcode/archive/2012/11/11/2765439.html

编程珠玑笔记-第12章习题相关推荐

  1. 编程珠玑之第三章习题8

    习题描述: 8.[S.C.Johnnson]七段显示设备实现十进制数字: 的廉价显示.七段显示通常如下编号: 编写一个使用5个七段显示数字来显示16位正整数的程序.输出为一个5个字节的数组,当且仅当数 ...

  2. 单片微型计算机徐春辉,单片微机原理及应用 徐春辉第12章 习题答案

    第12章习题解答 1.I/O接口和I/O端口有什么区别?I/O接口的功能是什么? 解:I/O端口简称I/O口,常指I/O接口电路中具有端口地址的寄存器或缓冲器.I/O接口是指单片机与外设间的I/O接口 ...

  3. 《C Primer Plus》学习笔记—第12章

    目录 <C Primer Plus>学习笔记 第12章 存储类别.链接和内存管理 1.存储类别 1.作用域 2.链接 3.存储期 4.自动变量 1.程序hiding.c 2.没有花括号的块 ...

  4. python核心教程第二版答案_python核心编程第二版第4章习题答案.docx

    python核心编程第二版第4章习题答案.docx 4-1.Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下. 答案: 所有的 Python 对象都拥有三个特性:身 ...

  5. JAVA网络编程个人笔记 第4章 inet地址

    JAVA网络编程个人笔记 第4章 inet地址 Internet寻址 创建InetAddress对象 常用方法 getLocalHost() 代码实现 getByName() 代码实现 getAllB ...

  6. c语言判断正整数位数 请用strengh,C语言程序设计-4、12章习题解答.doc

    C语言程序设计-4.12章习题解答 C语言程序设计概述 一个C程序的执行是从 A . A.从main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直 ...

  7. 编程珠玑第12章习题

    内容来自互联网,做了一些修改 参考: http://blog.csdn.net/tianshuai1111/article/details/7583297 http://blog.csdn.net/t ...

  8. TMS320C6748开发视频教程笔记 第12章 通用输入输出口 GPIO

    第12章 通用输入输出口 GPIO General-purpose input/output 12-1 相关例程演示 12-2 管脚复用配置 12-3 输入输出模式 12-4 中断 12-5 EDMA ...

  9. Real-time Rendering (3rd edition)学习笔记第1-2章

    本博文仅作学习使用,欢迎学习渲染和计算机图形学的朋友相互讨论. 目录 第1章 介绍 1.1 内容概括 1.2 符号和定义 1.2.1 数学符号 1.2.2 几何定义 进一步阅读和参考资料 第2章 图形 ...

最新文章

  1. python下载的库要放到哪里-Python下载url并保存文件的三种方法
  2. java 网络驱动器_删除多余的网络驱动器
  3. python 支持什么操作系统_操作系统1:什么是操作系统?
  4. 大华的支持rtmp推流吗_海康大华DSS视频拉流-RTSP转RTMP多媒体播放技术
  5. 【心情】bjdldrz
  6. 前景看淡,移动医疗九成或将成炮灰
  7. 慕课网 机器学习基础、任务、分类等笔记
  8. 破圈了!完美日记凭什么让周迅成为全球品牌代言人
  9. C语言状态机模块实现
  10. ⭐⭐⭐【DFS+理解题意】找出直系亲属
  11. Java修炼——手写服务器项目
  12. Java-数据结构:树,这份资料可帮你解决95%的问题
  13. MATLAB实现将图片转化为gif格式的动画
  14. sqrt (2)不使用数学库,求2的开方。
  15. python 隐藏进程_python在windows下创建隐藏窗口子进程的方法
  16. 【iOS与EV3混合机器人编程系列之二】工欲善其事,必先利其器(准备篇)
  17. Elasticsearch7.x SQL语法查询支持
  18. java 电子相册_[Java教程]电子相册特效
  19. 【赛迪智库】美国允许自动驾驶汽车取消方向盘对我国L4级自动驾驶的影响
  20. 没弄懂的 Texture Mipmap Streaming (Unity 2018.2)

热门文章

  1. 不受支持的SQL类型1111
  2. Codeforces Round #716 (Div. 2) C. Product 1 Modulo N
  3. java 编译环境不一致_安装多JDK后,java编译环境和运行环境版本(JDK版本) 不一致解决:...
  4. dbutils mysql_mysql之DBUtils
  5. matlab离散点包络,求大神指点绘制空间内散点图的包络面,,,散点程序如下
  6. 计算机网络—局域网的基本概念和体系结构
  7. 词法分析 有穷自动机
  8. Qt QTimer在线程的应用与思考
  9. Codeforces Round #197 (Div. 2): D. Xenia and Bit Operations(线段树)
  10. 2017 Multi-University Training Contest - Team 4:1002. Classic Quotation(KMP+DP)