2017-11-25 239 views
-1

我正在爲五年級的Flashcard計劃來練習他們的數學技能。無論何時他們到達程序的分割部分,它都不會生成均勻分割的數字。我已經生成了兩個數字,像這樣:在C++的特定範圍內生成隨機均勻可分的數字?

int divisor_one = 1+rand()%5 * 2; 
    int divisor_two = 1+rand()%5 * 2; 

我想通過乘以由兩個,但只給出偶數,但我錯了。它會生成一個5,如下所示。

******************************** 
      Division Flashcards 
    ******************************** 
        3 
        5 
       _____ 

顯然,這兩個數字並不能被整除。我怎樣才能生成隨機均勻分割數字?

+5

好像你將隨機數乘以2,然後加1.'(1 + rand()%5)* 2;'可能會更好。 –

+0

這確實使它只產生偶數,但它不會使它們均勻**可分**。 –

+0

'>>但它並不能使它們均勻分割,那麼什麼是可以整除的數字呢? –

回答

6

這是我腦子裏想的:

int divisor_one = 1+rand()%5 * 2; 
int result = 1+rand()%5 * 2; 
int divsor_two = divisor_one * result; 

這樣,你要確保結果始終是一個甚至產品的任何因素都。