新闻资讯
看你所看,想你所想

随机种子

随机种子(Random Seed)是计算机专业术语,一种以随机数作为对象的以真随机数(种子)为初始条件的随机数。一般计算机的随机数都是伪随机数,以一个真随机数(种子)作为初始条件,然后用一定的算法不停迭代产生随机数

  • 中文名称 随机种子
  • 外文名称 Random Seed
  • 类别 计算机术语
  • 对象 随机数
  • 条件 真随机数(种子)为初始条件

计算方法

  一般种子可以以当前相烈食流广达攻的系统时间,这是完全随机的

 来自 算法1:平方取中法。

  1)将种子设为X0,并mod 10000得到4位360百科

  2)将它平方得到一个故房氧行他赶构这杀布杂8位数(不足8位时前面补0)

  3)取中间的4位数可得到下一个4位随机数X1

  4)重复1-3步,即可产生多个随机数

  这个算法的一个主要缺点是最终它会退化成0,不能继续产生随机数。

  儿久育渐余集缩算法2:线性同余法

  1)将种子设为X0,

  2)用一个算法X(n+1)=(a*X(n)+b) mod c产生X(n+1)

  一般将c取得很大,可产生0到c-1之间的伪随机数

  该算法的差况一个缺点是会出现循环。

  在windows平台下,可以考虑将如下参数作为影响种子的因素。

影响因素

  ⒈GetTickCount()

通计  系统启动以来的嘀嗒时间

  说明:该时间与系激局践斗完找湖后所一统运行时长相关,

  ⒉GetC异茶级百台尼urrentProcessId()

  当前进程Id号

  说明:该Id与系统启动进程数量及次序有关,一般波动范围较小。

  ⒊GetCurrentProcess()

  当前进程句柄

  说明:该句柄住育实质就是内存地址,但每次进程启动时地址值是不确定的。

  ⒋GetProcessTimes()

  进程时间参数

  专跑齐据什爱市直运说明:-

  ⒌GetCurrentThreadId()

  当前线程Id号

  ⒍GetCurrentThread()

  当前线程句柄

  ⒎GetThreadTimes()

  线程时间参数

  ⒏GetCurr圆样班相善氢冲独身厂个entHwProfile()

  Profile配置文件

  ⒐GetSysColor()

  系统Color

  ⒑GetSystemInfo()

  系统信息

 笑审小七增草烟学他法 ⒒GetSystemPowerStatus()

  电源状态

  ⒓GetKeyboardState()

  键盘状态

  ⒔GlobalMemoryStatus()

  内存状态

  ⒕time()

  当前时间 秒

  ⒖GUID

  各硬件设备GUID

  ⒗MAC

  网卡mac

  属按物判互⒘CPUID

  CPU Id号

  ⒙声卡录音噪音

  该停段造与这参量与环境相关

  ⒚用户键盘间隔时间

  该参量与用户习惯相关

  其次,尽最大可能增加这些因素的维度。这里说的维度是及升离字

  种子结果与因素之间的关联程度。一般使用h材督双季ash函数对多个

  因素进行哈希运算。这样得到的种子具有较强的散照责列特性。

  通过以上技术手段得到的种子产生的伪随机数是具有较好

  统计术伯款着板特性的,它不依赖于某一台机器,某一时刻,某一方法,

  而是复杂多变、让人捉摸不透难于重现的。

转载请注明出处累积网 » 随机种子

相关推荐

    声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:fendou3451@163.com