我在理解这种蛮力方法时遇到了一些麻烦。我正在使用 Perl 提取问题及其选择。现在所有的问题都存储在一个数组中。我不确定如何处理这些答案。
我应该如何存储答案并组织我的代码,以便它执行类似于此的操作...
选择问题的第一个选项。(所以通过一个,所有的问题都应该选择选项A)。
提交以检查正确答案。
解析答案,如果给定的答案是正确的,则将其标记为“正确”答案并忘记尝试为该问题选择任何其他选项。
否则,请在下一轮继续浏览该问题的答案列表。
因此,下一次将选择该问题的第二个答案,直到多次提交后,它通过蛮力找到所有“正确”的答案。
我在如何存储答案并将它们与问题相关联时遇到问题,将它们划掉,因为它们是错误的或将其标记为“找到”。
我正在考虑使用哈希。请让我知道有关如何构建代码的任何建议。
谢谢!
编辑
样本数据 -
所以我正在使用 HASH 方法......我的哈希看起来像这样:
打印出散列:
question_123 => a,b,c,d
question_155 => a,b,c
question_234 => T,F
现在我必须找到一种方法来遍历每个选项,直到找到该问题的正确答案。
编辑
为了澄清一些事情,让我们假设有 10 个问题。用户单击“开始练习”,从 10 个问题池中生成 4 个随机问题。因此,在当前状态下,我有四个问题及其答案。我将这些问题及其答案添加到数据结构中(来自下面的一个......或使用文件来存储它们)。接下来我要选择一个答案。然后用户必须提交这些问题以供审核。点击提交按钮后,提示会显示问题 x 是正确还是不正确。基于此,数据结构必须更新哪个是该问题的正确答案。
现在冲洗并重复。这次从同一个池中生成了另外四组随机问题。这一次,发现了两个新问题,因此必须将它们添加到数据结构中。应该使用类似的逻辑来寻找答案。此外,每个答案选项(选择)始终附加一个唯一的数值,因此我的服务器可以使用该值检查答案 ID。在我的服务器端,每个问题只有一个 ID 和相关的正确答案。使用我的桌子会破坏这个实验的目的。
正在发生的事情的可视化:
Pass One -- 4/10 Random Questions
1. Who is the US president?
21. Barrak
22. Chap
23. Jim
24. Nivea
2. How many states are there?
25. 99
26. 90
27. 51
3. What is the color of the sky?
28. blue
29. black
30. none
4. Is time relative?
31. False
32. True
因此,在第一次通过时,选择应该如下所示:
1 => a - 21
2 => a - 99
3 => a - 28
4 => False - 31
点击提交按钮。服务器响应:
1. Correct
2. Incorrect
3. Correct
4. Incorrect
现在用找到的正确答案更新数据结构。
程序现在在提示时请求一组新的问题。这次服务器返回:
Pass Two -- 4/10 Random Questions
4. Is time relative?
31. False
32. True
6. What is not a plant?
65. Cow
66. Rose
67. Tree
1. Who is the US president?
21. Barrack
22. Chap
23. Jim
24. Nivea
8. What is a programming language?
99. C++
100. Tylenol
101. Mr.Monster
看,现在在这个过程中出现了两个新问题。对于这些人来说,必须选择第一个选项,但对于重复的选项,除非已经找到正确答案,否则应该选择下一个选项。
所以这将被发送到服务器:
4. True - 32
6. Cow - 65
1. Barrack - 21
8. C++ - 99
服务器响应:
4. Correct
6. Correct
1. Correct
8. Correct
同样处理响应。希望这真的可以解决问题。另请注意,每个答案都将始终附加一个唯一的数值。