问题标签 [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.

0 投票
1 回答
122 浏览

performance - 比赛调度算法起点

这是一个关于在包含日期/时间/地点的时间表中对战的表现和最佳位置的问题。

从一个时间表网格(日期/时间/地点)开始,所有比赛都生成了在网格中安排这些比赛的最佳起点。

#1 按日期/时间/位置迭代网格并找到与该位置匹配的第一个游戏。

#2 迭代匹配列表并确定它在日程表中的最佳位置。

哪一个会提供最好的结果以及性能?

0 投票
1 回答
105 浏览

algorithm - 均匀复制游戏以达到每位参与者的最大数量

我有一个循环赛,我为 8 支球队创建了所有必要的比赛(每位参与者 7 场比赛)。但是,我需要每个参与者进行 10 场比赛,这意味着我需要重复比赛,而且 1 和 5 不能互相比赛。您可以从下面的数据中看到我为每个参与者生成的游戏(游戏数量),按照创建的顺序,这将是一轮。

我试图找出复制比赛的最佳方法,并以这样一种方式分配比赛,即没有复制三次的比赛,每个参与者仍然保留 10 场比赛,而 1 场和 5 场比赛不互相比赛。任何建议都会对如何解决这个问题有所帮助。这也需要是其他可能性仍然有效的通用解决方案。

0 投票
1 回答
630 浏览

c# - 最佳拟合算法在回合中均匀放置对决

我需要一种算法,它可以像您在下面看到的那样进行任意数量的比赛,并将它们均匀地分组,如果可能的话,每个人都参加一次。我为 8 支球队和 3 支球队逐轮生成了下面的比赛。我在填满我的回合时遇到问题,并且在最后一轮中无法进行孤儿游戏。

现在轮次是任意的,但正如你所知道的那样,每个参与者都可以在每一轮 (1,2,3,4,5,6,7,8) 中找到。现在这些对局可以删除或添加,并在它们生成后随机排序,因此需要平均分配它们并在以后找到回合,我无法保存原始回合,因为游戏可以添加/更改/删除。

该算法应该是通用的,并且每次都进行最佳拟合。如果每支球队的比赛数量不均,那么这也需要考虑到他们可能比其他球队有更多的回合。这也需要高性能。

我正在寻找一些 C# .NET 或其他语言中的伪代码,以了解如何完成此操作。

8支球队,每队10场比赛

3 支球队,每队 2 场比赛

0 投票
1 回答
303 浏览

python - (初学者)Python程序的函数完全只有在函数单独运行的时候。赛事跟踪程序:

所有这些代码在单独运行时都能完美运行。但是,当我在运行新的和固定选项后选择排名选项时,代码会引发错误。任何有关此事的帮助将不胜感激。

确切的错误信息:

结果函数中正在读取的文本文件:(第一行是球队名称,第二行是主场积分,第三是客场积分。下一行是下一个球队) 3 0 0 4 3 0

这些是要求的打印语句 (tournamentTeams1, order and pos) ['3', '4'] [1, 0] 1 1: 4 (score 3) (away score 0) ['3', '4'] [1, 0] 1 2:3(0 分)(客场0 分) 恭喜3 队夺冠!

再一次,此功能仅在重新启动空闲后访问时才有效。

0 投票
4 回答
564 浏览

java - 使用“比赛”(Java)从数组中获取最大的 n 个数字

我有一个长度为 10 的数组,例如:

我生成了两个介于 0-9 之间的随机数(例如 4 和 6)。然后我检查第 4 和第 6 个元素 (7, 0),“获胜者”是更大的数字。所以 7 进入了获胜者数组(总共 5 名获胜者):

每次我想将剩余的两个数字(包括失败者)配对并将获胜者放入获胜者数组中。

最简单的方法是使用大小为 n 的非固定大小数组并从“人口”中删除获胜者并将其放入“获胜者”中。然后我可以生成 1 和 n-1 之间的两个随机数并继续该过程。

我如何在 Java 中使用固定大小的数组来做到这一点?我怎么能从我的数组中选择两个数字,而忽略任何“赢家”的数字?

0 投票
2 回答
211 浏览

date - 每个国家/地区是否有“平均”时区?

我想安排一个在线多人游戏锦标赛,每个国家/地区一个,为尽可能多的注册玩家 提供方便的开始时间。

基于 UTC 的全球开始时间对于许多国家来说是不方便的。例如,世界标准时间 17:00 对美国的人来说可能很好,但在澳大利亚则不然。

因此,我想让每个国家/地区都有自己的开始时间,比如 17:00,但以某种方式基于该国家/地区的当地时间。问题是许多国家有多个时区。

你会建议我取每个国家时区的平均值吗?例如,在美国,该国中部的开始时间为 17:00,每个海岸的开始时间为 +/- 2 小时。

我可以进一步尝试按时区划分用户,并在每个时区而不是国家/地区进行单独的锦标赛,但这会增加设计的复杂性并将锦标赛延长到多个迷你锦标赛。也就是说,如果您在您的国家/地区赢得了 A 时区的锦标赛,您仍然需要击败 B、C、... 时区的获胜者,您的国家/地区才能被宣布为国家/地区冠军。

我不担心用户理解所有这些(当然)。到了该玩的时候,我会向他们显示通知。我更专注于选择一个方便的时间来保持参与度。

以前有人处理过这个问题吗?你是怎么“解决”的?

谢谢你的想法。

0 投票
1 回答
1974 浏览

java - 单场淘汰赛算法

我是这个领域的新手,我想做一个 Java 应用程序来实现单场淘汰赛的技术,它可以让我导入球员姓名和他们的俱乐部,并让应用程序(通过算法)为我创建一个单场淘汰赛括号基于特定标准的球员姓名,例如:来自同一俱乐部的两名球员不能互相比赛或两名赢得过往届冠军的球员不能互相比赛......等等

无论如何,我怎样才能开始这样的算法?

0 投票
2 回答
437 浏览

php - 如何在 PHP 中随机填充单个锦标赛淘汰赛而不重复?

如果我有这个:

我如何填充像这样的单个锦标赛淘汰赛,例如:

16 名玩家 = 8 场比赛

我也尝试这个和其他代码:

0 投票
1 回答
451 浏览

google-apps-script - 运行用于创建锦标赛括号的 Google Apps 脚本时出错

尝试按照此 Google Apps 脚本教程通过 Google 表格创建锦标赛括号:https ://developers.google.com/apps-script/articles/bracket_maker?hl=en

运行脚本时,我收到以下错误消息:

我只需要一种简单的方法来使用我将从 Google 表单生成的玩家列表从 Google 表格制作锦标赛括号。有人做过吗?

这是他们的脚本代码:

0 投票
2 回答
347 浏览

c# - 使用锦标赛括号找到最小的数字

我正在编写一个程序,它必须通过锦标赛括号找到最小的数字。例如有一个数组

通过比较彼此相邻的数字,我必须选择最小的数字。( min(4, 2) -> 2, min(1, 3) -> 1, 然后我比较 1 和 2,1 是最小的,所以它是赢家,但不可能比较 2 和 1。只有 a[0] 和1, a[2] 和 a[3]等等 一般来说 a[2*i] 和 a[(2*i)+1] for(int i=0; i<a.Length/2; i++)<- 像这样

第一个问题:如果有 n 个数字,整个树由 2n-1 个括号组成。我应该创建一个包含 4 个或 7 个元素的数组吗?4似乎是一个更好的选择。

第二个问题:如果我比较 4 和 2,并且 2 更小,我应该让 a[0] = 2,然后在比较 1 和 3 时,a 1 = 1?最后将 a[0] 与1进行比较并将最小的数字放入 a[0]?可能需要临时 int。

最后一个问题:您打算以最简单的方式来做这件事吗?我几乎找不到有关此算法的任何信息。我希望你能引导我的思想进入工作算法。

在此处输入图像描述

不多,但我正在发布我的代码:

你能指出我做得很好,应该改进什么吗?