C# 来自正确/错误比率的动态分数值

C# 来自正确/错误比率的动态分数值,c#,math,C#,Math,希望这会有意义。我正在写一个问答游戏,玩家选择一个问题,尝试回答,如果正确的分数值被添加到玩家,否则从玩家的分数中获取值。我已经完成了所有这些工作,现在我很好奇它是否有意义,是否能够根据问题的对错比动态调整问题的值 考虑下表。每个问题的值为100-1000,增量为100分 | ID | numbRight | numWrong | Score | |----|-----------|----------|-------| | 1 | 30 | 30 | 100 |

希望这会有意义。我正在写一个问答游戏,玩家选择一个问题,尝试回答,如果正确的分数值被添加到玩家,否则从玩家的分数中获取值。我已经完成了所有这些工作,现在我很好奇它是否有意义,是否能够根据问题的对错比动态调整问题的值

考虑下表。每个问题的值为100-1000,增量为100分

| ID | numbRight | numWrong | Score | |----|-----------|----------|-------| | 1 | 30 | 30 | 100 | |----|-----------|----------|-------| | 2 | 40 | 60 | 200 | |----|-----------|----------|-------| ..................................... | 10 | 80 | 20 | 1000 | |----|-----------|----------|-------| |ID | numbRight | numWrong |分数| |----|-----------|----------|-------| | 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需要向下移动。如何避免无休止的循环


  • 边注释:在完整的程序中有10个问题,但只有一个类别的问题将同时考虑这个公式。其次,统计数据都是虚构的,只是觉得这样更容易。

    听起来你只是想这样做:

    • 为每个问题指定一个难度等级,由

      number of people who got it wrong
      ---------------------------------
      number of people who answered it
      
      对于每个问题,难度评级将是介于
      0
      1
      之间的数字

    • 根据难度等级对问题进行排序

    • 将分数
      1000
      下至
      100
      分配给问题,按照其难度等级排列,以便最难的分数为
      1000
      ,依此类推。您需要调整实际分数,以说明有多少问题;目前还没有足够的细节来说明如何进行

    如何避免无休止的循环


    只做一道题。

    问题是,如果很多人答错了一个问题,你不知道是因为这是一个困难的问题(这是你想要的),还是因为这是一个糟糕的问题(措词不当、误导人,甚至可能错误的答案被标记为“对”)

    标准化考试,如GRE,将新问题与旧问题放在一起,以确保正确回答问题的人也是那些在旧问题上取得好成绩的人。如果你没有类似的东西,那么我会犹豫是否信任任何自动排名算法

    因此,如果你想继续进行这项工作,你至少需要一些自动化的方法来找出硬问题和好问题之间的区别。这不仅仅是编程,更多的是数学和统计学。我并不假装是这两个领域的专家,但以下是一些你可能会感兴趣的事情:

    • 《普林斯顿评论》的“书籍”解释了GRE领域如何测试新问题。(或者至少在几年前,在GRE完全转向计算机化自适应测试之前,他们就这样做了。如果更新的版本没有帮助,看看你是否能找到一些旧版本。)GRE也可能有一些有用的信息

    • 维基百科上有关于这方面的文章,这可能很有用

    • 还可以查看和


    问题是,如果很多人都答错了一个问题,你不知道这是因为这是一个难回答的问题(这正是你想要的),还是因为这是一个糟糕的问题(措词不当、误导人,甚至可能错误的答案被标记为“对”)。标准化考试,如GRE,将新问题与旧问题放在一起,以确保正确回答问题的人也是那些在旧问题上取得好成绩的人。如果你没有类似的东西,那么我会毫不犹豫地相信任何自动排名算法。嗯,说得好。我几乎不得不设置一些类似A/B测试的东西。一个问题可能有具有相同值的备选文本,并找出哪个文本更好。不过,这可能并没有经过算法的真正测试。@JoeWhite请你把你的评论变成一个答案。现在看来,我不会得到更好的答案。
    …说明有多少问题。
    每个类别最多有10个问题,至少有5个问题。根据需要可以有任意多个类别。正确的一次,我想我在想,如果它在一个月后再次运行,并且每次都不断地移动9和10,那将会有很大的不同。对于这场比赛的目的,我不认为它需要额外的努力。谢谢你的意见。