1 C语言产生随机数函数。rand(); 头文件为stdlib.h
2 产生[m,n]范围内随机数的语句: rand()%(n-m+1)+m
3 要产生不同随机数范围的方法:
将已获取的随机数保存下来,在产生新的随机数后,与已获取到的进行比较,如果存在则抛弃,否则保存。
于是,获取到最小为m,最大为n,总数为k个的不同随机数的函数可以写作:
void get_rand(int *a, int m, int n, int k)//结果存在a中
{
int i,j,t;
for(i = 0; i < k; )
{
t = rand()%(n-m+1)+m;
for(j = 0; j < i; j ++)
if(a[j] == t) break;
if(j == i)//不重复
a[i++] = t;//记录随机数。
}
}
你应该会看字,会模仿吧,把m,n改成你需要的具体数字就可以了
追问要产生 1 至 2千万的随机数
int a;
srand((unsigned)time(NULL));
a=rand() % 20000000 +1;
可是rand()产生的不是在0~32767之间的数吗,按上面这样得到的数范围是在1~32768的