想要使用 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”之类的问题,这可能会使一些不了解十进制数的孩子感到困惑。因此,您可能应该将生成每种类型问题的逻辑放入它们自己的 case
s.
减法题,可以先看哪个数大。然后适当排列,避免结果为负数。
除法题,可以生成两个数,用两个数除以其中一个数出一道题。这样你就可以保证一个整数解。像这样:
let number1 = Int.random(in: 0..<10)
let number2 = Int.random(in: 0..<10)
let product = number1 * number2
question = "\(product) / \(number1)"
我正在制作一个 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”之类的问题,这可能会使一些不了解十进制数的孩子感到困惑。因此,您可能应该将生成每种类型问题的逻辑放入它们自己的 case
s.
减法题,可以先看哪个数大。然后适当排列,避免结果为负数。
除法题,可以生成两个数,用两个数除以其中一个数出一道题。这样你就可以保证一个整数解。像这样:
let number1 = Int.random(in: 0..<10)
let number2 = Int.random(in: 0..<10)
let product = number1 * number2
question = "\(product) / \(number1)"