想要使用 swift 生成随机数学函数?

Wanting to generate a random maths function using swift?

我正在制作一个 ARKit 游戏(使用 Swift 4)供 children 第一次学习数学的年轻人使用。我需要制作一组函数来生成一个随机的简单数学问题。我知道如何完成数字生成,但尝试同时生成数学运算符 (+、-、​​%、*) 证明是一个挑战。

我最初考虑使用数组将每个运算符作为字符串调用,但我需要将值传递到实际问题中,以便知道正确答案。

它需要做的就是生成一个案例,我可以将两个变量放入一个问题中,例如。

var num1 = 0
var num2 = 0


qLabel.text = "\(question)"

num1 = Int.random(in: 0.. < 10)
num2 = Int.random(in: 0.. < 10)

if (operator is a +) {

   question = "\(num1) + \(num2)"
   answer = (num1 + num2)

}

谁能帮我想办法解决这个问题?

没有"magic bullet"。为了向用户展示,您需要从操作符列表中随机选择字符串,例如["+", "-"],通过在列表中生成随机索引。实际计算时,你要测试它是哪个字符串,并写出相应的计算。

一种方法是为每个运算符对应一个数字:

let operator = Int.random(in: 0..<4)
let number1 = Int.random(in: 0..<10)
let number2 = Int.random(in: 0..<10)
switch operator {
    case 0: question = "\(number1) + \(number2)"
    case 1: question = "\(number1) - \(number2)"
    case 2: question = "\(number1) / \(number2)"
    case 3: question = "\(number1) * \(number2)"
}

看这是给小孩子看的,出题的时候可以聪明一点。使用像上面这样的简单方法可能会导致诸如“5 / 3”之类的问题,这可能会使一些不了解十进制数的孩子感到困惑。因此,您可能应该将生成每种类型问题的逻辑放入它们自己的 cases.

减法题,可以先看哪个数大。然后适当排列,避免结果为负数。

除法题,可以生成两个数,用两个数除以其中一个数出一道题。这样你就可以保证一个整数解。像这样:

let number1 = Int.random(in: 0..<10)
let number2 = Int.random(in: 0..<10)
let product = number1 * number2
question = "\(product) / \(number1)"