【问题标题】:Generating random simple math division problems生成随机简单的数学除法问题
【发布时间】:2015-03-03 11:53:56
【问题描述】:

我正在为我的女儿制作一个简单的 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";
        }
}

我不确定在“return "0";”这行要做什么。如果我尝试调用 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);
    }
}

【问题讨论】:

  • 请将您的错误堆栈添加到问题中
  • 你能把 RandomNumGen 的代码也贴出来吗?

标签: java android random division modulus


【解决方案1】:

不要绘制 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 的值,则 second 被强制为 1。 如果 first 是 6 到 4 之间的任何值,则 second 可以是 1 或 2 如果第一个是 4,第二个可以是 1、2 或 3 等等

【讨论】:

  • 再试一次,两个操作数都保持在 2..12 范围内。
  • 虽然我认为这不是一个好主意...如果一个孩子知道如何将 3 乘以 10,那么应该知道如何将 30 除以 3。
  • 这可能产生 16/4 而错过 10/n。
  • 我会尝试一下这些想法。范围如此有限并不是必须的,但我女儿只有四岁。另一方面,她非常聪明:) 谢谢。
  • 4 岁的孩子可能非常聪明,尤其是当他们的父亲为他们制作应用程序来学习数学时;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-05
  • 2012-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多