希望这是有道理的。我正在写一个测验类型的游戏,玩家选择一个问题,尝试一个答案,如果正确的分数值被添加到玩家,否则从玩家得分中获取价值。我已经完成了所有工作,现在我很想知道它是否有意义,并且可以根据正确/错误的比率动态调整问题的价值。
请考虑下表。每个问题的值为100-1000,增量为100-1000。
| ID | numbRight | numWrong | Score | |----|-----------|----------|-------| | 1 | 30 | 30 | 100 | |----|-----------|----------|-------| | 2 | 40 | 60 | 200 | |----|-----------|----------|-------| ..................................... | 10 | 80 | 20 | 1000 | |----|-----------|----------|-------|
你可以看到问题1的比例为1/1,它可能是好的。
看问题2,我们看到它的比例为2/3。这个问题经常被错误地回答,然后才是正确的。可能需要为此问题指定更高的值。
跳过接下来的几个问题,我们看到问题10的比率为4/1。这个问题与问题2相反。它可能应该向下移动。我们不希望在明显对普通人来说并不困难时给予玩家高价值的问题。
约束是这样的:
每个问题的值必须介于100-1000和100之间。
必须是每个地方的问题。因此,必须有一个值为100的问题,一直到1000,总共有10个问题。
问题
是否有适用于此的公式?
是否可以务实地决定这些问题应该上下移动?
如果10由于其比率而向下移动,则导致9变为10.但是在下一次传递时,公式将确定现在10由于其自身比率而需要向下移动。如何避免无限循环?
答案 0 :(得分:2)
麻烦的是,如果很多人提出错误的问题,你不知道是不是因为这是一个难题(这是你想要的),还是因为这是一个糟糕的问题(措辞不当,误导或者可能)即使错误的答案标记为“正确”)。
标准化测试,如GRE,在测试中提出新问题以及旧问题,以确保那些使他们正确的人也是那些在旧问题上获得好成绩的人。如果你没有类似的东西,那么我会毫不犹豫地相信任何自动排名算法。
因此,如果你想继续这样做,你至少需要一些自动化的方法来找出难题和好问题之间的区别。这超越了编程,更多的是数学和统计学。我不会假装自己是这两个主题的专家,但这里有一些你可能会感兴趣的事情:
普林斯顿评论的“Cracking the GRE”书解释了GRE如何测试新问题。 (或者至少他们几年前做过,在GRE完全进入计算机化自适应测试之前。如果新版本没有帮助,看看你是否能找到一些旧版本。)Princeton Review GRE Web site也可能有一些有用的信息。
维基百科上有关computerized adaptive testing和regression analysis的文章可能有用。
答案 1 :(得分:0)
听起来你只是想这样做:
为每个问题分配难度等级,由
指定number of people who got it wrong
---------------------------------
number of people who answered it
对于每个问题,难度等级将是0
和1
之间的数字。
按难度等级排列问题
按照难度等级的顺序将分数1000
分配给100
到问题,以便最困难的是1000
ascore,依此类推。您需要调整实际分数以说明有多少问题;目前还没有足够的细节可以说明如何。
如何避免无限循环?
只做一次通过。