gpt4 book ai didi

python - 5 的组合的最大可能值

转载 作者:行者123 更新时间:2023-12-01 02:53:48 26 4
gpt4 key购买 nike

根据https://www.heroescounters.com/teampicker一名英雄与另一名英雄具有协同值(value),《 Storm 英雄》有 60 多个英雄,每个英雄都具有协同值(value),例如:

HeroID  Synergy.With.HeroID      Synergy.Points
1 2 97
1 3 95
1 4 94
45 1 2
45 2 11

《 Storm 英雄》中的一个队伍有5名英雄,队伍的全部协同力计算公式为:

Team_total_synergy = Synergy_Points(Hero1 with Hero2) + 
mean(Synergy_Points(Hero3 + Hero1) + Synergy_Points(Hero3 + Hero2)) +

mean(Synergy_Points(Hero4 + Hero1) + Synergy_Points(Hero4 + Hero2) + Synergy_Points(Hero4 + Hero3)

[And so on... till Hero5]

公式解释:英雄1和英雄2协同后的每个协同值是通过该英雄与团队其他成员的平均值计算的,当英雄5相加时,我得到了团队所有值相加的协同值.

我的答案是,在给定公式的情况下,我怎样才能找到(使用 Python 或 R)具有最大可能协同作用的团队,以及考虑到可能有 64 名英雄(大约),我怎样才能编写代码来找到它。

最佳答案

最简单的方法是通过计算所有 64^5 英雄组合并计算其总协同分数来进行暴力破解。然而,在大多数计算机上,这将需要几分钟到一个小时。

更有效的方法是首先将 Synergy.Points 列从高到低排序。那么问题就变成了找到一条由五个英雄组成的“路径”,使得路径中的最高位置在 table 上尽可能低(即与最大的协同作用相关)。

路径是英雄列表,您可以从英雄跳到相关英雄,直到拥有五个独特的英雄。在下表中,路径为 1 -> 2 -> 5 -> 6 -> 7。表中与此路径关联的位置为 1、4、5、2,其中最高点为 5。

这将保证总体协同效应最高。

HeroID  Synergy.With.HeroID      Synergy.Points
1 2 97
6 7 95
1 4 94
2 5 11
5 6 2

至于 python 代码,这有点棘手......我尝试了大约 20 分钟来解决这个问题,但我意识到有很多复杂性。例如,路径可能有一个循环,如果您的程序不小心,可能会创建无限循环。

如果您想执行此过程一次以找到该游戏最高效的团队,我会尝试暴力方法。如果您希望能够一遍又一遍地运行此代码,我会将其提交给计算机科学 stackoverflow 并获取在 python 中执行此操作的算法。

希望有帮助:)

关于python - 5 的组合的最大可能值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44449013/

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