单循环比赛

news/2024/11/7 18:36:19/
固定轮转编排法 固定轮转法也叫常规轮转法,是我国传统的编排方法。它以左边第一号固定不动,逆时针转动,逐一排出。
    public function fixedRotation(){$teamlist = [1, 2, 3, 4, 5,6, 0];//参赛的各队$len = count($teamlist);for ($i = 1; $i < $len; $i++) {var_dump("第" . $i . "轮");for ($j = 0; $j < $len / 2; $j++) {if($teamlist[$j] == $teamlist[$len-1-$j]){continue;}var_dump($teamlist[$j] . " ----- " . $teamlist[$len-1-$j]);}$templist = $teamlist[$len - 1]; //将最后一队的值赋给临时变量$templistfor ($k = $len-1; $k > 0; $k--) {$teamlist[$k] = $teamlist[$k-1];}$teamlist[1] = $templist; //将临时变量$templist赋给数组的第二值}}

2、采用“ 贝格尔”编排法,编排时如果参赛队为双数时,把参赛队数分一半(参赛队为单数时,最后以“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”在右下角。

根据参赛队的个数不同,“1”朝逆时针方向移动一个位置时,应按规定的间隔数移动(见表),“0”或最大代号数应先于“1”移动位置(目前3队以下有bug后续再解决)

public function Berger(){$list = [];$teamList = [1, 2, 3];//参赛队数数量$len = count($teamList);//比赛轮次$turns = $len - 1;//如果为奇数,用0补空if ($len % 2) {array_push($teamList, 0);$turns = $len;}array_push($list, $teamList);$max = $teamList[count($teamList) - 1];//间隔数,计算公式为(n-4)/2+1$steps = (int)($len <= 4 ? 1 : ($len - 4) / 2 + 1);$parseList = $teamList;for ($n = 0; $n < $turns; $n++) {//移除空位$isMax = $parseList[0] == $max;unset($parseList[$parseList[0] == $max ? 0 : count($parseList) - 1]);$tempArray = array_values($parseList);$templen = count($tempArray);$tempLen = $isMax ? $steps + 2 : $steps;for ($i = 0; $i < $tempLen; $i++) {//右位移$temp = $tempArray[$templen - 1];for ($j = $templen - 2; $j >= 0; $j--) {$tempArray[$j + 1] = $tempArray[$j];}$tempArray[0] = $temp;}//补空位if ($isMax) array_push($tempArray, $max);else  array_unshift($tempArray, $max);$parseList = $tempArray;array_push($list, $tempArray);}//分队for ($i = 0; $i < count($list); $i++) {var_dump("第" . $i . "轮");$ar = $list[$i];$length = count($ar) / 2;$left = $right = [];for ($j = 0; $j < $length; $j++) {$left[$j] = $ar[$j];$right[$j] = $ar[$j + $length];}$right = array_reverse($right);for ($j = 0; $j < count($left); $j++) {var_dump($left[$j] . '----------' . $right[$j]);}}}

 


http://www.ppmy.cn/news/74424.html

相关文章

weblogic CVE-2014-4210 SSRF漏洞

CVE-2014-4210 SSRF漏洞 Weblogic 中存在一个SSRF漏洞&#xff0c;利用该漏洞可以发送任意HTTP请求&#xff0c;进而可以攻击内网中Redis、Fastcgi等脆弱组件 该漏洞存在于/uddiexplorer/SearchPublicRegistries.jsp SSRF&#xff1a;服务端请求伪造&#xff0c;伪造存在该漏洞…

SpringBoot开发实用篇1

一、热部署 1.手工启动热部署 经过测试当前是没有启动热部署的&#xff1a; 再将sout的信息多复制几份&#xff0c;刷新功能&#xff0c;发现控制台还是只打印一行信息。说明当前热部署是没有生效的。 手动开启热部署&#xff1a; 在pom.xml文件中加入开发者工具配置热部署…

组合预测模型 | ARIMA-CNN-LSTM时间序列预测(Python)

组合预测模型 | ARIMA-CNN-LSTM时间序列预测&#xff08;Python&#xff09; 目录 组合预测模型 | ARIMA-CNN-LSTM时间序列预测&#xff08;Python&#xff09;预测结果基本介绍程序设计参考资料 预测结果 基本介绍 ARIMA-CNN-LSTM是一种结合了传统时间序列模型和深度学习模型的…

OPPO哲库事件 “ 始末 ” ! 集体打哑谜?

1►OPPO哲库解散 2019 年&#xff0c;美国商务部以“科技网络安全”为由&#xff0c;将华为公司及其70家附属公司列入出口管制“实体名单”。与此同时&#xff0c;OPPO 创始人兼 CEO陈明永对外宣布&#xff0c;公司将为未来三年内投入 500 亿元用于前沿技术和深水区技术的探索…

交错网格与完全匹配层:提升波场模拟效果的双剑合璧

目录 交错网格&#xff08;Staggered Grid&#xff09; 完全匹配层&#xff08;Perfectly Matched Layer&#xff09; 大家好&#xff0c;欢迎来到这次的博客文章。今天我们将介绍在波场模拟中应用的两个关键技术&#xff1a;交错网格&#xff08;Staggered Grid&#xff09;…

微软收购暴雪战未结束;迪士尼流失 4 百万用户;苹果 iPhone 销量增长;国际旅行回暖机票订单火爆;美国年通胀率再次下降 | 经济学人第 20 周

文章目录 苹果 iPhone 销量增长&#xff0c;但总体收入下降微软收购暴雪战未结束迪士尼流失 4 百万用户美国年通胀率再次下降国际旅行回暖&#xff0c;机票订单火爆瑞银认命首席执行官&#xff0c;完成对瑞士信贷的最终收购最后 苹果 iPhone 销量增长&#xff0c;但总体收入下降…

IMU和GPS融合定位(ESKF)

说明 1.本文理论部分参考文章https://zhuanlan.zhihu.com/p/152662055和https://blog.csdn.net/brightming/article/details/118057262 ROS下的实践参考https://blog.csdn.net/qinqinxiansheng/article/details/107108475和https://zhuanlan.zhihu.com/p/163038275 理论 坐标…

springboot+jsp+javaweb学生信息管理系统 05hs

springboot是基于spring的快速开发框架, 相比于原生的spring而言, 它通过大量的java config来避免了大量的xml文件, 只需要简单的生成器便能生成一个可以运行的javaweb项目, 是目前最火热的java开发框架 &#xff08;1&#xff09;管理员模块&#xff1a;系统中的核心用户是管…