我試圖做一個隨機數字發生器,一次顯示六個數字。C++顯示六個數字的隨機集合
第一五個數字範圍可以從1-50,最後的數字範圍可爲1-60。
我現在已經設置了一些東西,一切都很順利,直到最後一個數字,我在進行測試運行時看到了4000個數字。我怎樣才能解決這個問題?
void Random::randGen()
{
for (int counter = 1; counter <=6; ++counter)
{
if (counter == 6)
{
cout << (1 + rand() % 60);
}
else
{
cout << setw(5) << (1 + rand() % 50);
}
}
}
您沒有在最後一個數字前放一個空格。所以你看到最後兩個數字壓在一起。 – Barmar
rand()並不像你想象的那樣隨機,如果你的編譯器已經支持它,使用std :: mt19937要好得多 –
首先,如上所述,'rand'不是一個很好的函數。其次,即使是這樣,模運算'%'也會破壞一致的概率分佈。簡而言之,它使得數字更小的可能性大於更大的數字。 http://tinyurl.com/qbj8vps –