毕业设计论文随机函数的设计与程序的实现.doc
《毕业设计论文随机函数的设计与程序的实现.doc》由会员分享,可在线阅读,更多相关《毕业设计论文随机函数的设计与程序的实现.doc(46页珍藏版)》请在三一办公上搜索。
1、(输入章及标题)毕业设计(论文) 随机函数的设计与程序的实现 学 院 信息科学与工程学院年级专业 02级电子信息工程4班学生姓名 指导教师 专业负责人答辩日期 III毕业设计(论文)任务书学院:信息科学与工程学院 系级教学单位:电子与通信工程系 学号学生姓名专 业班 级02级电子信息工程4班课题题 目随机函数的设计与程序的实现来 源自选主要内容 随机函数是指它的值在生成之前是不可预知的数,它在数理统计和生物统计中都有占有重要地位。在遗传算法中,个体初值的算法要用到随机函数。现在广泛使用的是借助计算机来完成这项任务工作。但计算机是用算法来实现的,而在真正的随机函数是不能由算法产生。一个算法是一特
2、定的命令序列,该序列可以根据给定的参数集合来产生预测的输出,就是说,在用计算机产生随机数时,最终结果是可以预测的。因此计算机可以进行的工作就是找到一个算法来模拟随机序列的产生。这些数并不是真正的随机数,他们称“伪随机数”。基本要求1了解评价随机函数的指标。2研究快速有效复杂度低的随机函数生成算法。3编制随机函数的程序。参考资料1 曹大有,沈 洁。C/C+ 随机函数的改进,阳师范高等专科学校学报第二于三卷第6期,2003。中国期刊数据库,维普全文数据库,中国优秀博硕士学位论文数据库,IEEE/IEE Electronic Library(IEL)数据库,Kluwer全文电子期刊等。http:/e
3、mlib.jpl.nasa.gov/周 次14周58周912周1316周1718周应完成的内容查阅文献资料掌握软件使用方法。建立算法,确定软件实现方案,编制源程序。软件调试,结果分析。编制设计文件,使用说明。完成论文。指导教师: 邢光龙系级教单位审批:本科生毕业设计(论文)摘 要随机函数在计算机应用以及操作系统中都有广泛的应用,本文对随机函数的概况和一些应用做了简单的介绍。在TurboC中的rand函数等都可以产生一个随机数,而在实际应用中,如果是利用循环反复产生随机数,则会发现产生了若干个随机数后,后面的随机数序列与前面的随机数序列完全相同。本文给出了其产生的原因以及一些改善方法。通过对三种
4、比较典型的方法产生的随机函数人字型映射法,类同余法,超素数法指标的分析,检验,了解随机函数的指标。在介绍超素数法的同时对其与其他一些传统随机函数进行了比较分析。最后介绍满抛物线法产生的随机函数,对其算法和指标进行分析检验,并对其程序实现。关键词随机函数;伪随机序列;检验 39AbstractAll there is extensive application in calculator appliedly and operate system with the machine function, there is a brief introduction of the general situ
5、ation of the machine function with some the application. Many random function can produce random figure in rand of TurboC. but in the actual application, if is to make use of the circulation to produce again and again to count with the machine, then will discover to few preface row and before of wit
6、h machine few preface row complete same when produce some with machine after counting. There are some ameliorative method. There are three kinds of typical methods of random function lterating herringbone shadow generate random number . A kind of random numbers generated By congruence and their test
7、ing. Method of generating long period pseudo-random numbers based on a special property of prime numbers.we analysis the method of generating long period pseudo-random numbers based on a special property of prime numbers comparing with a little bit other tradition random function. finally, there is
8、a introduction of lterate parabola shadow generate random number .wo also analysis and test its method creation and guide line .at last, its the procedure realizes.Keywords random function bogus random sequence test目 录摘 要IAbstractII第1章绪论11.1 课题背景11.2 随机函数的概况21.3 本文概括3第2章 随机函数的应用42.1 随机函数在操作系统中的应用42.
9、1.1 操作系统与随机函数的关连42.1.2 两类随机函数42.1.2 应用实例分析52.2 随机函数在工业抽查中的应用62.2.1 产生永久随机数的方法72.2.2 使用永久随机数抽取样本的方法72.2.3 连续性调查中利用永久随机数维护样本的方法92.2.4 连续性调查中利用永久随机数轮换样本的方法102.3 随机函数在噪声中的应用102.4 本章小结12第3章 随机函数的指标分析133.1 利用人字映射产生均匀随机数法133.1.1 利用迭代公式产生随机数143.1.2 伪随机数统计检验153.2 用类同余法产生随机数及其检验183.2.1 类同余法:193.2.2 检验分析193.3
10、超素数法长周期伪随机数发生器的应用算法203.3.1 优选乘子超素数法的应用算法和算例213.3.2 超素数长周期伪随机数生成算法和算例223.3.3 不同方法生成伪随机数的统计分析243.4 本章小结28第4章 满抛物线映射法产生的随机函数294.1 随机函数的生成算法294.2 随机函数的检验分析304.3 本章小结31结 论33参考文献34附录35致谢36燕山大学本科生毕业设计(论文)第1章绪论1.1 课题背景16世纪中叶,欧洲科学革命的兴起,科学和技术有了长足的进步,有关运动的研究已在自然科学领域中逐渐居主导的地位,这就影响数学研究方法的提升:从常量观念为中心转移到以变量观念为中心,而
11、实现这一转变的关键人物正是笛卡尔(解析几何)、牛顿和莱布尼兹(微积分)。函数概念在解析几何、微积分诞生的背景下,被引入数学的殿堂。约在公元1637年,笛卡尔(R.Descartes,法,15961650)建立方程序和曲线的联系时,已经认识到:当“点”按一定的条件运动时,x与y之间便建立了某种关系,即y依赖x而变,可用方程式给出,但他并没有提炼出一般的函数概念。现在公认最早的函数定义是由德国的莱布尼兹(G.W.Leibniz,16461716)给出的,他在一篇手稿里,首先采用“函数”(拉丁文functio)一词,并用函数表曲线上点的。“横坐标”或“纵坐标”或“切线长度”。或“垂线长度”等,即与曲
12、线上的点相关的“几何量”。由此可见函数概念引入的初期,人们对函数的认识是相当肤浅的,为了推动数学的发展,函数概念一次又一次地修正,内涵逐渐扩展。瑞士数学家尤拉(L.Euler,17071783)在他写的“无穷小分析引论”书中,明确地指出:变量的函数是由这个变量和一些常量通过任何方式形成的解析表达式,解析表达式是指代数式和超越式。尤拉的定义,在18世纪被认为是标准的函数概念。公元1821年,法国数学家柯西(Cauchy,17891857)在“分析教程”给出如下的定义:在某些变量间存在着一定的关系,给定其中某一变量的值,其它变量的值亦可随之而确定时,则将最初的变量称之为自变量,其它各变量则称为函数
13、。柯西的定义使函数概念有了进一步的扩展,但对函数概念的本质“对应”,还不够强调。公元1837年德国数学家狄利克雷(Dirichlet,18051859)引入了新的函数定义:对于某区间上的每一个确定的x值,只要y有完全确定的值与之对应,不论x,y所建立之对应方式如何,y都叫做x的函数。(这是古典函数的定义)依据这个定义,狄氏举了一个例子:对0x1,当x为有理数时,对应y1;当x为无理数时,对应y0。这也是一个函数(就是著名的狄利克雷函数)。1.2 随机函数的概况在计算机应用中,常常会使用到随机数,有时甚至需要反复大量地使用随机数,例如:计算机模拟枪炮射击的弹着点分布、股票的涨落、扑克游戏的自动发
14、牌程序等等。计算机的各种编程语言中通常都有产生随机数的方法,例如:在Visual Basic中Rnd函数、在TurboC中的rand函数等都可以产生一个随机数。在实际应用中,如果是利用循环反复产生随机数,则会发现产生了若干个随机数后,后面的随机数序列与前面的随机数序列完全相同,前人是在编制桥牌的自动发牌程序时,首次发现这个问题的。由于随机数序列的重复出现,也就产生了“随机数不随机问题”。要解决“随机数不随机问题”,显然需要首先弄清各种编程语言中产生随机数的方法。 内存中存储大量的、杂乱排放的数据(伪随机数序列)当程序第一次要求产生随机数时,就把第一个数据作为随机数传给程序;当程序再次要求产生随
15、机数时,就把下一个数据作为随机数传给程序,由于伪随机数序列的数据的数目总是有限的,所以这种产生的的随机数其实是伪随机数,而且两次运行程序所产生的随机数序列,必然也是完全利用时钟计数器的尾数作为随机数。在PC机中,利用8253芯片(或者8254芯片)的一个计数器通道产生日期和时间,这个计数器本身是六位的,计算机的时钟信号(频率为4. 97MHz)使计数器不断递减,每隔55mS计数器产生一次溢出(也就是计数器归零后,又减1)。当程序要求产生随机数时,就把当前计数器的低八位数据作为随机数(或者再经过一些变换后)传给程序。由于计数器的递减速度很快,计数器的低八位变化得更快,在要求产生随机数时,人们难以
16、确定计数器的低八位数据的内容,所以它对人而言就相当于随机数1。Visual Basic中Rnd()函数是第一种方法和第二种方法的结合,它的内部也有一个伪随机数序列,可以利用无参数的Randomize()函数调用系统的芯片的低八位作为伪随机数序列的索引(VB中称为种子),再由Rnd函数取出伪随机数字列中的一个数,作为随机数。由于随机数的产生取决于8253计数器,所以它实际上是用第二种方法产生随机数的。采用第二种方法,如果是利用循环反复产生随机数,由于计算机的指令执行是与计算机的时钟同步的,则两次产生随机数时间间隔是恒定的。所以如果某次产生随机数时与N次前产生随机数时8253计数器中的数值完全相同
17、,那么下次产生随机数时也必然与它的N次前产生随机数时8253计数器中的数值完全相同(例如:第120次产生随机数时8253计数器中的数值与第30次产生随机数时8253计数器中的数值完全相同,则第121次产生随机数时8253计数器中的数值必然与第31次产生随机数时8253计数器中的数值完全相同,则第122次产生随机数时8253计数器中的数值必然与第32次产生随机数时8253计数器中的数值完全相同,这样8253计数器中的数值相同意味着随机数相同,后面的随机数序列重复前面的随机数序列,产生了随机数不随机问题2。统计模拟的最基本问题是随机数生成,是按统计模型生成数据的基础。随机数生成可分成两类:0 ,1
18、 区间上均匀随机数生成和非均匀随机数生成,是随机数生成问题的两个基本研究领域。0 ,1 上均匀随机数生成是随机数生成之基础,非均匀随机数是由 0 ,1 上均匀随机数经相应运算而产生的。0 ,1 上均匀随机数的质量决定了非均匀随机数的质量。如何快速地生成0 ,1 上高质量均匀随机数是普遍关注的问题。生成方法分为两类:物理方法和计算机方法3。物理方法随机数生成有很长的历史,浦丰掷针就是历史上一例著名的随机数生成。近代ShewHart 在他的质量控制一书中产生的随机样本就是采用物理方法:做很多卡片写上数字放在大口袋中,用手在口袋中随意摸取一张,根据上面的数字确定抽取的样品,也可设计或门和与门。电路,
19、生成0 ,1 有限序列,组成0 ,1 上的随机数。物理方法实行严格,有很好的随机性;但缺点是速度慢,无法重复,且对统计模拟带来不可验证性。除教学目的之外,实际均匀随机数的生成均不采用物理方法,采用伪随机数方法,这是计算机技术发展的必然结果4。1.3 本文概括 本文首先介绍了随机函数的发展背景和发展概况,接着介绍了随机函数在一些方面的应用,第三章中介绍了一些随机函数的指标分析和对其的检验。第四章介绍了一种新的随机函数生成方法满抛物线映射法,并对其进行对比分析和指标研究。最后对全文加以总结。第2章 随机函数的应用随机函数在很多方面都有广泛的应用,正确的了解随机函数的应用对我们更加深刻的了解随机函数
20、有很大的帮助。我们在研究一些现象的本质时需要模拟一些不均匀分布的数字或画面等,这时我们就需要随机函数的应用了。2.1 随机函数在操作系统中的应用 操作系统课程是计算机专业的一门重要的基础课程,它介绍了操作系统的基本原理、设计方法和技巧。在这些模拟程序中,进程号、内存号、设备号、优先级等常用随机数来产生,以更好地描述体现算法的思想。可见,正确、熟练地运用随机函数的随性规律对于顺利完成实验、掌握领会操作系统的原理和方法都是很有意义的。2.1.1 操作系统与随机函数的关连计算机操作系统是计算机系统配置的重要软件之一,它在整个计算机系统软件中占有中心地位,也是计算机教学中最重要的环节之一。操作系统课程
21、是有关计算机科学技术专业的一门专业基础课,该课程重点介绍操作系统的基本原理和概念,设计方法和技巧。我们在学习该课程有两大难点。一是很难将书本中学到的概念、原理、算法,与实际的操作系统相印证。学生了解系统的外部功能和性能,但是不知道如何实现这样的功能,达到这样的性能。必须通过上机实习,改变知其然不知其所以然的状况。二是该课程难以实习,因为操作系统是所有软件中最复杂软件,编制这样的系统牵扯到方方面面,编程者既要有扎实的软件基础知识,又要非常了解系统的硬件,难度可想而知。因而上机编写模拟程序是模拟操作系统对五大资源的管理是一种有效途径。在这些模拟程序中,时间片、内存号、设备号、优先级等常用随机数来产
22、生,以更好地体现算法的思想。可见,正确熟练地运用随机函数对于顺利完成实验是相当重要的5。2.1.2 两类随机函数 考虑到C语言能对硬件直接进行操作,可以进行系统调用,既适合编写应用程序,又适合编写系统程序,而且学生在此之前已学习了C语言,所以我选用C语言作为操作系统实验的上机语言。在模拟程序中,可以使用C语言提供的标准随机函数,也可以使用自定义随机函数。2.1.2.1 C语言的随机函数 C语言的库函数中有4个随机函数:rand()、srand()、random()、和randomize()。随机函数rand()可产生一系列的伪随机数,所谓伪随机数是由计算机按一定的算法生成统计上满足独立性及均匀
23、性的一串数字。该函数每调用一次,返回一个0到RANDMAX(即)之间的整数。种子函数rand()用来建立由rand()所产生序列值的起始点,seed是“种子”,从而可使程序用不同的伪随机数序列进行。具体做法: 首先,给rand(seed)提供一个“种子”“seed”,它的取值范围是从0-65535。 然后,调用rand(),是伪随机数,它会根据提供给rand()的。种子。值返回一个随机数(在0-32767之间)。 根据需要多次调用rand(),从而不断地得到新的随机数。 无论何时,你都可以给rand()提供一个新的“种子”,从而进一步。随机化。rand()的输出结果。例如,取m=17,则执行了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 随机 函数 设计 程序 实现

链接地址:https://www.31ppt.com/p-4885464.html