随机函数

来源:互联网 发布:怎么样关闭udp 端口 编辑:程序博客网 时间:2024/05/22 12:09
  关于随机函数的问题,早就想说一下,这次来总结一下。
  首先要知道随机函数是用来得到随机数的。有一点要明白random()是C里的,random()不是ANSI C标准里的,C++中没有这个函数。
  注意了,rand()不接受参数,它的随机数取值范围是0到int型的最大值。而srand()函数是用来获得随机数种子的,如果没有srand()系统会默认为1,所以每次程序执行完后再一次执行时所得到的随机数都是一样的。如果随机数种子一样,那每次得到的结果也是一样的。所以在选择种子的时候最好用时间做种子#include<time.h> srand(time(NULL)); 。
  如果要获得10以内的随机数可以这样:int i=rand()%10; 当然100,10000你随便。如果要获得N到100间的随机数,那可以用i=N+rand()%(100-N+1); 。至于原因自己试一下就会明白,不要忘了+1,掉了它就取不到100这个数了。
  至于种子的问题,是以种子为起始点选随机数的,如果随机数循环输出,我得到了小于种子的数 。至于原因我不明白,请各位指点一二。谢谢。