Fantracy

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2011年11月14日

摘要: 提到生成随机数,大多数人想到的是调用C++中的rand()函数,但是这里有个问题,rand()只能产生0~RAND_MAX(如在Visual Studio 2010上面最大为0x7FFF,即32767), 如果需要产生的随机数范围是0~232-1,则rand()函数会力不从心,需要使用其他更有效的方法来实现32位随机数的生成。 本文采用三种方法,分别为Mersenne twister算法,调用Windows API CryptGenRandom函数来生成随机数,采用三个rand()生成的数字来拼合为一个数字。本文对这三种方法分别进行了介绍,并在实验中使用这三种方法分别生成了一百万个随机数,并. 阅读全文
posted @ 2011-11-14 00:16 Fantracy 阅读(7337) 评论(1) 推荐(2) 编辑