2010-07-14 133 views

回答

17

您可以使用qrand創建隨機數。如果你需要字符串,你可以將int轉換爲字符串。您還可以檢查生成通用唯一標識符的QUuid類。那些不是「完全隨機的」,但它們是獨一無二的。

+0

您的答案中的鏈接現在已被打破! – zar 2015-06-03 18:40:22

11
int number; 
int randomValue = qrand() % number; 

返回一個隨機數 randomValue = number <。

qrand()QtGlobal中聲明,它被許多其他Qt文件包含。

int value; 
QString aString = QString::number(value); 

將整數轉換爲QString。

2

以下示例使用大寫字母從A到Z和length = len生成字母字符串。

QString randString(int len) 
{ 
    QString str; 
    str.resize(len); 
    for (int s = 0; s < len ; ++s) 
     str[s] = QChar('A' + char(qrand() % ('Z' - 'A'))); 

    return str; 
} 
2

這不是一個很好的方法來生成給定範圍內的隨機數。 (實際上對於大多數發電機來說這是非常糟糕的)

您假定發電機的低位是均勻分佈的。大多數發電機並非如此。在大多數生成器中,隨機性出現在高階位中。

通過使用劃分後的餘數,實際上是拋出隨機性。

您應該使用乘法和除法進行縮放。不使用模運算符。 如

my_numbe r= start_required + (generator_output * range_required)/generator_maximum; 

如果generator_output[0, generator_maximum]my_number將在[start_required , start_required + range_required]

相關問題