问题标签 [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 投票
0 回答
294 浏览

algorithm - 复杂配对算法 - 团队锦标赛

我想就我已经研究了很长时间的算法寻求帮助。实际上,几年前我主要使用贪婪配对对其进行了编程,但我并不满意。任何帮助将不胜感激!

所以说正事。我有一个参加锦标赛的申请(确切地说是沙滩排球,但应该适用于任何以锦标赛形式进行的双人运动)。球员们在锦标赛当天出现,并与其他参与者随机组合并与其他随机球队对抗。最重要的是尽可能多地玩,但是玩家的数量并不总是能被同时玩的地方的数量整除。因此,总会有许多球员在休息,也就是说,我正试图通过使用 2 个变量来确保这尽可能公平: 休息(一天中的休息总数) 休息排(显然是连续休息几场比赛)

比赛的最初概念是混合队伍,每队有 1 男(男)和 1 女(女),与另一支男/女队比赛。然而,休息部分更重要,通常有比另一种性别更多的球员(即 20 f 和 7 m)。与其让男性参加每一轮比赛,不如让 f/f 的团队与 f/f 比赛。不过,应该避免同性与 f/m。玩家每轮都应该得到新的伙伴,每轮都要和新的球队比赛。最好在再次与某人玩耍之前与所有异性玩家一起玩。球员可以来去自如,也可以随时休息(自愿休息)。

我研究过不稳定的婚姻问题和室友问题,但我的问题似乎是两者的混合。通常会有两个球员名单(男/女)和配对,但在某些前提下,应该只有一个名单组成的球队,如所描述的。让我给你举个例子:

例子:

43 名球员参加了一场有 6 个球场的锦标赛。17 名女性 (f) 和 26 名男性 (m)。

6 个球场可容纳 12 支球队,每轮共有 24 名球员。

第1轮

第二轮

5f和14m有1个休息,应该玩。

最好的解决方案是:

在这个例子中,如果从一开始就有 49 名玩家,通常不会连续超过 1 个休息。

在未来的更新中,我还计划让用户选择每支球队的球员人数,并跳过 m/f 必要条件。

有什么想法吗?

0 投票
1 回答
97 浏览

r - 将一个元素与不同列的所有其他元素/ R

我确实在每组中有两对球员(a1 - a8),我想将一场比赛的元素与第二场比赛结合起来,以获得每个人与另一场比赛的每个组合。

所以我需要这样的东西..

每个组(a2 -> a8)应该是一样的

有人知道如何解决这个问题,到目前为止我无法解决这个问题。多谢

0 投票
1 回答
2223 浏览

algorithm - 单淘汰和双淘汰算法。比赛支架放置算法

我需要开发具有创建锦标赛括号功能的网站(单淘汰和双淘汰,如http://challonge.com/tournament/bracket_generator)。

我试图解决这个问题,但无法弄清楚如何正确地做到这一点。我很困惑。我确定我需要使用树来创建比赛,用比赛填充它,并将所有内容存储在 db 中。但是我自己的想法很糟糕。

我认为有一些学术算法可以解决这个问题。有人可以给我关于这个问题的材料(书籍、文学作品)吗?

0 投票
1 回答
91 浏览

ruby-on-rails - 使用 round_robin_tournament gem 时获取未定义的局部变量或方法“锦标赛”

我正在尝试按照描述使用 gem round_robin_tournament:

Github

但是我收到错误:

#<# :0x00007ffb591d54a0> 的未定义局部变量或方法“比赛”

我按照该链接的自述文件部分中的描述进行操作。我对 Ruby on rails 还是陌生的,所以它可能很简单:)。

这是我的代码:

Message_Controller.rb:

路线.rb:

index.html.erb:

非常感谢您的帮助。

新代码:

控制器:

看法:

0 投票
1 回答
85 浏览

ruby-on-rails - Tournament-Systems 创建驱动程序

现在错误已通过添加修复require 'tournament_system'错误是我的新错误:

这是终端:

这是网页上的

我认为该错误与未正确调用驱动程序有关。我还使用脚手架创建了控制器 Tourney。

0 投票
3 回答
80 浏览

algorithm - 优化 - 将参与者分散在远离彼此的地方

这是我的第一个问题。我试图找到答案 2 天,但我找不到我要找的东西。

问题:我怎样才能最大限度地减少来自同一所学校的学生之间的匹配量

我有一个非常实际的案例,我需要安排一场比赛(锦标赛支架),但有些参赛者可能来自同一所学校。来自同一学校的学生应尽可能远离彼此

例如:{AAABBC} => {AB}、{AC}、{AB}

如果一所学校的参与者超过一半,那么除了将同一学校的两个人配对之外别无他法。

例如:{AAAABC} => {AB}、{AC}、{AA}

我不希望获得代码,只是一些关键字或一些伪代码,您认为这将是一种非常有用的方法!

我尝试深入研究约束解决算法和锦标赛括号算法,但他们没有考虑最小化同一学校学生之间的比赛数量。

好吧,非常感谢您!

0 投票
1 回答
2007 浏览

c - Tournament scheduling table C algorithm

I need to make a C program that creates/generates a schedule table for tournament "each against each other".
There are 16 teams (1 to 16 numbers) and 15 rounds. The table should contain the round where i-th and j-th team are playing agains one another and must be a 2D array, shown in rows and columns (see below).
Also if i == j then a[i][j] = 0, because no team plays against itself in any round.

The conditions of the task aren't very clear to me.
I've explained above the way I'm understanding it.
However, after hours of Googling seems like its basically round robin tournament.

I guess it should look like this:

I don't know where to start, literally the only thing I can do is fill the main diagonal with zeros.

Here is my code, but it doesn't output quite well the table:

From looking at the table (by rows or columns) I noticed the numbers, that normally would be before the number in a[i][0], are at the end of the row + the number "covered" with 0. In other words, it seems to me that first row is shifting to the left, but that doesn't help me to come up with an algorithm.

0 投票
0 回答
109 浏览

tournament - 如何实现查找数组中第二大元素的锦标赛方法?

我需要锦标赛方法的实现方法来查找数组中的第二大元素。我已经搜索了互联网,但一无所获。我不知道如何存储那些丢失到最大元素的元素。

0 投票
0 回答
186 浏览

php - 瑞士锦标赛。团队对抗多轮不重复和有序

我尝试根据瑞士方法制作锦标赛。例如,我有 12 支球队,在每一轮中,每支球队都有积分(0 到 100)并且有赢、输或平。我想在以下条件下找到哪些球队互相比赛:

  • 按胜、平、分排序。
  • 以前不能玩。

在每一轮中,我在一个数组中为每个球队获取了可能的球队,如下所示:(键表示球队ID,值表示所有可能的球队以“,”分隔)

首先,我将所有球队都排在一个数组中:(键表示球队ID)

然后,我将所有团队按胜利、失败和点数排列在一个数组中:(键也表示团队 ID)

最后,我试图找到与两支球队的可能比赛。

最后我打印数组“$pairs”。表明:

这不正确,因为 team_id 1 和 team_id 12 不能参加这一轮比赛,因为之前的比赛:

我不知道如何解决这个问题。

再次感谢!

0 投票
1 回答
857 浏览

java - 3路/4路循环赛调度算法

我想创建/实现一个能够处理每场比赛超过 2 名参与者的锦标赛调度算法。

2 名参与者似乎都知道这个问题。例如,请参见此处:Round Robin Algorithm Implementation Java

与 6 支球队(A、B、C、D、E、F)的比赛示例:

  1. (ABC)(DEF)
  2. (ABD)(CEF)
  3. (安倍)(CDF)
  4. (ABF)(CDE)
  5. (ACD)(BEF)
  6. (王牌)(BDF)
  7. (ACF)(BDE)
  8. (ADE)(BEF)
  9. (ADF)(公元前)
  10. (AEF)(BCD)

如果团队数量为奇数(即 A、B、C、D、E),我希望每轮进行 3 路和 2 路比赛:(ABC)(DE)

一旦解决了 3 路问题,我想对 4 路游戏做同样的事情。

我无法创建这样的算法,也无法在互联网上找到类似的解决方案。

有人能指出我正确的方向吗?