gpt4 book ai didi

python - 通过给定函数将点分配给对象

转载 作者:行者123 更新时间:2023-12-01 00:47:08 27 4
gpt4 key购买 nike

我有一个想法,但我坚持实现一些基本的东西。我正在尝试对一定数量的对象进行点划分(有限数量的点)。这意味着什么-如果我们假设我有 100 个点分为 5 个对象,那么我们将在列表中列出这些对象:[1,2,3,4,5]

列表中的第一个位置将拥有最高的分数。然后是第二高的地方,依此类推..我想要一个根据给定函数(例如线性、指数、常数等)按降序划分以下点的函数我希望我解释得很好..我尽力了:)有谁知道Python中的包或者实现这样的事情的好方法吗?

最佳答案

假设您有一个要为其评分的对象列表。然后你可以这样做:

totpoints=100
score=[] #this list holds the score based on position
totscore=0 #this will be the sum of all the scores
for i in range(len(lst)): #lst is the list
if mode=="linear":
score[i]=i
elif mode=="quadratic":
score[i]=i*i
elif mode=="exponential":
score[i]=exp(i)
else: #constant
score[i]=1
for i in score:
totscore+=i
for i in range(len(lst)):
lst[i].send(round(score[i]*totpoints/totscore)
#assuming you send the values by some method of the objects

这实际上会为索引较高的人提供最多的分数,因此您首先要反转 score 列表以先获得较高的分数。
显然,使用它的最佳方法是在一个函数内部,然后您可以使用不同的 modetotpointslst 进行调用。

问题:这可能会给出比您实际想要的更多或更少的点数,具体取决于值的舍入。如果您需要精确,请检查您发送的总积分。

我几乎忘记了:如果您需要将点作为列表,您可以这样做

points=[round(s*totpoints/totscore) for s in score]

关于python - 通过给定函数将点分配给对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56874776/

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