ホームページ  >  記事  >  バックエンド開発  >  PHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返します

PHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返します

青灯夜游
青灯夜游オリジナル
2021-08-13 16:07:103743ブラウズ

前回の記事「PHP配列学習:キー/値の大文字・小文字の変更」では、PHP連想配列の配列キー名やキー値の大文字・小文字を変更する方法を紹介しました。 。今回は、2 つの整数のすべての公約数を取得し、最大公約数 (近似値) を見つける方法を見ていきます。興味のある友達はそれについて学ぶことができます~

まず、とは何かを理解しましょう共通因数の数 (およそ) と最大公約数の数 (およそ) ?

因数 (近似) 数 は、整数を割り切れる数を指します。 公約数 (近似) 数 は、複数の整数を 2 で割ることができる数です。同じ時間です。複数の整数を同時に除算できる公約数が複数存在する可能性があり、最大のものが最大公約数となります。

例: 数値 30 と 40 の公約数は 1、2、5、10 で、このうち 10 が最大であるため、数値 30 と 40 の最大公約数は 10 になります。

では、PHP を使用して、2 つの整数 a と b の間の共通因数と最大公約数を取得するにはどうすればよいでしょうか?

アイデア:

1. 2 つの整数 a と b の間の因数をそれぞれ取得します (これについては、上記の PHP ループ学習 8 で詳しく説明しています)。これらの要素を配列に格納します。ここでは、数値 30 を例として、for ループを使用してすべての要素を見つけます:

for($i=1;$i<30;$i++){
    if($a%$i==0){//分解因数
        $arr1[]=$i;
    }
}

この配列を出力します$arr1

var_dump($arr1);

結果を見てください:

PHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返します

数字 30 の因数は、1、2、3、5、6、10、15 であることがわかります。

上記のメソッドを使用して、数値 40 のすべての因数を取得し、配列 $arr2 に保存します。

PHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返します

次のことがわかります。数値 40 因数は 1、2、4、5、8、10、20 です。

2. 2 つの整数のすべての因数を取得したら、array_intersect() 関数を使用して、それらの間のすべての共通因数を見つけることができます。 (array_intersect() 関数は 2 つの配列の交差を計算できます。理解できない場合は、「PHP 配列の学習: 2 つの配列を比較して交差を見つける方法 」を参照してください。)

$result=array_intersect($arr1,$arr2);
var_dump($result);

出力結果は次のとおりです:

PHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返します

このようにして、数値 30 と 40 のすべての公約数 (1、2、5) を取得できます。 、10.

3、30、40 のすべての共通因数は交差配列 $result にあり、max() 関数を使用して最大のものを取得できます。配列番号、最大公約数。

$max=max($result);
echo "最大公因数为: $max";

出力結果は次のとおりです:

PHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返します

OK、完了!上記のコードを関数にカプセル化します:

<?php
header("Content-type:text/html;charset=utf-8");
function gcd($a,$b){
$arr1=array();
$arr2=array();
for($i=1;$i<$a;$i++){
    if($a%$i==0){//分解因数
        $arr1[]=$i;
    }
}
for($i=1;$i<$b;$i++){
    if($b%$i==0){//分解因数
        $arr2[]=$i;
    }
}

$result=array_intersect($arr1,$arr2);
echo "数 $a 和 $b 的公因(约)数有:";
foreach($result as $value){
	echo $value." , ";
}

$max=max($result);
echo "<br>最大公因数为: $max  <br><br>";
}
gcd(30,40);
gcd(12,16);
?>

出力結果:

PHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返します

##今のところはこれです。他に知りたいことがあれば、はい、これをクリックできます。 → →

php ビデオ チュートリアル

最後に、PHP 配列に関する無料のビデオ チュートリアルをお勧めします。

PHP 関数 配列 配列関数のビデオ説明、ぜひ学んでください。

以上がPHP 配列学習は、指定された 2 つの数値間のすべての共通因数と最大公約数を返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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