python单循环_「单循环赛」单循环赛制 - seo实验室
单循环赛
#!/usr/bin/Python3
# 文件名: 单循环赛制
# 作者:巧若拙
# 时间:2019-01-23
'''
单循环赛制是一种较为公平合理的比赛制度,比赛过程中所有参赛队伍均能相遇--次。
其秩序编排可采用“逆时针轮转方法”:
数字1~ n依次作为队伍编号,把编号按U型走向分成均等两边
(若n为奇数,则在末尾增加编号0,使总数为偶数),即可得到第一轮的比赛秩序,
例如,有7个队参加比赛,比赛秩序编排如下所示:
第一轮 第二轮 第三轮 第四轮 第五轮 第六轮 第七轮
1-0 1-7 1-6 1-5 1-4 1-3 1-2
2-7 0-6 7-5 6-4 5-3 4-2 3-0
3-6 2-5 0-4 7-3 6-2 5-0 4-7
4-5 3-4 2-3 0-2 7-0 6-7 5-6
第二轮,固定编号1,其余编号均按逆时针方向移动-一个位置,即为该轮比赛秩序;
以后各轮比赛秩序以此类推,与编号0对阵的表示本轮轮空。
'''
def fun1(n):
t = list(range(1,n+1))
if n % 2 == 1:
t.APPend(0)
n += 1
for i in range(1, n):
print(f'{i}:', end=" ")
for j in range(n//2):
print(f'{t[j]}-{t[n-1-j]}', end=" ")
print()
temp = t[n-1]
for j in range(n-1, 1, -1):
t[j] = t[j-1]
t[1] = temp
'''
从1985年起,世界性比赛多采用"贝格""编排法。
其优点是单数队参加时可避免第二轮的轮空队从第四轮起每场都与前一轮的轮空队比赛的不合理现象。
采用"贝格尔"编排法,编排时如果参赛队为双数时,
把参赛队数分一半(参赛队为单数时,最后以"0"表示形成双数),
前一半由1号开始,自上而下写在左边;后一半的数自下而上写在右边,
然后用横线把相对的号数连接起来。
这即是第一轮的比赛。
第二轮将第一轮右上角的编号("0"或最大的一个代号数)移到左角上,
三轮又移到右角上,以此类推。
即单数轮次时"0"或最大的一个代号在右上角,双数轮次时则在左上角。
如下表示:
7 个队比赛的编排方法
第一轮 第二轮 第三轮 第四轮 第五轮 第六轮 第七轮
1-0 0-5 2-0 0-6 3-0 0-7 4-0
2-7 6-4 3-1 7-5 4-2 1-6 5-3
3-6 7-3 4-7 1-4 5-1 2-5 6-2
4-5 1-2 5-6 2-3 6-7 3-4 7-1
无论比赛队是单数还是双数,最后一轮时,
必定是"0"或最大的一个代号在右上角,"1"在右下角。
'''
def fun2(n):
t = list(range(1,n+1))
if n % 2 == 1:
n += 1
for i in range(1, n):
if i % 2 == 1:
low, high = 1, n - 1
else:
low, high = 0, n - 2
print(f'{i}:', end=" ")
for j in range(n//2):
print(f'{t[j]}-{t[n-1-j]}', end=" ")
print()
#将右上角的编号移到左角上,其他元素逆时针移动n//2-1次
t[0], t[n-1] = t[n-1], t[0]
for k in range(1, n//2):
temp = t[high]
for j in range(high, low, -1):
t[j] = t[j-1]
t[low] = temp
fun1(7)
fun2(7)
相关阅读
python单循环_「单循环赛」单循环赛制 - seo实验室相关推荐
- python海伦公式_「海伦公式」海伦公式: - seo实验室
海伦公式 l为半周长,s为面积 float l = (a + b + c) / 2; float s = sqrt(l*(l - a)*(l - b)*(l - c)); 文章最后发布于: 2018- ...
- java继承调用先后_「继承顺序」JAVA继承顺序 - seo实验室
继承顺序 当使用继承这个特性时,程序是如何执行的: 继承的初始化顺序 1.初始化父类再初始子类 2.先执行初始化对象中属性,再执行构造方法中的初始化 当使用继承这个特性时,程序是如何执行的呢,也就是说 ...
- iview template模式_「iview」iview_入门 - seo实验室
iview 执行npm install iview --save 在项目中引入iview 引入 iView # 一般在 webpack 入口页面 main.js 中如下配置: import iView ...
- 输入这是我的第一个python程序_「vs2017」vs2017 开始自己的第一个Python程序 - seo实验室...
vs2017 这是针对于博客vs2017安装和使用教程(详细)的Python项目新建示例 目录 一.安装Python环境 二.启动程序 三.编写小程序 四.运行结果 五.交互式界面演示 一.安装Pyt ...
- python axes()_「axes」add_axes()——python绘图 - seo实验室
axes add_axes新增子区域 add_axes为新增子区域,该区域可以座落在figure内任意位置,且该区域可任意设置大小 可以用来做一些子图,图中图 考虑如下代码: import numpy ...
- vlad用python实现_「vlad」VLAD算法简介 - seo实验室
vlad 1.1 vlad基础概念 VLAD是vector of locally aggregated descriptors的简称,是由Jegou et al.在2010年提出,其核心思想是agg ...
- java getproperty_「getproperty」getProperty()用法 - seo实验室
getproperty 将数组放入到model里,即可使用getProperty("/节点1/节点2/节点3")来获取内容 相关阅读 经测试,本方法在windows环境下安装的to ...
- python决策树可视化_「决策树」| Part3—Python实现之可视化
文章首发于微信公众号:AlgorithmDeveloper,专注机器学习与Python,编程与算法,还有生活. 1.前言 「决策树」| Part2-Python实现之构建决策树中我们已经可以基于给定数 ...
- python数学函数_「分享」关于Python整理的常用数学函数整理
原标题:「分享」关于Python整理的常用数学函数整理 1.函数说明 abs(number)返回数字的绝对值,如abs(-10)返回10 pow(x,y[,z]) 返回x的y次幂(所得结果对z取模), ...
- python怎么用gamma函数_「gamma函数」Gamma函数 - seo实验室
gamma函数 伽玛函数(Gamma函数),也叫欧拉第二积分,是阶乘函数在实数与复数上扩展的一类函数.该函数在分析学.概率论.偏微分方程和组合数学中有重要的应用.与之有密切联系的函数是贝塔函数,也叫第 ...
最新文章
- MSDN Webcast“深入浅出ASP.NET AJAX系列”
- 计算机应用基础网络统考操作,全国网络统考《计算机应用基础》完整最新题库及答案[整理].pdf...
- jQuery 淡入淡出
- iOS从零开始学习直播之2.采集
- CMPP3.0 长短信实现方案
- 【题解】 P4139 上帝与集合的正确用法
- Java Socket重要参数讲解
- IOS中的swift和oc关于对象模型的description方法重写
- 简单实现TabBar的自定义
- 使用Angular4手把手构建符合企业实际的项目管理系统----【npm】工具的使用
- 干货:大米云LAMP使用说明
- 浅述BLP和Biba模型
- python公式计算_Python数学公式计算
- 离散数学及其应用复盘 | 第3版第4章——谓词逻辑思维导图梳理(复习专用)
- 配置、账户-Windows 8学习总结 -by小雨
- w10计算机管理员权限在哪里设置密码,windows10管理员权限怎么设置_win10电脑设置管理员权限的步骤...
- “净网”行动重拳打击网络淫秽色情信息多家涉黄网站被取缔
- CISSP 第十一章 安全运营
- 抖音矩阵系统,抖音矩阵系统源码。抖音SEO源码。
- 概率论与数理统计习题解答
热门文章
- chrome浏览器打开axure原型图的方法
- 如何用Java将DWG和DXF文件转换为PDF?看了这篇就懂了
- g9008v android7,三星G9008V Android 4.4 (GALAXY S5 移动4G)图文刷机教程,最新教程,简单明了...
- LaTeX常用符号(持续更新)
- 百度文库免费下载含豆丁、道客巴巴等
- 中国天气网城市编码获取地址
- matlab希尔伯特变换,基于matlab的Hilbert变换详解
- 快速对二叉树和前中后序遍历的相互转化
- luarocks - 介绍
- 柯洁被AlphaGo算法“玩”了,不必内疚自责