C# 选择排名最接近某一限制的球员团队的算法

C# 选择排名最接近某一限制的球员团队的算法,c#,algorithm,C#,Algorithm,假设我有一个30人的数据库。数据库保存球员在3个元素中的排名值(击球、保龄球和防守-排名为1-10,其中10是最高的)和球员参加的比赛数。为了计算球队排名,我想计算球员在3个要素上的排名平均值,并将其加入球队得分 有两种类型的比赛-友谊赛和联赛。 选择团队时要考虑的事项: 球队必须保持平衡(例如,防守排名不得超过击球和保龄球排名的1) 在一个赛季结束时,所有球员必须有大约相同数量的比赛(一个赛季大约有15场比赛,当用户批准球队时,一名球员会增加比赛) 如果用户将比赛设置为友好,那么算法将忽略玩

假设我有一个30人的数据库。数据库保存球员在3个元素中的排名值(击球、保龄球和防守-排名为1-10,其中10是最高的)和球员参加的比赛数。为了计算球队排名,我想计算球员在3个要素上的排名平均值,并将其加入球队得分


有两种类型的比赛-友谊赛和联赛。 选择团队时要考虑的事项:

  • 球队必须保持平衡(例如,防守排名不得超过击球和保龄球排名的1)
  • 在一个赛季结束时,所有球员必须有大约相同数量的比赛(一个赛季大约有15场比赛,当用户批准球队时,一名球员会增加比赛)
  • 如果用户将比赛设置为友好,那么算法将忽略玩家的排名,而是选择最少的玩家

    我需要做一个算法,将给一场比赛(10名球员)的排名尽可能接近一个限制(1和100之间的任何数字)的最佳团队(限制是由用户设置)

    以下是我看到的内容

    我研究了0-1背包问题,但我不知道如何修改它,使团队在某种程度上保持平衡。我也看过线性规划,但我认为我不能在这里使用它(如果我错了,请纠正我)

    这是一个问题

    您可以使用代数建模语言(如AMPL)逐个解决此类问题,也可以使用库编写更灵活的解决方案。

    这是一个简单的解决方案


    您可以使用代数建模语言(如AMPL)逐个解决此类问题,也可以使用库编写更灵活的解决方案。

    欢迎使用,这篇文章看起来更适合您。你介意试一试吗?游戏的数量是如何计算/存储的?玩家之间有什么不同?这个问题没有写出来。一支球队的排名是如何从球员的排名中计算出来的?“不大量增加”的限制是什么?“联赛选强队,友谊赛选弱队”有什么影响?“需要制定一个算法,尽可能为最好的团队提供支持”是什么意思?这是指下一场比赛可能最强的球队,还是整个赛季可能最强的球队?如果是后者,您如何比较不同的团队?看起来你还没有编程问题。@PaulHankin,一支球队的排名是如何根据球员的排名计算出来的我想通过计算3个要素的平均值并将它们相加来计算团队的整体评分。“不大量增加”的限制是什么不高于1。“联赛选强队,友谊赛选弱队”有什么影响我有一个复选框,如果勾选了友谊赛,那么程序会忽略排名并选择最不受欢迎的球员。“需要制定一个算法,尽可能为最佳团队提供支持”是什么意思只是为了下一个match@redshift0345也许您可以用细节更新问题(例如,您如何计算团队实力,以及“巨额”的细节),并排除任何不相关的细节(如条件3)?我不确定这个问题是否适合堆栈溢出,但这些步骤将是一个很好的开始。欢迎来到这里,这篇文章看起来更适合堆栈溢出。你介意试一试吗?游戏的数量是如何计算/存储的?玩家之间有什么不同?这个问题没有写出来。一支球队的排名是如何从球员的排名中计算出来的?“不大量增加”的限制是什么?“联赛选强队,友谊赛选弱队”有什么影响?“需要制定一个算法,尽可能为最好的团队提供支持”是什么意思?这是指下一场比赛可能最强的球队,还是整个赛季可能最强的球队?如果是后者,您如何比较不同的团队?看起来你还没有编程问题。@PaulHankin,一支球队的排名是如何根据球员的排名计算出来的我想通过计算3个要素的平均值并将它们相加来计算团队的整体评分。“不大量增加”的限制是什么不高于1。“联赛选强队,友谊赛选弱队”有什么影响我有一个复选框,如果勾选了友谊赛,那么程序会忽略排名并选择最不受欢迎的球员。“需要制定一个算法,尽可能为最佳团队提供支持”是什么意思只是为了下一个match@redshift0345也许您可以用细节更新问题(例如,您如何计算团队实力,以及“巨额”的细节),并排除任何不相关的细节(如条件3)?我不确定这个问题是否适合堆栈溢出,但这些步骤将是一个良好的开端。