sorting - 我需要一个逻辑算法来对程序中的足球联赛数学进行排序
问题描述
我举办了一场足球锦标赛(并编写了一个系统来管理它)。比赛是一个联赛,有 3 组,每组 10 支球队(共 30 支球队)。每支球队都必须与不在同一组的其他球队比赛。
例子
A 组 TeamA1 TeamA2 TeamA3 TeamA4 TeamA5 TeamA6 TeamA7 TeamA8 TeamA9 TeamA10
B组 TeamB1 TeamB2 TeamB3 TeamB4 TeamB5 TeamB6 TeamB7 TeamB8 TeamB9 TeamB10
C 组 TeamC1 TeamC2 TeamC3 TeamC4 TeamC5 TeamC6 TeamC7 TeamC8 TeamC9 TeamC10
因此,例如,A 组的每支球队都必须与 B 和 C 的每支球队比赛,但不能与 A 组的球队比赛,依此类推。
比赛持续20天,当然每天有15场比赛。
我需要某种系统来生成每天匹配的规则,从而避免团队面对相同的团队。
我需要关于逻辑的帮助,然后我可以将其转换为代码。这听起来可能并不难实现,但我很努力!
非常感谢!
解决方案
我将如何做到这一点如下:
遍历 A 组,因为 AI 上的每个团队都会通过 B 组和 C 组将他们与一个团队匹配,并将每个配对保存在某种变量中。这将创建所有 A vs B 和 A vs C 配对。
然后我将遍历 B 组,但仅与 C 组匹配,因为所有 A 与 B(我假设在此上下文中等同于 B 与 A)匹配已配对。这将配对所有 B 对 C 比赛。
所以我们最终得到了所有 A 对 B、A 对 C 和 B 对 C 的比赛。如果我之前假设的等效性是真的,那么它会处理所有匹配项。
推荐阅读
- react-native - 反应导航如何回到不同的堆栈
- android-uiautomator - 为什么打开uiautomatorviewer时cmd会报错?
- javafx - 我无法使用带有 JavaFX 12 的 netbeans 11 调试应用程序
- python - 一个简单的嵌套循环失败
- node.js - 如何在cordova的客户端获取nodejs?
- php - 如何使用多个ID更新mysql中的多条记录
- r - mlr 包:使用 tuneParams() 和 resample() 进行交叉验证会产生不同的结果
- sql-server - SQL Server初学者容易理解的pivot元素的简要说明
- css - CSS3 - 对齐
和
- java - 如何在自定义对话框中添加 Facebook 插页式广告?