#include <stdio.h>
#include <math.h>
int main(){
printf("%d\n",rand());
}
- 当你多次运行发现无论你运行多少次,他都是一个数不变,一直都是第一次你运行时候的那个数。
- 这时候用到srand函数,会发现出现的数字跟之前并不相同,这个rand的序列被srand所改变,srand当中的数是多少,代表了rand中的随机序列被固定。
#include <stdio.h>
#include <math.h>
int main(){
srand(100);
printf("%d\n",rand());
}
- 如果我能将srand中的数进行随机,那么rand中的数字也就被随机了。(但是这个看起来很像一个套娃,可能有的人会说,我要是能让srand中的数一直随机变化,我还用的找用srand来改变rand中的序列?)
#include <stdio.h>
#include <time.h>
#include <math.h>
int main(){
srand((unsigned int)time(NULL));
printf("%d\n",rand());
}
- 运用一个time函数放到srand当中,就可以使得srand中的rand函数的序列一直在变化,就可以做到生成一个随机数了。(这样每次生成的数就不是固定的了)。
- 但是同样的,我们一般都会给定一个范围内进行随机数的生成那么rand的格式是什么样子呢
//当像设置的范围为[n,m]
rand()%(m-n+1)
- 这就是rand可设定的范围格式。
- 还有一个很重要的当在c语言的源文件中#include <math.h>中有rand和srand
- 但是在c++中,<math.h>就不能运行,但是<stdlib.h>就能运行。(我用的是Dev-c++编译器。)