一种利用计算机生成随机数的方法

(2012-07-16 23:22:33)

标签:

随机数

函数

数值

计数器

程序运行

杂谈

这里介绍一种利用计算机生成随机数的方法,微机都有系统计数器记录自运行开始以来的脉冲数,这是个规律变化的数字,只用它是不能产生随机数的,但是如果我们对计数值进行随机采样则可以得到随机数输出,方法是借助一个性能优良的随机函数,例如我们要生成N个随机数,我们建立N次循环,在循环内用函数读取系统计数值作为随机函数的种子(也许不止一个),然后将随机函数的值作为输出。这样循环结束就可以得到N个随机数了。

计数值采样函数,只用低32位值就够了,高位变化缓慢没有利用价值。试验证实即便是连续采样也不会读到相同的数值,所以不同循环内的读值更不同了。由于采到的计数器值是千变万化的,所以随机函数的种子是千变万化的,随机函数的输出自然也是千变万化的。方法虽然使用了随机函数,但和这个随机函数所能提供的随机序列毫无关系,只是间接利用而已,这样生成的随机序列是没有周期的,永不重复的。

以字节为单位的随机数组输出,在一般微机上能达到超过40M字节/s的输出。实验证实结果数组各元素是独立的,经多次差分处理数据依然是毫无规律的。

下面的小程序运行后能产生10M字节的数据,放在rand.txt里。

http://clip2net.com/s/270uC

分享:

喜欢

0

赠金笔

加载中,请稍候......

评论加载中,请稍候...

发评论

登录名: 密码: 找回密码 注册记住登录状态

昵   称:

评论并转载此博文

发评论

以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

利用计算机可产生随机数,一种利用计算机生成随机数的方法相关推荐

  1. 台式计算机和便携式计算机是替代品吗,一种便携式计算机制造技术

    本实用新型专利技术公开了一种便携式计算机,所述显示器壳体的顶端两侧均设置有显示器扣件,所述显示器壳体通过连接轴连接有操作板,所述操作板的中部设置有键盘,所述操作板的操作面底部设置有与显示器扣件对应的安 ...

  2. 计算机发展史的研究报告,一种对计算机发展史展开研究的策略

    一种对计算机发展史展开研究的策略 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 一种对计算机发展史展开研究的策略一种对计算机发展史展开 ...

  3. 计算机桌面按哪个键锁定呀,计算机锁定屏幕快捷键-一种锁定计算机屏幕的快捷方式...

    一个: 如何快速锁定计算机屏幕 1. 在办公室工作,有时您需要暂时做其他事情. 当我们出去办事时,其他人可能会使用我们的计算机,从而给我们带来不必要的麻烦. 2. 在这里,我将教您一种快速锁定计算机屏 ...

  4. 计算机新型应用技术,一种新型计算机的制作方法

    本实用新型涉及计算机的技术领域,特别是涉及一种新型计算机. 背景技术: 众所周知,计算机是一种用于日常生活中,按照程序运行,自动.高速处理海量数据的现代化智能电子设备:现有的计算机包括底座.支座.显示 ...

  5. 台式计算机和便携式计算机是替代品吗,一种便携式计算机的制作方法

    本实用新型属于计算机技术领域,具体涉及一种便携式计算机. 背景技术: 技术的进步使得个人计算机的尺寸在缩减.结果,便携式计算机如笔记本计算机.膝上型计算机和记事本计算机的使用飞速增长.笔记本计算机和记 ...

  6. 计算机外设包括硬盘,一种基于计算机外设的DVR数字硬盘录像机的制作方法

    本发明涉及一种基于计算机外设的DVR数字硬盘录像机,属于摄像视频存储处理技术领域. 背景技术: 当网络监控已经逐渐取代模拟摄像成为主流应用,越来越多的新用户开始将更多的精力投向了后者:虽然在监控系统的 ...

  7. 计算机系统分为哪三类,计算机总线分为哪三种?,计算机的三类总线

    计算机总线分为哪三种?哪三种电脑总线?,计算机总线可分为数据总线.地址总线和控制总线.数据总线在CPU和RAM之间来回传输要处理或存储的数据.地址总线用于指定RAM中存储的数据的地址:控制总线将微处理 ...

  8. 计算机怎样打开鼠标点的键盘,如何打开计算机虚拟键盘?五种打开计算机虚拟键盘的方法简介...

    随着社会的发展和时代的进步,人们的生活越来越丰富多彩.越来越多的电子产品的出现给人们的生活增添了无限的兴奋.如今,计算机已成为人们生活中必不可少的电子产品之一.我们总能在生活中看到计算机.当然,键盘经 ...

  9. 梅森旋转产生随机数c语言实现,C++生成随机数的实现代码

    C风格 C为随机数提供的工具是rand.srand和RAND_MAX,定义在中. srand为rand设置种子,如果不设置,相当于调用过srand(1).rand产生伪随机数,其范围为0到RAND_M ...

最新文章

  1. java 重力脚本_用Java模拟游戏重力的实现(弹跳)
  2. 【iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)
  3. DFT,DTFT,DFS,FFT之间的关系以及序列补零和插值对频域的影响
  4. npm run build,start
  5. php上传多个文件类型,ThinkPHP上传多文件多类型
  6. andriod 开发记录apidemos 错误解决
  7. 数据库:为什么阿里巴巴禁止使用存储过程?
  8. 数据值、列类型和数据字段属性
  9. java list 重复对象_list集合去除重复对象的实现
  10. 转:NAT traversal 的概念
  11. padavan固件如何设置打印机
  12. Quartus II 13.1入门级使用方法 -仿真篇,适用于小白
  13. python爬取苏宁易购--jsonpath方法
  14. python求奇偶数和_用Python返回偶数和奇数
  15. 微信小程序使用Socket
  16. iPad/iPhone与电脑共享文件
  17. JAVA+Appium 自动化实现手机屏幕滑动点击操作
  18. c语言双精度浮点数,使用C语言的十进制(浮点数,双精度)
  19. ubuntu安装qtcreator后没有桌面图标
  20. Angular--A required parameter cannot follow an optional parameter.(必选参数不能位于可选参数后)

热门文章

  1. Android Binder 系统学习笔记(一)Binder系统的基本使用方法
  2. 【VS开发】CTimeSpan类
  3. Centos环境下删除Oracle11g客户端文档
  4. 软件生存周期文档系列 之 6.用户操作手册
  5. WCF中的管道——管道类型
  6. vue-day01-vue模板语法
  7. 计算机基本网络测试命令实验报告,网络连通性测试与网络命令验证实验报告
  8. c++ 将文件内容输出到word上_原来PDF转Word可以这么简单,只需要一个键!办公起来真方便...
  9. python中复选框取消修改_python – 如何在PySide / PyQt中设置“只读复选框”
  10. python语言处理excel_Python语言操作excel