我正在Visual Studio 2010中开发 win32 应用程序
我想生成两个必须大于 999999 的 32 位随机数,我该如何实现
您可以使用 C++11 随机:
http://en.cppreference.com/w/cpp/numeric/random
std::random_device rd;
std::uniform_int_distribution<int32_t> dist(10000);
std::cout << dist(rd) << std::endl;
我不在 MSVC++ 中开发,所以我希望它已经支持这些;)
Rand 函数返回一个介于 0 和 RAND_MAX 之间的整数,保证至少为 32767
所以首先播种 rand 函数并调用 rand。
#include <stdlib.h>
srand(0);
long int r = 999999 + (long int)((double)rand()/(double)RAND_MAX * (LONG_MAX - 999999 + 1)) ;
如果 999999 是您的最小值,首先在 [0;1] 之间缩放 rand 输出,现在缩放到新范围 [0; LONG_MAX-999999] 并转移到 [999999 ; LONG_MAX] 通过添加 999999 。