c++产生随机数

2021-05-17 06:29

阅读:589

标签:seed   多次   oid   不同   for   null   nss   默认   ima   

rand()

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

  rand()返回一随机数值的范围在0至RAND_MAX (215-1)间,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个随机数后,它们又会重复出现。

c++产生随机数

标签:seed   多次   oid   不同   for   null   nss   默认   ima   

原文地址:https://www.cnblogs.com/Joezzz/p/9746938.html


评论


亲,登录后才可以留言!