利用rand生成随机数
int rand_new(int min_val,int max_val)
{
srand((unsigned)time(NULL));
return rand()%(max_val-min_val+1)+min_val;
}
例如 rand_nem(6,9),最终实现用的rand()%(9-6+1)+6=rand()%4+6。rand()%4产生的是0~3,则最终产生6~9的数字。
数学原理如下
要产生随机数r, 其范围为 m<=r<=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理为,对于任意数,
0<=rand()%(n-m+1)<=n-m
于是
0+m<=rand()%(n-m+1)+m<=n-m+m
即
m<=rand()%(n-m+1)+m<=n