zoukankan      html  css  js  c++  java
  • c++产生随机数

    rand()

      int rand(void),头文件stdlib.h

      rand()返回一随机数值的范围在0至RAND_MAX (215-1=32767)间,0~RAND_MAX每个数字被选中的机率是相同的。

      rand()的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机数种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当取得65535个随机数后它们又重复出现了。)当计算机正常开机后,这个种子的值是定了的,除非破坏了系统。

    srand()

      void srand(unsigned int seed),头文件:stdlib.h

      srand()用来设置rand()产生随机数时的随机种子。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。

      一般使用当前时钟作为随机数种子,srand((unsigned int)(time(NULL)),每一次运行程序的时间是不同的,所以每一次运行程序的随机种子就不同。

      在一次程序里,rand()应该只被被播种一次它不应该被反复播种。

    三个实例

     1.使用默认随机种子,无论运行这个程序多少次,打印的都是这些值。

    2.使用当前时钟作为随机数种子,多次运行这个程序,每次打印的值都不一样。

    3.多次播种,for循坏运行速度很快,每次播种取得时间几乎一样,所以取出来的随机数相同。

    记住:只要是单次播种,当取得65535个随机数后,它们又会重复出现。

  • 相关阅读:
    mysql 安装
    flying-saucer-pdf使用中字符串过长换行出问题的解决办法
    杂想
    关于MATLAB实验结果求交点问题
    关于学习方向问题
    关于读取文件夹中的图片问题
    关于ROC曲线的碎碎念
    win7(64)+vs2013+opencv3.0配置的辛酸路程
    验证模式和辨识模式
    指纹识别认证
  • 原文地址:https://www.cnblogs.com/Joezzz/p/9746938.html
Copyright © 2011-2022 走看看