问题标签 [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 回答
116 浏览

c++ - C++:将向量传递给构造函数以创建成员变量的最佳方法?

这个问题比看起来更具欺骗性,所以让我解释一下。


假设我有一个班级Tournament。其中一个成员变量是 Player 指针向量。

假设我还有一个名为Round的课程。

Round 有一个名为addPlayers()的方法。添加玩家时,我想搜索锦标赛的playerInTournament向量以查看该玩家是否存在。


问题:

我不知道如何直接引用playerInTournament,因为我是在 Round 对象的范围内进行的。

尝试/建议的解决方案:

  1. 只需将playerInTournament传递给Round()构造函数并创建它的副本。

    真的很想避免这种情况,因为当我将它用于搜索时,这将是很多开销。在我的脑海中,指针或对playerInTournament的引用可能更可取,因为一旦列表变得足够大,它们会占用更少的内存。

  2. 创建作为类成员的引用。

    我的理由是 Round 与 Tournament 有组成关系。Round 的生命周期永远不会超过 Tournament 对象的生命周期,而且 Round 并不“拥有”该向量,它仅由 Tournament 操作。

我立即遇到的问题是引用不能进行延迟初始化。在创建圆形对象本身之前,我没有任何东西可以直接引用它,所以这对我不起作用。

最后,

  1. 指向作为类成员的向量的指针。

    据我所知,这样做的唯一方法是使用 vector.data() ,它返回指向向量内部使用的数组中第一个元素的指针。这将允许我遍历整个列表以进行验证,这没关系,但我的意图是对向量进行二进制搜索以找到匹配的播放器,我不知道我是否可以使用 vector.data() 来做到这一点。

如果我遗漏了什么,或者我有任何误解,请告诉我。使用 vector.data() 可能是错误的,但我今天已经筋疲力尽了,想要第二个意见,因为这是我为了好玩而做的一个单独的项目。

感谢您的阅读!

最好的,

朱利安贝克是对的

0 投票
1 回答
218 浏览

python - 锦标赛冠军 python while 循环

我制作了一个函数'Match',它需要两个国家并根据我的算法返回一个获胜者。
前任)

我需要编写函数获胜者,它需要 2^n 个国家的列表并运行锦标赛并找到获胜者。
前任)

国家名单的长度不同,我无法制定获胜者选择算法。如果代码使用while循环而不是for循环^^,那就太好了。

0 投票
1 回答
397 浏览

javascript - 如何创建此循环国际象棋锦标赛生成器

我有玩家列表,想用 JavaScript 为国际象棋锦标赛创建一个循环生成器。循环赛应该像这张图片一样,显示 10 支球队和 6 支球队:

在此处输入图像描述

我试图为偶数和奇数整数创建单独的逻辑,但我没有找到最好的算法:

我得到的结果不像上图中的配对,它只正确产生了第一轮。

还有一些其他类似的问题有答案,例如循环赛的调度算法?,但它们是用于足球比赛的,我希望它用于国际象棋比赛:与足球相比,它有一些不同。

如何更正我的国际象棋锦标赛生成器,使其适用于任意数量的玩家?

0 投票
1 回答
95 浏览

algorithm - 体育比赛日程表,换对

让我们想象一下有 8 名球员参加沙滩排球比赛。比赛以 2 对 2 进行。

作为组织者,我想为具有以下规则的玩家生成时间表:

  • 每个玩家与每个人一起玩(每个玩家7场比赛)
  • 每个玩家与每个玩家交手两次

因此,时间表将开始,例如:

通过上面的示例,让我们考虑 player1。他一直和球员(2,3,4)一起比赛,所以他还和球员(5,6,7,8)一起比赛

他一直在对抗:

所以剩下的 4 场比赛(球员 1)应该和球员 5,6,7,8 一起比赛,对手不能是球员 3 或球员 2(因为你已经和他们打过两次了)

