题目:
选手个数:n(任意正偶数)
比赛规则:任意选手都要跟其余选手比赛一场
比赛轮数:n-1轮
求比赛日程表
def generate_schedule(n):
# 日程表
schedule = []
# 选手编号为1到n
players = list(range(1, n + 1))
# 每位选手要进行n-1轮比赛
for _ in range(n - 1):
# 每轮循环赛的安排
round_schedule = []
# n位选手安排为n//2组比赛
for i in range(n // 2):
round_schedule.append((players[i], players[n - 1 - i]))
schedule.append(round_schedule)
# 选手编号轮转
players = [players[0]] + [players[-1]] + players[1:-1]
return schedule
n = 8 # 选手数量(偶数)
# 生成日程表
schedule = generate_schedule(n)
# 打印日程表
for i, round_schedule in enumerate(schedule, start=1):
print(f"第{i}轮比赛:")
for match in round_schedule:
print(f"选手{match[0]} vs 选手{match[1]}")