ホームページ >バックエンド開発 >PHPの問題 >PHPコードで行列を実装する方法

PHPコードで行列を実装する方法

藏色散人
藏色散人オリジナル
2021-03-17 09:49:552930ブラウズ

PHP コードで行列を実装する方法: 最初に行と列の数を取り出し、次に外側のループのターン数を制御し、次に「j=i;j

PHPコードで行列を実装する方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

[PHP] アルゴリズム -行列の PHP 実装を時計回りに出力します。

#1. 行と列の数を取り出し、row、col、円の数は (小さい値 -1)/2 1

2. 外側のループ 円の数、内側の 4 つの for ループ、i

3 を制御します。最初の for ループは、左から右に、j=i;j4. 2 番目の for ループは上から下に、k=i 1;k5. 3 番目のループは右から左に、m=col-2-i;m>=i&&row-1-i!=i;m-- arr[row-1-i][m] ]// row-1-i!=i が単一行の場合、一度だけ出力されます

6。4 番目のループは下から上に、n=row-2-i;n>= i&&col-1-i!= i;n-- arr[n][i]

<?php
$arr=array();
$flag=0;
for($i=0;$i<2;$i++){
        $flag=$i*2;
        for($j=0;$j<2;$j++){
                $flag++;
                $arr[$i][]=$flag;
        }   
}
var_dump($arr);
//顺时针打印矩阵
function printMatrix($arr){
        $res=array();
        $row=count($arr);
        $col=count($arr[0]);
        $circle=intval((($row>$col ? $col : $row)-1)/2+1);
        for($i=0;$i<$circle;$i++){
                //转圈开始
                //从左到右
                for($j=$i;$j<=$col-1;$j++){
                        $t=$arr[$i][$j];
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
                //从上到下
                for($k=$i+1;$k<$row-$i;$k++){
                        $t=$arr[$k][$col-$i-1];
    
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
                //从右到左
                for($m=$col-$i-2;$m>=$i;$m--){
                        $t=$arr[$row-$i-1][$m];
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
                //从下到上
                for($n=$row-$i-2;$n>$i;$n--){
                        $t=$arr[$n][$i];
                        if(in_array($t,$res)) continue;
                        $res[]=$t;
                }   
        }   
        return $res;
}
$res=printMatrix($arr);

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPコードで行列を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。