总共有两种算法,第一种就是用自带的srand(time(0));和rand()即可,如果需要那么使用余数即可。rand()%5+1;这个就表示的1-5的随机数。实际上rand()产生的随机数是从1到INT_MAX的。(rand()%6)+5;表示的就是5-10(闭区间)的随机数。

代码

while(1)
	{
		srand(time(0));
		cout<<(rand()%6)+5;
	}

另一个就是线性同余发生器满足以下的递推(这个我个人感觉不如rand好用,这个如果公式里面的数写的不当可能会出错,也许是我不大会用,而且这个数组是有周期的!!!最多以p-1为周期)

    num[i]=(t*num[i-1])%p;

其中num[0]需要选择一个不是0或者1?(待验证)并且小于等于p的数,p是这些随机数的范围,是从1-p-1闭区间;t是一个常数,可以随便设置会变成其他的随机数.

相关文章:

  • 2021-12-18
  • 2021-06-18
  • 2021-12-28
  • 2022-01-23
  • 2021-10-21
  • 2022-12-23
  • 2021-08-14
  • 2021-09-14
猜你喜欢
  • 2021-05-19
  • 2021-10-21
  • 2022-12-23
  • 2021-08-20
  • 2021-04-13
  • 2021-05-27
  • 2021-11-18
相关资源
相似解决方案