足球联赛赛程算法

我们项目要做一个类似联赛的功能,就需要联赛的赛程分组算法,上网搜了一下,找到了如下算法。

比如,输入六个球队:1、2、3、4、5、6,一共要打30场。

 

1

2

3

4

5

6

1

 

12

13

14

15

16

2

21

 

23

24

25

26

3

31

32

 

34

35

36

4

41

42

43

 

45

46

5

51

52

53

54

 

56

6

61

62

63

64

65

 

 

输出可能是:


1)首先讲讲排列方法的问题:
esky_zheng讲的是蛇形排列,基本上单循环常用的方法。

所谓蛇形排列:
下面以6队参赛为例:
参赛队依次编号1-6,第一轮时把参赛队数量的一半写在对阵的左边,其余一半按顺序蛇形排列,如下:

第一轮
1-6
2-5
3-4

第二轮时,1号位不动,其他数字逆时针转动1格。
第二轮
1-5
6-4
2-3


第三轮时,1号位同样不动,其他数字再逆时针转动一格
第三轮
1-4
5-3
6-2

继续转动,直到1号对阵到2号为止,
第四轮
1-3
4-2
5-6

第五轮
1-2
3-6
4-5

6支队需要比赛5轮,到第五轮时,1号位对阵2号位,正好是一个循环。

那么以此类推,其他数量参赛队也是如此。

(2)那么20个队的排列方法如下,轮次是固定的。

当然每一轮的场次先后安排就根据您的需要了。

一共19轮,每轮10场比赛,一共是190轮。

第一轮:
1-20
2-19
3-18
4-17
5-16
6-15
7-14
8-13
9-12
10-11

第二轮
1-19
20-18
2-17
3-16
4-15
5-14
6-13
7-12
8-11
9-10

第三轮
1-18
19-17
20-16
2-15
3-14
4-13
5-12
6-11
7-10
8-9

第四轮
1-17
18-16
19-15
20-14
2-13
3-12
4-11
5-10
6-9
7-8

第五轮
1-16
17-15
18-14
19-13
20-12
2-11
3-10
4-9
5-8
6-7

第六轮
1-15
16-14
17-13
18-12
19-11
20-10
2-9
3-8
4-7
5-6

第七轮
1-14
15-13
16-12
17-11
18-10
19-9
20-8
2-7
3-6
4-5

第八轮
1-13
14-12
15-11
16-10
17-9
18-8
19-7
20-6
2-5
3-4

第九轮
1-12
13-11
14-10
15-9
16-8
17-7
18-6
19-5
20-4
2-3

第十轮
1-11
12-10
13-9
14-8
15-7
16-6
17-5
18-4
19-3
20-2

第十一轮
1-10
11-9
12-8
13-7
14-6
15-5
16-4
17-3
18-2
19-20

第十二轮
1-9
10-8
11-7
12-6
13-5
14-4
15-3
16-2
17-20
18-19

第十三轮
1-8
9-7
10-6
11-5
12-4
13-3
14-2
15-20
16-19
17-18

第十四轮
1-7
8-6
9-5
10-4
11-3
12-2
13-20
14-19
15-18
16-17

第十五轮
1-6
7-5
8-4
9-3
10-2
11-20
12-19
13-18
14-17
15-16

第十六轮
1-5
6-4
7-3
8-2
9-20
10-19
11-18
12-17
13-16
14-15

第十七轮
1-4
5-3
6-2
7-20
8-19
9-18
10-17
11-16
12-15
13-14

第十八轮
1-3
4-2
5-20
6-19
7-18
8-17
9-16
10-15
11-14
12-13


第十九轮
1-2
20-3
19-4
18-5
17-6
16-7
15-8
14-9
13-10
12-11

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值