问题标签 [tournament]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 如何在php中实现双淘汰算法?
在此我附上了一些我已经实现但仍然无法正常工作的代码片段......
参赛者代表参加比赛的球队的名称。事件正在给我们最终的结果。rounds 基本上用作区分团队数量的变量
c - C语言中的团队和战斗随机器
我正在尝试制作一个程序,将给定数量的玩家放入给定数量的团队中。之后他们应该被随机选择(例如,你掷“骰子”和 Team 3 的 Player 42 并与 Team 4 的 Player 22 战斗(所有玩家随机进入不同的队伍,仅限于 Gamemaster 的选择) )。
在我的代码中,我有基本的输出和结构。它说的是:
球队 1 现在拥有球员 43 球队 2 现在拥有球员 12 球队 4 现在拥有球员 1 球队 3 现在拥有球员 54
但我的问题是,如何 - 基于代码 - 我可以保存这些信息以及我如何(之后)让玩家随机战斗?同一支球队的成员不应该互相战斗,并且在每次战斗之后,我希望玩家以某种方式进入“黑名单”,他们不能再被滚动。
到目前为止我的代码
prolog - 序言:比赛时间表
我正在尝试为我正在组织的排球锦标赛自动生成时间表。它主要是为了好玩。规则如下:
- 报名的球队由 2 名球员组成
- 有36个这样的团队
- 对于一场比赛,3 支这样的球队组成一个“比赛球队”,因此一场比赛由 3 支球队对 3 支球队组成
- 每支球队打5场比赛
- 有 3 个球场可以同时进行
- 因此,总共将进行 10 轮比赛(18 支队伍可以同时进行比赛,即 36/2*5 轮 = 10 轮)
- 比赛由球队官方主办
其他限制是:
- 每个团队官员最多一次
- 如果可能,一支球队不应该与之前已经交手过的另一支球队一起比赛(如果有交手,那很好)
- 每队比赛之间的休息时间不应超过 2 轮
现在我认为这听起来像是prolog是一个不错的选择的问题。不幸的是,我只有理论上的经验。如果有人能给我一个很好的起点,那就太好了,特别是关于如何满足“最多正式一次”和“每支球队打 5 次”等约束。此外,团队的表示比更紧凑
会很好。我已经尝试在 Java 中实现它,但得出的结论是它不是一种非常适合的语言。我现在想在序言中这样做。
algorithm - 组合学:为锦标赛轮次配对种子条目
我正在开发实现 Burstein 瑞士配对系统 ( https://www.fide.com/fide/handbook.html?id=85&view=article ) 的软件。
在每一轮比赛中,该系统形成包含具有相同比赛得分的球员的得分组(获胜和平局的得分)。在一个分数组内,所有玩家都根据一定的标准进行排名。Burstein 系统的目标是将得分组中排名最高的球员与最低的球员配对,将第二高的球员与第二低的球员配对,依此类推。当一些配对的玩家已经互相玩过时,必须选择一个不太理想的配对(如果可能的话)。
示例:在 6 名排名玩家的评分组中,可能有以下 15 对配对(从最佳到最差的降序排列):
1V6 2V5 3V4
1V6 2V4 3V5 1V6 2V3 4V5 1V5 1V5
2V6
3V4
1V5
2V4
3V4
3V6
1V5
2V3
4V6
1V6
1V4 2V6 3V5 1V4
2V4 2V4
2V5 3V6 1V4
我正在寻找的是一种算法,它可以为任意数量的玩家生成这种配对。至少,了解这背后的数学概念会很好。我知道组合、排列和变化,但这些似乎都不适用于这里(据我所知)。
如果您发布任何代码,Java、C# 或 Pascal 的使用将不胜感激和理解。;-)
algorithm - 循环赛比赛算法
我目前正在尝试开发一种算法来确定锦标赛的循环赛对决。目前我正在考虑的适配如下:
给定 n 支球队,(在本例中,n = 8)配对是确定的。
第1轮:
下一轮是通过选择 1 作为枢轴点,然后将其余团队旋转约 1 来给出的,如下所示:
并继续如此。
但是,在这种情况下,会出现不希望的对局(即,1 队不想与 7 队比赛,而 5 队不想与 6 队比赛)。一种方法是简单地取消与不受欢迎的比赛的一轮并继续进行下一轮轮换。我想知道是否有任何其他方法可以解决这个问题,以及是否可以在锦标赛期间动态编辑比赛(交换球队)而不会弄乱算法的其余部分。
谢谢。
c++ - 了解向量类和比赛选择
我希望能够将一个人的“整体”价值与另一个人进行比较。我不确定我是否正确存储它们,也不知道如何正确比较它们。我不知道如何访问任何一个人的“整体”价值观,这是我认为最困扰我的。
头文件
人口.cpp
主文件
我希望能够比较人,将“获胜者”存储到“幸存者”向量中,然后继续使用“幸存者”向量通过 X 代的交叉和变异来创建新种群。
mathematical-optimization - 多目标优化中的健身共享
我正在编写一个在锦标赛选择中使用健身共享的遗传算法。在我发现的所有相关文献中(例如 Sareni),都提到解决方案自身的适应度 (Fi) 应除以其利基距离 (Mi) 的总和。
我不明白的是,因为我们正在优化多个目标,所以每个解决方案都有不止一个适合度。那么它的“健身”Fi 是什么?我应该将其视为所有适应度的乘积吗?
例如,在我正在编写(处理)的代码中:
谢谢
n
python - 在 Python 中使用邻接列表查找锦标赛的哈密顿路径
锦标赛是一个完整的有向图,给定任意两个顶点 u 和 v,它们之间存在一条有向边(如果 u 赢了 v,那么边是从 u 到 v)。
汉密尔顿路径总是存在于锦标赛中。因此,给定 {u:[v,w],v:[w]} 形式的邻接表,其中存在从 u 到 w、u 到 v 和 v 到 w 的有向边,我如何找到哈密顿路径是并按顺序打印顶点?
即使您不了解 python 或其他任何东西,算法也会很有帮助。我已经考虑过了,我想我必须从最高出度的顶点开始?然后添加度数第二高的顶点等,直到度数最低的顶点。但我不明白这是一种故障安全方法,最高程度的顶点可能会被第二高的顶点击败。
感谢您提前提供任何帮助!
algorithm - 在锦标赛中可能获胜的算法
我正在准备考试,但我遇到了这个问题:
我们有n支球队互相比赛两次。每场比赛都以平局结束。获胜最多的团队被宣布为获胜者(可以多于一个)。设计一个算法,给定一些初始的比赛结果,检查某支球队是否仍有机会成为本次锦标赛的获胜者。
我不知道如何接近。问题被归入“流量和匹配”类别,但我不明白这怎么可能是最大流量问题。