我是 QT/c 的新手,所以我有一個問題,QRandomGenerator 總是生成相同的數字?我嘗試做一些事情,隨機選擇一個向量:
int index;
QRandomGenerator num = QRandomGenerator();
index = num.bounded(6);
if (index == 0){
return dmpcY1;
}else if (index == 1){
return dmpcY2;
}else if (index == 2){
return dmpcY3;
}else if (index == 3){
return dmpcY4;
}else if (index == 4){
return dmpcY5;
}else if (index == 5){
return dmpcY6;
}else if (index == 6){
return dmpcY7;
}
那是行不通的。我一直得到相同的 dmpcY1(在同一個程式周期中)。bb
我期待每次按下按鈕時,代碼選擇不同的 dmpc。
uj5u.com熱心網友回復:
請考慮再看一下QRandomGenerator 的檔案:
您總是在使用種子值為 的默認建構式時創建一個新的隨機生成器1,從而始終生成相同的偽亂數
QRandomGenerator::QRandomGenerator(quint32 seedValue = 1)使用值 seedValue 作為種子初始化此 QRandomGenerator 物件。使用相同種子值構造或重新設定種子的兩個物件將產生相同的數字序列。
如檔案中所述,使用它可能會更好QRandomGenerator::global()
QRandomGenerator::global()回傳一個 QRandomGenerator 的全域實體,Qt 將確保它被安全地播種。這個物件是執行緒安全的,可以為大多數用途共享,并且總是從 QRandomGenerator::system()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/526624.html
標籤:C qt
