NS中一种新的随机数提取.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NS中一种新的随机数提取   摘要:随机数在软件开发和程序设计中应用较为广泛,该文从分析随机数的一般原理入手,指出它们的缺陷,然后从NS(network simulator)中提取一种新的产生随机数的方法,并验证它的可行性。   关键词:伪随机数;随机数;种子   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2009)05-1138-03   A New Approach to Generate Random Numbers Extracted from the NS(Network Simulator)   DUAN Min1,QIAN Guang-ming2,XIAO Min3   (College of Mathematics and Computer Science of Hunan Normal University, Changsha 410081, China)   Abstract: Random number is widely used in the software development andprogramming. This article analyses the general principles of the random numbers ,points out their shortcomings and puts forward a new approach to generate random numbers extracted from the NS(network simulator).Then we verifyits feasibility.   Key words: Pseudo-random number; Random Numbers; Seed      1 引言      在用计算机编制程序时,经常需要用到随机数,我们也知道随机数在实际运用中非常之多,如游戏设计,信号处理,网络仿真领域。特别在网络仿真等领域,对随机数的产生提出了较高的要求,仅使用C++语言类库中的随机函数可能会很难完成相应的工作。本文简单的介绍我们从NS中所提取的这种随机数的原理,并对其进行了测试,希望以后可以应用到我们需要的领域中去。      2 随机数      2.1 伪随机数   随机数是计算机随机产生的一个任意数字,但是计算机不会产生一个绝对随机的随机数,我们希望计算机产生一个绝对的随机数,这是一种理想的随机数,然而计算机产生的只能是相对的随机数,即伪随机数。   伪随机数并不是假随机数,这里的“伪”是有规律的意思,就是计算机产生的伪随机数既是随机的又是有规律的。怎样理解呢?产生的伪随机数有时遵守一定的规律,有时不遵守任何规律;伪随机数有一部分遵守一定的规律;另一部分不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这正是点到了事物的特性,即随机性,但是每种树的叶子都有近似的形状,这正是事物的共性,即规律性。从这个角度讲,计算机只能产生伪随机数而不能产生绝对随机的随机数。   2.2 种子(seed)   种子(seed)是用来产生随机数的一个初始值,可以是我们自己给定的,也可以通过一定的运算而得到的,也可能是通过获取当前系统的时间而得到的。获取种子的值不同,那么其后面产生的一系列化的随机数也不同,如果每次给定的种子是一样的,那很有可能其后产生的一系列化的随机数是相同的。所以我们要产生随机数时,要避免给一个固定的初始值,种子通常是一个无符号的整形数。      3 VC++中随机数的实现      在VC的环境下,我们可以用库函数random()来产生一个随机数,它返回的是?C32768 到32767中的任意一个数。在VC6.0环境下是这样定义的:random(数字)。数字是我们自己给予赋值的,注意的是random(1)产生的是数字0,而不是1,因为random()产生的是由0到数字减一的效果。例如random(10)产生的实际上是0~9的数字。   在VC中还可能用另外一个随机函数rand()来产生随机数,包含在头文件中,它没有参数,返回是0到最大数之间的一个整数,也就是说该随机数是在0~RAND_MAX之间平均分布的, RAND_MAX是一个常量,在VC6.0环境下是这样定义的:   #define RAND_MAX 0x7fff(32767)   它是一个short 型数据的最大值,如果要产生一个浮点型的随机数,可以将rand()/1000.0这样就得到一个0~32.767之间平均分布的随机浮点数,我们也可以自己去定义这个最大数。   我们写一个小程序,来产生一个随机数。   #include

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档