在C ++中生成特定范围内的随机均匀可分数?

时间:2017-11-25 21:59:22

标签: c++ random

我正在为五年级学生制作一个Flashcard课程来练习他们的数学技能。每当他们到达程序的分区部分时,它就不会生成可分的数字。我已经生成了两个这样的数字:

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

我想通过将它乘以2,它只给出偶数,但我错了。它生成一个5,如下所示。

    ********************************
          Division Flashcards
    ********************************
                  3
                  5
              _____
显然,这两个数字不能被完全整除。如何生成随机可分割数字?

1 个答案:

答案 0 :(得分:6)

这就是我的想法:

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

通过这种方式,您可以确保结果始终是任何因素的均匀产物。