新人请教一个该如何写*算法
主要原因:
目前在学习PHP的过程,想考验一下自己制作一个足球比赛单循环的赛程表出来。
算法:
*算法
把队伍排列成2行(偶数队伍),固定第一行的第一个队伍,从第一行第二个队伍开始顺时针滚动。
但我在写代码的时候怎么也写不出来(可能是我也刚接触)
我所设想的写法应该是:
3层for循环,第一层是轮次,第二层是主队,第三层是客队。
进行for echo展示赛程表。
下面代码是我自己在研究过程中写出来的,跟我要的结果完全不一样啊,不知道怎么写了,希望PHP大牛帮忙!
<?php $team = array('武汉','广州','北京','上海','四川','香港','台湾'); //var_dump($team); $max = count($team); //var_dump($max); $teammax = $max - 1 ; for ($i=0;$i<$max;$i++) { for ($o=0;$o<=$teammax;$o++) { if ($i == $o) { continue; } else { echo $team[$i] . ' vs ' . $team[$o]; if ($o == $teammax){ echo "<hr>"; } else{ echo "<br/>"; } } } }?>
<?php $team = array('1','2','3','4','5','6','7','8'); $max = count($team); //var_dump($max); $lunci = $max - 1; //var_dump($lunci); for ($i=0;$i<$lunci;$i++) { echo $team[$w] .' vs ' . $team[$b-$i]; echo '<br/>'; }?>
回复讨论(解决方案)
你这是求 7 中取 2 的组合
按求组合的通用算法即可(精华区有相关代码)
规则看不太懂 能给个结果实例要你想要的结果展示出来吗 这样别人才能更好的知道你想要的结果是什么
自己研究的话,可以这样写
$team = array('武汉','广州','北京','上海','四川','香港','台湾');$max = count($team);$teammax = $max - 1 ;for ($i=0;$i<$max;$i++) { for ($o=$i+1;$o<=$teammax;$o++) { if ($i == $o) { continue; }else { echo $team[$i] . ' vs ' . $team[$o]; if ($o == $teammax){ echo "<hr>"; } else{ echo "<br/>"; } } }}
武汉 vs 北京
武汉 vs 上海
武汉 vs 四川
武汉 vs 香港
武汉 vs 台湾
--------------------------------------------------------------------------------
广州 vs 北京
广州 vs 上海
广州 vs 四川
广州 vs 香港
广州 vs 台湾
--------------------------------------------------------------------------------
北京 vs 上海
北京 vs 四川
北京 vs 香港
北京 vs 台湾
--------------------------------------------------------------------------------
上海 vs 四川
上海 vs 香港
上海 vs 台湾
--------------------------------------------------------------------------------
四川 vs 香港
四川 vs 台湾
--------------------------------------------------------------------------------
香港 vs 台湾
--------------------------------------------------------------------------------
规则看不太懂 能给个结果实例要你想要的结果展示出来吗 这样别人才能更好的知道你想要的结果是什么
实力结果应该是
第一轮
也就是把
1234
5678
上下对阵
1523
6784
1652
7843
形成罗盘算法的运转(固定1 转动2~8)
自己研究的话,可以这样写
$team = array('武汉','广州','北京','上海','四川','香港','台湾');$max = count($team);$teammax = $max - 1 ;for ($i=0;$i<$max;$i++) { for ($o=$i+1;$o<=$teammax;$o++) { if ($i == $o) { continue; }else { echo $team[$i] . ' vs ' . $team[$o]; if ($o == $teammax){ echo "<hr>"; } else{ echo "<br/>"; } } }}
武汉 vs 北京
武汉 vs 上海
武汉 vs 四川
武汉 vs 香港
武汉 vs 台湾
--------------------------------------------------------------------------------
广州 vs 北京
广州 vs 上海
广州 vs 四川
广州 vs 香港
广州 vs 台湾
--------------------------------------------------------------------------------
北京 vs 上海
北京 vs 四川
北京 vs 香港
北京 vs 台湾
--------------------------------------------------------------------------------
上海 vs 四川
上海 vs 香港
上海 vs 台湾
--------------------------------------------------------------------------------
四川 vs 香港
四川 vs 台湾
--------------------------------------------------------------------------------
香港 vs 台湾
--------------------------------------------------------------------------------
你好,版主,你这样的写法我写过,最终生成的结果和我想要的结果是不一样的。
我所想的是
第一轮
1234
5678
第二轮
1523
6784
第三轮
1652
7843
以此类推这样的算法0.0
$arr = array(4,3,2,1,5,6,7,8);
$round = 0; //设置轮次
$arr1 = array_merge($arr, $arr);
$round %= 8;
echo $arr1[$round],$arr1[$round+1],$arr1[$round+2],$arr1[$round+3];
这个意思?
$ar = array(1, 2, 3, 4, 5, 6, 7, 8);$len = count($ar);for($i=1; $i<$len; $i++) { foreach(array_chunk($ar, $len/2) as $v) { echo join('', $v), PHP_EOL; } $t = array_splice($ar, 1, 1); $ar = array_merge($ar, $t); echo PHP_EOL;}
5678
1345
6782
1456
7823
1567
8234
1678
2345
1782
3456
1823
4567

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...
