rand()函数的按比例缩小返回值是怎么搞的?

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:11:40
srand(time(NULL));
int limit = 20.0;
int chose = 0;
chosen = rand()%limit;
他说,“<time.h>头文件会吧时间返回一个整数值,如果需要更小的范围的数值,可以按比例缩小rand()的返回值,提供所需范围的值。”
但是我弄不明白,按比例缩小返回值是什么意思?他怎样按比例缩小?
不懂

rand的返回值本身是不会变的,我印象中是随机从0到一个名为RAND_MAX的宏所规定的随机数,这个RAND_MAX宏是固定的,也无需改变,所以rand的返回值也不会变

他的意思可能是修改limit这个变量,来限制最后所得的大小吧

实际上用rand的话,这种方法更好,也更直观:
(int)(n*rand()/(RAND_MAX+1.0));//返回一个数字,0 to n-1
srand(int);//设置一个种子,大部分时候我们用时间做种子,time(NULL);//time.h

rand()返回值是很大的一个数
看你需要,要多少之内就除多少就行了