随机数的生成【详解】
生成随机数
rand函数可以生成随机数,随机数的范围在0~RAND_MAX(32767)之间
在使用rand函数之前,需要调用srand函数,设置随机数的生成起点
srand函数:void srand (unsigned int seed);需要传入一个整数
//生成随机数srand();int ret=rand();printf("%d",ret);
当我们在调用srand时,当srand的值确定后,生产的随机数就确定不变了,这一点也不随机。我们知道,一个变化的srand值可以对应不同的随机数值,而在电脑中,时间就是那个一直在变化的值。对于每个变化的时间,我们都有唯一的数字可以表示它,这个数字叫做时间戳,此时就要运用到time函数
time函数格式:time_t time(time_t* timer);
一般的,我们在使用time函数时,只需要它的返回值,不需要参数,而srand函数需要传入的数据类型是unsigned in,因此这里我们还需要进行一步强制类型转换,修改后如下:
//设置随机数生成器srand(unsigned int)time(NULL); //强制类型转换
srand函数(生成随机数的起点)只需调用一次,在需要生成随机数的地方直接使用rand即可
按照题目要求,我们需要限定生成随机数的范围(1-100):将生成的随机数模100,那么生成的余数就在0-99之间,我们再在此基础上加一,就可以得到1-100的随机数了。整个生成随机数完整程序如下:
#include<stdio.h>
#include<stdlib.h> //使用srand函数的头文件
#include<time.h> //使用time函数的头文件
int main(){srand((unsigned int)time(NULL)); //函数格式:srand(xx)注意括号int ret=rand();int final=(ret%100)+1;printf(" %d ",final); //这里我们方便检测结果打印出随机数,实际上不打印return 0;
}
这样就生成了一个100以内的随机数了:
随机数的生成【详解】
生成随机数
rand函数可以生成随机数,随机数的范围在0~RAND_MAX(32767)之间
在使用rand函数之前,需要调用srand函数,设置随机数的生成起点
srand函数:void srand (unsigned int seed);需要传入一个整数
//生成随机数srand();int ret=rand();printf("%d",ret);
当我们在调用srand时,当srand的值确定后,生产的随机数就确定不变了,这一点也不随机。我们知道,一个变化的srand值可以对应不同的随机数值,而在电脑中,时间就是那个一直在变化的值。对于每个变化的时间,我们都有唯一的数字可以表示它,这个数字叫做时间戳,此时就要运用到time函数
time函数格式:time_t time(time_t* timer);
一般的,我们在使用time函数时,只需要它的返回值,不需要参数,而srand函数需要传入的数据类型是unsigned in,因此这里我们还需要进行一步强制类型转换,修改后如下:
//设置随机数生成器srand(unsigned int)time(NULL); //强制类型转换
srand函数(生成随机数的起点)只需调用一次,在需要生成随机数的地方直接使用rand即可
按照题目要求,我们需要限定生成随机数的范围(1-100):将生成的随机数模100,那么生成的余数就在0-99之间,我们再在此基础上加一,就可以得到1-100的随机数了。整个生成随机数完整程序如下:
#include<stdio.h>
#include<stdlib.h> //使用srand函数的头文件
#include<time.h> //使用time函数的头文件
int main(){srand((unsigned int)time(NULL)); //函数格式:srand(xx)注意括号int ret=rand();int final=(ret%100)+1;printf(" %d ",final); //这里我们方便检测结果打印出随机数,实际上不打印return 0;
}
这样就生成了一个100以内的随机数了: