-1

我正在Visual Studio 2010中开发 win32 应用程序

我想生成两个必须大于 999999 的 32 位随机数,我该如何实现

4

2 回答 2

4

您可以使用 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++ 中开发,所以我希望它已经支持这些;)

于 2013-10-01T05:38:37.637 回答
1

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 。

于 2013-10-01T05:42:20.633 回答