关于C语言的随机数,麻烦了
来源:百度知道 编辑:UC知道 时间:2024/09/22 20:16:00
我想生成一个范围早5-50内(包括3,50)的随机数,并且可以接着用这个数计算的话要怎么做?
设置随机数方法
(1) 首先加入头文件#include <time.h> 之所以要加time.h文件,因为要用它来作为时间种子
(2)设置时间种子
srand((unsigned)time(NULL));
(3)生成随机数
rand()%N
但最好用下面的形式
(int)rand()/(double)(RAND_MAX+1.0)*N
因为rand()%N 误差要大一些
。。。。。。。。
如例:生成一个范围早5-50内的随机数
int i;
i=(int)rand()/(double)(RAND_MAX+1.0)*46+5;
若(包括3,50) 也就是说生成3-50 而不生成4
可以用个循环
do{
i=(int)rand()/(double)(RAND_MAX+1.0)*48+3; //3-50
}while(i==4) // 将4去掉
这样就满足了
rand()%46+5
rand()返回一个随机整数,然后对这个整数取46的余数,则rand()%50在0到45之间,再加上5就是5到50了。