2013-10-01 83 views
-2

我工作的Win32應用程序在Visual Studio 2010中生成Win32應用程序的32位隨機數

我想生成兩個32位的隨機數必須是大於999999,我怎麼能實現呢

+0

你在掙扎着什麼?生成隨機數字?在範圍內生成它們?這樣做兩次?你自己做了什麼努力?你在用什麼語言?或者你是否需要兩種帶標籤的語言。請記住C和C++是不同的。 –

回答

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; 

我沒有開發板的中的p MSVC++,所以希望它已經支持這些)

+0

MSVC++ 2012中的標準庫非常接近,最大的問題在於核心語言部分。 _再次_。 – MSalters

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],現在擴展到新的範圍[0; LONG_MAX-999999]並切換到[999999; LONG_MAX]加999999。

+1

現在如何讓他獲得一個大於999999的32位隨機int? –

+0

只需更改間隔 – alexbuisson