• 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个随机数后,它们又会重复出现。

  • 相关阅读:
    redis:高可用分析
    mysql:explain分析sql
    python中注意事项(更新)
    jupyter使用小技巧(更新)
    Jupyter中的快捷键
    Excel制作甘特图
    Vim编辑器常用命令
    Mysql主从
    常用MySql命令
    进程与线程的一个简单解释
  • 原文地址:https://www.cnblogs.com/Joezzz/p/9746938.html
Copyright © 2020-2023  润新知