c/c++语言开发共享C语言实现随机数

最近在看《The C Programming Language》这本书,看到一个关于随机数的知识点,有种豁然开朗的感觉。以前总靠死记硬背,也不明白为啥是这样,而且总把srand()遗漏。相信你看了也有同样的感觉。书中是这么说的: 标准库中包含一个可移植的实现伪随机数发生器的函数srand以及一个初始 …

最近在看《the c programming language》这本书,看到一个关于随机数的知识点,有种豁然开朗的感觉。以前总靠死记硬背,也不明白为啥是这样,而且总把srand()遗漏。相信你看了也有同样的感觉。书中是这么说的:

  标准库中包含一个可移植的实现伪随机数发生器的函数srand以及一个初始化种子数的函数srand。前一个函数rand使用了强制类型转换。(看到这里是不是有个疑惑,种子数是什么呀?别着急,看完接下来的代码你就明白了)

unsigned long int next = 1;  /*rand函数:返回值在0- 32767之间的伪随机数*/  int rand(void)  {      next = next * 1103515245 + 12345;      return (unsigned int) * (next / 65536) % 32768;  }  /* srand函数:为rand()函数设置种子*/  void srand(unsigned int seed)  {      next = seed;  }

即在rand()中使用的变量next的数据来自srand(),这个变量next即所谓的随机数。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/604728.html

(0)
上一篇 2021年5月12日
下一篇 2021年5月12日

精彩推荐