Windows系统如何用rand()函数生成0到2^30-1之间的随机数

在Windows系统中,rand()函数能生成的随机数的范围为0~32767。我尝试过修改RAND_MAX的值,可是没用,生成的随机数还是在0~32767之间。

那该怎么办?????

我们可以随机生成一个32768进制数。因为32768=2^15,为了保证不超过int的范围,这个32768进制数不能超过2位。那么,我们可以一位一位地生成。

代码:

int bigrand(){//生成0 ~ 2^30-1之间的随机数 
	int a = rand();//32768进制数的高位
	int b = rand();//32768进制数的低位
	return a * 32768 + b;//计算出这个数
}

调用bigrand()函数即可生成0~2^31-1之间的随机数。

猜你喜欢

转载自blog.csdn.net/nnKevi/article/details/120612371