python 投票系统的潜在数学舍入错误

问题描述 投票:0回答:0

我正在制作一个测验应用程序。它的后端由 python 控制。 我刚刚把它打出来作为一个思想实验。我可能可以输入代码,但我无法弄清楚这背后的数学原理。

我希望用户像往常一样在各种问题类别中回答问题。此外,我希望用户能够对每个类别的价值进行投票。 然后进一步能够对子类别的价值进行投票。

有一个总分,人们在所有问题类别中得分的百分比。

所有类别和问题的最高分数为 6000

 max_score = 6000

每个类别都有 6000 的百分比 用户可以对类别值进行投票,向上或向下。 每个用户都有权将类别的百分比更改为 6000 的 0.00001%。这就像地球上的每个人都有投票权一样。但我将这个数字减少到一个主要网站可以获得的访问者数量的实际数字。

user_vote = 0.00001/max_score

categories = {'General knowledge': '25%', 'Spacial Reasoning': '15%', 'IQ': '60%'}

所以gen知识值6000分的25%

如果你赞成这个类别。您的百分比已添加到所选类别

def vote_up():
    category_percentage += user_vote
    other_category1 -= user_vote / len(categories) -1 # -1 because one cat gets added to
    other_category2 -= user_vote / len(categories) -1 # will probably be more than 3 cats
    # more cats ....

所以类别的值发生了变化,但每个类别的得分仍然只有 10/10

然后同样的事情发生在子猫的更小级别,比如空间问题、自然、运动。

gen_knowledge_sub_cats = {'history': '10%', 'sports': '10%', 'math': '55%', 'science': '25%'}

问题是从类别中删除分数,现在所有类别都失去了投票的价值,而不是被否决的类别数量。 这些子类别根据投票在它们之间分配父类别的百分比。

如果很多人投票,我不会在一段时间后出现一些严重的舍入错误吗?而 other_categories 有一定数量,剩下余数?

我担心它可能会出现很多问题。我还不够好,无法弄清楚这背后的数学原理。

python database math rounding
© www.soinside.com 2019 - 2024. All rights reserved.