当每一步的测试可能给出错误的结果时,我需要一种算法来进行二进制搜索。
背景:
我需要让学生处于12个难度等级中最合适的位置。当前的方法是蛮力,并提出60个4答案的多项选择题,难度越来越大,在三个错误之后停下来,使学生处于等级:floor((score - 1) / 5) + 1
最低为1。
我们担心客户在面对多达60个问题的考试之前会被关闭,然后才能真正使用该程序,因此我们希望最大程度地减少测试中提出的问题数量。我们还担心客户会跳过分班测试(因为它看起来很长),然后因为看起来太容易而放弃了该程序。
中位数排名实际上是2级,因此50%以上的学生得分<11(即回答<14个问题)。有趣的是,这可能是因为他们感到无聊并且不再认真对待问题(他们是年幼的孩子)。
建议的解决方案: 将测试作为对十二个项目的二进制搜索来实施,以难度级别6/7的问题开始,然后根据问题是对还是错来进行。从理论上讲,这可以在3-4个问题中找到适合他们的难度级别。
问题: 您可能会从现有的测试中猜到只有在三个错误的答案之后才结束,并使用60个问题在12个级别中进行选择,所以我们想让学生承认正确的答案(他们应该在25%的时间里做)提供不正确的答案(胖手指,错误阅读的问题等)。这对于二进制搜索尤为重要,因为即使第一个问题都错了,对第一个问题的正确回答也会使您处于难度的上半部分。
那么,有没有一种公认的二进制搜索算法可以保证单个测试的准确性?
天真的,我可能会在每个步骤中尝试3到5个问题,并且,由于较早的问题对最终结果的影响要大于对较晚的问题的影响,因此可能仅将这些附加问题添加到较早的步骤中,而不是对较后的问题。还有什么呢?