今天代码中用到一个随机函数,要循环生成-1或1,无奈C语言没有专门的函数直接生成,只能自己写了。参考了网上资料后,记录下来,将代码编写如下:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int i,r,x;
srand(time(NULL)); //时间种子
for(i=0;i<100;i++){
x=1 + (int)rand() % 10;
if (x<=5) r=-1;
else r=1;
//printf("x=%d\n",x);
printf("r=%d\n",r);
}
return 1;
}
这里注意一下必须设置时间种子,否则每次生成数都一样。
另外一个是跟踪调试时发现的,如果是有for循环调用这个随机生成函数,时间种子必须在for循环外面,不然的话将会出现一连串-1和一连串1的现象,没有达到随机的效果。
随机函数原理摘录如下:
//要取得[a,b)的随机整数