gpt4 book ai didi

c# - 为数学计算生成假答案

转载 作者:行者123 更新时间:2023-11-30 21:52:46 25 4
gpt4 key购买 nike

我正在做一个类似游戏的测验,我在其中生成数学表达式,然后根据生成的数学表达式的结果生成两个假答案。因此用户看到数学表达式并得到三个答案,他需要从中选择正确的答案。

到目前为止我有

switch(opIndexValue)
{
case Helper.CASE_ADD:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
case Helper.CASE_SUBTR:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
case Helper.CASE_MULTI:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
case Helper.CASE_DIVIS:
answer1 = resultValue + Random.Range(1, 4);
answer2 = resultValue - Random.Range(1, 4);
break;
}

它看起来不错,也能胜任,但有点通用。如果你是成年人,你会很容易在三者中找出正确的解决方案,甚至不需要你的头脑计算。

如果您是数学家,您会如何生成这两个假答案?另一方面,您将如何生成 4 个假答案? :)

代码是用 C#/Unity3D 5.1.4 编写的。

最佳答案

您问题中的方法错误在于,三个可能答案的中位数始终是正确答案。我什至不需要知道问题是什么:如果可能的答案是

(一) 7
(二) 4
(三)5

答案必须是 (c) 5.

执行此操作的更好方法是模拟人们通常如何进行加法、减法、乘法、除法等操作。多位数字的加法通常涉及从右向左移动、对齐数字和“进位”。有时人们会因忘记携带 1 或错误地添加一对个位数而犯错误。

这是一个例子。假设问题是 38 + 65。我会这样解决问题:

         1     11     11     <-- carried 1's
38 38 38 38
+ 65 + 65 + 65 + 65
---- ---- ---- ----
3 03 103

这些是我执行的个别操作

(1) 8 + 5 => 13
(2) 进位1
(3) 1 + 3 + 6 => 10
(4) 进位1

生成与人们常犯的错误相匹配的错误答案的好方法是什么?只需将错误注入(inject)上述 4 个步骤之一即可。

例如,如果我跳过步骤 (2) 生成了错误答案,我会得到答案 93。

关于c# - 为数学计算生成假答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34453940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com