




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第五节 产生指定范围的随机数本节任务 本节的任务是学会通过程序生成某个区间的随机整数,用以解决一些简单的随机模拟的问题。 学习要点 关键是掌握随机函数以及随机函数的种子函数的使用;同时,编程已经有些时日了,也应该懂得程序的调试,以加快学会编程的步伐。 8/2/20221C语言案例教程51 模拟一个区间的随机整数 本段任务 学会使用random()函数和randomize()函数产生a,b间的随机数。511 随机函数random()和种子函数randomize()随机函数random()和相关的种子函数randomize()。这两个函数要用到头文件:stdlib.h,种子函数还要用到头文件tim
2、e.h。这两个函数在TC中被归类到其它函数里。随机函数random(int n);每调用一次,产生一个大于等于0、小于n范围内的随机整数。 8/2/20222C语言案例教程例1_5_1 使用随机函数生成0,n)的整数,n由键盘输入。 /* 1_5L1.C */ #include #include #include main() int in; clrscr(); randomize(); printf(Input n=); scanf(%d,&in); printf(rn); printf(%4d,random(in); printf(%4d,random(in); printf(%4d,ra
3、ndom(in); printf(%4d,random(in); printf(%4d,random(in); printf(%4d,random(in); printf(%4d,random(in); printf(%4d,random(in); printf(%4dn,random(in); 8/2/20223C语言案例教程512 产生a,b区间的随机整数 我们可以用random(b-a+1)+a生成一个大于等于a,小于等于b的随机整数。记为a,b间的整数。它可以作为一个公式使用。 8/2/20224C语言案例教程例1_5_2 要求随机产生10个a,b间的整数。 /* 1_5L2.C */
4、 #includestdio.h #includestdlib.h #includetime.h main() int ia,ib; randomize(); printf(INPUT a,b=); scanf(%d %d,&ia,&ib); printf(nr); printf(%4d,random(ib-ia+1)+ia); printf(%4d,random(ib-ia+1)+ia);printf(%4d,random(ib-ia+1)+ia); printf(%4d,random(ib-ia+1)+ia); printf(%4d,random(ib-ia+1)+ia); printf(
5、%4d,random(ib-ia+1)+ia);printf(%4d,random(ib-ia+1)+ia); printf(%4d,random(ib-ia+1)+ia); printf(%4d,random(ib-ia+1)+ia); printf(%4dn,random(ib-ia+1)+ia); printf(nr); 8/2/20225C语言案例教程52 产生0,1间的随机小数 本段任务 学会使用rand()函数和randomize()函数产生0,1间的随机数。由于rand()生成0,RAND_MAX间的数,如将rand()/RAND_MAX,并且化成实数,所得结果必然在0,1之间。
6、 8/2/20226C语言案例教程设在平面直角座标系xoy的第一象限x、y轴上的0,1区间,构成一个正方形(如右图:第一章 图-9),现在问,如果用细针向该区间投掷,针尖落在该正方形区间上的座标可能是什么? 8/2/20227C语言案例教程例1_5_3 /* 1_5L3.C */ #include #include #include main() float x,y; randomize(); printf(%dn,RAND_MAX); /* 上句验证RANDMAX=32767 */ x=(float)rand()/RAND_MAX; y=(float)rand()/RAND_MAX; pri
7、ntf(x=%.3f y=%.3frn,x,y); 8/2/20228C语言案例教程将一根棍子随意折断,问被折断的两段长度,可能各是多少? 分析:设这根棍子长为1个单位,可以随机产生0,1区间的数x,作为断点与棍子一头的距离值,1-x就是另一头的值。例1_5_4 /* 1_5L4.C */ #include #include #include main() float x,y; randomize(); x=(float)rand()/RAND_MAX; y=1-x; printf(x=%.3f y=%.3frn,x,y); 8/2/20229C语言案例教程作业与练习:1、打麻将牌,要丢骰子,
8、骰子的六个面各有16的数字,问丢一颗骰子朝上的那面的点数可能是多少?编程实验。2、在上题中,如果有两颗骰子同时丢,问朝上的那面的点数和可能是多少?编程实验。3、随机产生4个45,50间的整数,看看第几个是45或50。4、有9个外形一样的球,上表面分别写着3139间的9个整数之一,现从中任意摸取一个,编程模拟所摸得的数。5、有一种体育彩票,是由4,5,6,7,8,9这六个数字组成的、数字可重复出现的、共有6个数字的有序序列。编程生成这个数字序列。8/2/202210C语言案例教程作业与练习:6、假设另一种福利彩卷是由许多这样的球产生的,设这些球只有六种,每种球上的号码分别是:14、25、36、47、58、69。由这些球随机选出6个落入一条槽,产生一组有序的6个两位数的数字序列,组成了这种福利彩卷的中奖号码。编程生成一组中奖号码。7、能否综合random()和rand()函数,随机生成一个落在边长为5的正方形(包括边界上)内的可能座标?(如图,第一章 图-10)8、模拟抛掷一枚硬币,(假设正面朝上或反面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子真空器件在汽车电子中的应用考核试卷
- 拍卖行业公共服务效能提升考核试卷
- 玻璃制品超声波焊接机考核试卷
- 洗衣机械的工业互联网应用考核试卷
- 石膏在印刷工业中的应用考核试卷
- 手持设备按键故障修复考核试卷
- 水产罐头产品创新设计与消费者需求考核试卷
- 《三袋麦子》课件-2
- 动物产科学模拟习题含参考答案
- 数字化转型升级背景下潍坊市制造业高质量发展模式研究
- 2022年河南省商丘市柘城县实验中学中考一模地理试题(原卷版)
- 《篆刻基础》课件
- 大学生心理健康教育(宁波大学)知到智慧树章节答案
- 数据中心通风设备拆除施工方案
- 博物馆布展项目施工组织设计
- 养殖工人合同范本
- 体育中国学习通超星期末考试答案章节答案2024年
- 汽车吊起重吊装方案-(范本)
- 房地产售楼部营销中心开放活动策划方案
- 矩形的判定公开课公开课获奖课件百校联赛一等奖课件
- 医疗机构消防安全突出火灾风险和检查要点
评论
0/150
提交评论