我在这里看到了很好的例子如何自动生成体育联赛时间表和关于循环赛的维基百科文章https://en.wikipedia.org/wiki/Round-robin_tournament(Richard Schurig (1886) 的配对表的原始构造)有效生成比赛很好,但是与某些球员的比赛将超过两场。

我真的很感激任何帮助!

0 投票
0 回答
173 浏览

python - 生成锦标赛程序python

一支球队永远不会连续打 2 场比赛 - 并且不能同时在多个场地上比赛。对于 32 个匹配项和 4 个字段,这可能是不可能的。

我正在尝试使用 Python 以尽可能少的错误创建最佳匹配程序。然后,使用错误最少的程序 - 在发生错误的地方创建一个暂停,以便团队有机会休息。

这是我的 matches.txt 文件 Team1、Team2、Team1 ID、Team 2 ID

蟒蛇文件:

它产生 0 个错误,但仍然会有一支连续打 2 场比赛的球队。我看不出这怎么可能?

0 投票
1 回答
58 浏览

brackets - 从前一组阶段生成单场淘汰赛的算法

我的比赛有两个阶段,小组+单淘汰。小组赛结束后,每组的x名进入单淘汰赛(括号格式)。在括号阶段有两个基本规则:

  • 一个小组的获胜者不应与另一组的获胜者进行比赛(仅与第 2 或第 3 名比赛)
  • 同一组中的两支球队不应该相互匹配。

例如,如果我们有两个这样的组:

并且每组的所有团队都进行,淘汰赛应该是:

我正在寻找一种算法来帮助我按该顺序创建淘汰赛。

为了澄清,另一个例子:

如果我们有四个这样的组:

淘汰赛应该是:

谢谢。

0 投票
2 回答
31 浏览

python - Excel使用python,所有用户都需要python吗?

我有兴趣使用 python 在 excel 中创建锦标赛模板,但我不希望我的所有用户都安装 python。有没有办法做到这一点?或者是否有其他一些易于使用的 gui 适合这样的事情?我已经查看了使用 PyXLL 等的插件,但它们似乎要求所有用户都安装它们。

0 投票
0 回答
40 浏览

python - 循环算法来解释玩家第一次玩多少次?

我对循环赛的工作方式非常熟悉,现在我正在尝试实现一个函数(Python 可以正常工作)来创建循环赛匹配,以说明玩家在锦标赛期间第一次参加比赛的次数

理想情况下,我希望每个人都开始相同的回合数(如果是玩家,则为±1),并拥有告诉我这一点的功能,而无需我手动进行调整。

编辑:这是我迄今为止的尝试,创建一个判别式以某种方式“随机化”第一个玩家,但通常不起作用

0 投票
0 回答
35 浏览

algorithm - 如何在多阶段锦标赛中将获胜者分组?

我正在寻找一种算法来将获胜者从小组阶段推进到括号。例如,有 6 组(A、B、C、D、E、F)的锦标赛,当循环赛阶段结束时,每组前 2 支球队晋级季后赛。必须对括号进行优化,以使来自同一组的玩家尽可能晚地相遇,并且这些更高的种子也可以迟到。

输入是分类的团队(每组前 2 个):1A、2A、1B、2B、1C、2C、1D、2D、1E、2E、1F、2F。输出应该是这些匹配项(按此顺序):

括号应该是:

在此处输入图像描述

同理,4组晋级前3名的队伍,括号应为:

在此处输入图像描述

有什么算法建议吗?

谢谢。

0 投票
1 回答
46 浏览

python - 锦标赛实验室 CS50:列表索引超出范围

我是 python 新手,正在 CS50 中做一个实验室 6 的问题,但遇到了错误:List index out of rang。尽管我已经复习了很多次,也看了课程的提示视频,但我仍然找不到解决这个问题的方法。请帮我。

这是我的代码:

运行时,出现此错误:

我确实尝试使用变量 i 在每个 for 循环之前添加 i = 0 ,但它也不起作用:(