php – 基于数字技能值创建“团队”的算法

前端之家收集整理的这篇文章主要介绍了php – 基于数字技能值创建“团队”的算法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个有助于管理飞盘“帽子锦标赛”的应用程序.这个想法是人们报名参加这个“帽子锦标赛”.当他们注册时,为我们提供1到6之间的数值,表示他们的技能水平.

目前,我们正在接受这个庞大的注册人员名单,并根据每个玩家的技能水平手动尝试创建团队.我想,我可以通过创建一个尽可能均匀地分割团队的算法来实现自动化.

唯一的数据是“玩家”阵列和所需的“团队数量”.一般来说,我们正在关注120名球员和8支球队.

我目前的思维过程基本上是每个团队都有一个“得分”.此分数是所有分配的球员技能等级的总和.我遍历每个技能水平.我在技能水平循环中经历了几轮选秀权.根据团队的运行得分,每轮重新计算选秀顺序.

这实际上运作得相当好,但并不完美.例如,我的样本数据数组中有5个范围.我可以非常轻松地,手动交换玩家,并使团队之间的差异不超过1分…问题是以编程方式完成.

这是我到目前为止的代码http://pastebin.com/LAi42Brq

什么数据的片段:

[2] => Array
    (
        [user__id] => 181
        [user__first_name] => Stephen
        [user__skill_level] => 5
    )

[3] => Array
    (
        [user__id] => 182
        [user__first_name] => Phil
        [user__skill_level] => 6
    )

谁能想到更好,更简单,更有效的方法呢?提前谢谢了!!

我觉得你的事情太复杂了.如果您有T队,请根据他们的技术水平对球员进行排序.选择前T队球员作为球队的队长.然后,从队长1开始,每个队长轮流选择他想要的队员.这可能是未被选中的球员名单中的顶尖人物.

这个算法已经在游乐场(并且,我敢说在加利福尼亚的飞盘领域)工作,并且将产生与任何更复杂的伪统计方法一样“公平”的结果.

猜你在找的PHP相关文章