gpt4 book ai didi

java - 测验算法 - 更难让 q 回答正确/更容易让 q 回答错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:25:03 34 4
gpt4 key购买 nike

我正在编写一个测验,为用户提供一个问题,然后他必须回答。

如果用户回答正确,得到相同问题的机会应该会减少,如果答案是错误的,应该有更大的机会再次得到同样的问题,然后有一个正常的问题。

我的解决方案是创建 5 个包含问题的数组,然后移动问题并像这样提供它们:

int rand = random.nextInt(100);

if (rand < 5) {
// Question answered correct 2 times - 5 % chance
} else if (rand > 4 && rand < 15) {
// Question answered correct 1 time - 10 % chance
} else if (rand > 14 && rand < 35) {
// Normal question - 20 % chance
} else if (rand > 34 && rand < 65) {
// Answered wrong 1 time - 30 % chance
} else if (rand > 64 && rand < 100) {
// Answered wrong 2 times - 35 % chance
}

但是假设我回答了一个问题 1 或 2 次,再次得到完全相同的问题的机会太大,直到有更多的问题被回答正确。

我尝试解决这个问题的方法是只生成 15 到 100 之间的随机数,直到有 100 个问题被正确回答。

在我看来,这可以更好地实现,但无法提出解决方案。

关于如何改进它的任何想法?

最佳答案

我会更像这样实现它:

您制作了一个 float 数组,每个问题有一个条目,它表示问题被问的频率的因素。最初,所有问题的系数都是 1。诀窍是在回答正确后降低系数。例如,您可以将其减半。

要选择一个要问的问题,您需要对数组中的所有因素求和(如果您有 250 个问题,它最初的总和为 250,但当因素改变时总和会有所不同)并取一个介于 0 之间的随机数和总和。假设这个随机数变为 110.5。然后计算因子的累积和,直到它们总和为 110.5。这意味着,遍历数组并对所有因素求和,但是当总和大于随机数时,您会停下来并询问迭代在该点的位置。对于因子较低的问题,您将有较低的机会击中它们。如果所有问题的系数都较低,则机会再次均等。

通过这种方式,您可以任意增加或减少获得问题的机会(例如,当用户答对问题时减半,当他答错时加倍)。或者,您可以像在当前系统中一样,在他做对一次时将系数设置为 0.5,在他做对两次时设置为 0.25,在他做错一次时设置为 1.5,在他做错两次时设置为 1.75。

关于java - 测验算法 - 更难让 q 回答正确/更容易让 q 回答错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26957113/

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