c standard library中的rand函数
c中的rand函数号称取值范围为0到最大整数,但是我测试了一下,发现不是这样
#include <cstdlib>
#include <limits>
using namespace std;
int main(){
cout << numeric_limits<int>::max() << endl;
while(1){
if(rand() > 100000)
break;
}
return 0;
}
我发现,rand()永远产生不了大于100000的数。
rand到底是怎么回事。奇怪。
[解决办法]
sorry
#include <stdlib.h> int rand( void );
功能: 函数返回一个在零到RAND_MAX 之间的伪随机整数。
你可以看下RAND_MAX的大小为多少?
[解决办法]
RAND_MAX
我印象中Windows下VC自带的库文件中是65536
Linux下面好像是2^31-1,也就是INT_MAX