プログラミング言語やアルゴリズムを学んだことのある人は、必ず楊輝三角形 (古代中国数学の優れた研究成果の 1 つ) に触れるはずです。それ自体は深いことではありませんが、今日は PHP を使用して、4 行 3 列の楊輝三角形を出力するプログラムを作成します。
まず、陽輝トライアングルを理解しましょう。
Yang Hui の三角形は、三角形内にニュートンの二項係数を幾何学的に配置したもので、その中の各数値は上記の 2 つの数値の合計に等しくなります。
上の図からパターンを簡単に見つけることができます:
各行の前後の要素は 1
どの行にも複数の要素があります
3 行目から始まり、各行の先頭と末尾を除き、1 つおきの要素になりますは上です 隣接する 2 つの要素の合計 (前の行の同じ位置にある数値と、前の行の同じ位置にある前の数字の合計)
パターンを設定したら、アルゴリズムを設定します。次に、アルゴリズムに従ってプログラムを設定します (この記事では、配列 double の for ループのネストを使用して、Yang Hui の三角形を実装します。for ループについて知らない場合は、「」を確認してください。 PHP ループ学習 3: for ループ ステートメントを使用して配列を走査する方法" )
アルゴリズム分析: 行 i と列 j を持つ配列があります (j は i 以下です)
Double for ループ (ループの最初のレベル) は配列の行 i を横断し、ループの 2 番目のレベルは配列の列 j を横断します。また、配列の j 列の値は、配列の i 行の値以下である必要があります。
第 2 レベルのループ本体で if ステートメントを使用して判断します。 j=1
または i=j
の場合、値は $array[i][j] = 1
;
$array[i][j] =
$array[ i-1 ][ j-1 ]
$array[ i- 1 ][ j ]
<?php function yh_put($max) { $array = []; // 循环列数 for($i = 1; $i <= $max; $i++) { // 循环行数 for( $j=1; $j <= $i; $j++) { // 每行的第一个和最后一个都是1 if( $j == 1 || $j == $i ) { echo $array[$i][$j] = 1; } else { // 上一行同位置的数 + 上一行同位置的前一位数之和 echo $array[$i][$j] = $array[ $i-1 ][ $j-1 ]+$array[ $i-1 ][ $j ]; } echo " "; } echo "<br>"; } unset($array); } yh_put(10);
PHP 関数 配列 配列関数のビデオ説明、ぜひ学んでください。
以上がPHP プログラムを通じて 10 行のヤン ホイ三角形を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。