作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个包含团队的数组:
var teams = [a, b, c, d]
我需要一个函数来生成所有可能的配对,例如,如果 a
与 b
一起玩,则 c
与 d
一起玩,格式如下:
[{ team1: a, team2: b }, { team1: c, team2: d }]
然后 4 个团队的最终结果将如下所示:
var matches = {
0: [{ team1: a, team2: b }, { team1: c, team2: d }]
1: [{ team1: b, team2: c }, { team1: a, team2: d }]
2: [{ team1: c, team2: a }, { team1: d, team2: b }]
}
团队人数始终为偶数且大于 3(4 , 6 ,8 , ...)
最佳答案
一种简单的迭代方法,直到每个团队都与他的所有敌人战斗:
var teams = ["a", "b", "c", "d"];
teams = teams.map(id => ({id}));
teams.forEach(team => team.enemies = teams.filter(enemy => enemy !== team));
const matches = [];
while(teams.some(team => team.enemies.length)){
const playing = [];
for(const team of teams){
if(playing.includes(team)) continue;
const enemy = team.enemies.find(enemy => !playing.includes(enemy));
if(!enemy) continue;
team.enemies.splice(team.enemies.indexOf(enemy),1);
enemy.enemies.splice(enemy.enemies.indexOf(team), 1);
//console.log(team.id, enemy.id, playing.map(t => t.id));
playing.push(team, enemy);
}
if(playing.length) matches.push(playing.map(t => t.id))
}
console.log(matches);
每场比赛可能分为 2 支球队进行比赛
关于javascript - 足球赛程javascript算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47961077/
我几乎正在尝试重新开始 JAVA 编程,只是需要一些我正在从事的小项目的指导。 差不多,我正在举办一场台球锦标赛,我希望每个玩家都能与每个玩家交手一次: 我创建了该程序( https://sconte
我有一组测试,必须在基类中使用两个不同的 SetUp 来运行它。 这是屏幕截图 我该如何改进它? 最佳答案 创建单个参数化测试装置。传递有关应将哪个设置(可能是 OneTimeSetUp)应用于夹具的
我是一名优秀的程序员,十分优秀!