论坛首页 综合技术论坛

伪随机数的问题

浏览 2319 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-26  
C,C++,VB,C#中用的随机数都是伪随机数,伪随机数的一个问题就是取值分布不均匀。
比如抽奖,如果从100种随机抽取,如果1和100都是一等奖,但是1和100的出现机率完全不是1%,有可能比1%,也有可能比1%小.


也不知道各种数据库中的随机数最终是否也是采用了伪随机数.

目前如果要分布均匀,一般都是用高斯随机数算法,所以各位玩抽奖的同学,如果要公平,还是不要用系统自带的随机函数,需要另外自己写.

如果是游戏中色子,如果采用伪随机数的,而且随机种子相同的,那么会出现在相同时间点上获取的两个随机值相同的问题.有些游戏就是这么被破解的.


   发表时间:2008-11-01  
你的理解有个误区。。。实际上, 计算机做不到一个真正的随机函数的。
根据 从一个状态到另一个状态必须是有限的理论(机器的基础), 开始是有状态, 那就一位着不是一个随机过程, 高斯算法, 只是强化了算法。 目前机器的算随机数, 基本都是以机器的当前时间+机器本身一些固定参数+高斯分布的算法,部分参数的结合,因此, 做不到真的随机函数:)
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics