ホームページ >バックエンド開発 >PHPチュートリアル >初心者さん、アルゴリズムの書き方を教えてください
主な理由:
現在 PHP を学習中ですが、サッカーの試合の 1 サイクルのスケジュールを作成して自分自身をテストしたいと思っています。
アルゴリズム:
*アルゴリズム
チームを 2 列 (偶数チーム) に配置し、1 列目の 1 番目のチームを固定し、1 列目の 2 番目のチームから時計回りにローリングを開始します。
しかし、コードを書いているときは理解できませんでした(初心者だからかもしれません)
私が想像した書き方は次のようになります:
3 層の for ループ、最初の層はラウンド、2番目のレベルはホームチーム、3番目のレベルはアウェイチームです。
エコーを実行してスケジュールを表示します。
以下のコードは調査中に私が書いたものですが、私が望んでいた結果とは全く異なります。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 つの組み合わせを探しています
組み合わせの一般的なアルゴリズムに従ってください (本質領域に関連するコードがあります)
Iルールを理解できません。あなたが望む結果を示すために結果の例を示してもらえますか? こうすることで、他の人があなたが望む結果が何であるかをよりよく知ることができます
自分で調べれば、武漢 vs 広州のように書くことができます。
武漢 vs 北京
武漢 vs 上海
武漢 vs 四川
武漢 vs 香港
武漢 vs 台湾
---------------------------- ----------- -------------------------------------- ---
広州 vs 北京
広州 vs 上海
広州 vs 四川
広州 vs 香港
広州 vs 台湾
------------------------ ----------------- --------------------------------- ---------
北京vs上海
北京vs四川
北京vs香港
北京vs台湾
--------------------- --------------------- ---------------------------- ----------
上海vs四川
上海vs香港
上海vs台湾
-------------------------- ------------------------ ---------------------------- ----
四川 vs 香港
四川 vs 台湾
--------- ------------------------- ------------------------ ------------------------
香港 vs 台湾
------------------------ ------------------- ----------------------------- ------
ルールがよくわかりません。あなたが望む結果を他の人がよりよく理解できるように、結果の例を示しますか?
強度の結果は
1 ラウンド
を意味します
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台湾
-------------------------------------- ------ -----------------------------
香港 vs 台湾
------- -------- -------------------------------------- -------- ----------------
こんにちは、モデレーター、以前にもこのように書きましたが、最終的な結果は私が望むものとは異なります。
私が考えるのは
第一ラウンド
1234
5678
第二ラウンド
1523
6784
第三ラウンド
1652
7843
このアルゴリズム 0.0 については以下同様です
$ arr = 配列(4,3 ,2,1 ,5,6,7,8);
$arr1 = array_merge($arr, $arr);
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;}1234