生成随机简单的数学除法问题

时间:2015-03-03 11:53:57

标签: java android random division modulus

我正在为我的女儿制作一个简单的Android应用程序,这样她就可以解决数学问题。我发现随机生成加法,减法和乘法问题相当容易,但是除法更加棘手。

我不想进入小数,所以我必须检查每个是否可以整除而没有余数。这就是我正在使用的......

public void genDivQuestion() {
        text = (TextView) findViewById(R.id.textView1);
        text.setText(divisible());
        answer = first / second;
}

public String divisible() {
        first = RandomNumGen.getRandIntBetween(2, 12);
        second = RandomNumGen.getRandIntBetween(2, 12);
        if (first % second == 0) {
            return first + " \u00F7 " + second + " = ?";
        } else {
            return "0";
        }
}

我不确定在该行做什么"返回" 0&#34 ;;"。如果我尝试再次调用divisible(),应用程序就会崩溃。

这是RandomNumGen课程,我从James Cho的初学者书中挪用:

import java.util.Random;

public class RandomNumGen {

    private static Random rand = new Random();

    public static int getRandIntBetween(int lowerBound, int upperBound) {
        return rand.nextInt(upperBound - lowerBound) + lowerBound;
    }

    public static int getRandInt(int upperBound) {
        return rand.nextInt(upperBound);
    }
}

1 个答案:

答案 0 :(得分:2)

不要绘制2个随机数并检查它们是否可以相互整除,而是尝试以下方法:

first = someRandomNumber(2, 12);
second = someRandomNumber(2, 12);

showDivisionProblem(first * second, first)

此问题会要求您将first * second除以first,答案应为second

例如:

3 * 2 / 2 --> 6 / 2 = 3

在找到2个好数字之前,无需循环运行。这样,数字总是可以分割的。

修改

如果将两个操作数限制为12很重要,那么请考虑以下内容:

first = someRandomNumber(2, 12);
second = someRandomNumber(1, 12 / first);

其中first是int类型。

在这种情况下,如果first是任何高于6的值,则第二个被强制为1。 如果first是6到4之间的任何值,则second可以是1或2 如果first是4,则second可以是1,2或3 等