首頁  >  文章  >  後端開發  >  如何透過PHP程式取得一個10行的楊輝三角

如何透過PHP程式取得一個10行的楊輝三角

青灯夜游
青灯夜游原創
2021-08-10 12:13:393815瀏覽

學過程式語言或演算法的,勢必都要接觸到楊輝三角(中國古代數學的傑出研究成果之一)。它本身並不深奧,今天我們就來使用PHP編寫程式來輸出一個4行3列的楊輝三角。

首先我們來了解一下楊輝三角

楊輝三角是牛頓二項式係數在三角形中的一種幾何排列,它的每一個數都等於上方兩個數總和。

如何透過PHP程式取得一個10行的楊輝三角

從上圖我們可以輕鬆的找出規律:

  • 每一行前後元素都是1

  • #第幾行就有幾個元素

  • 從第三行開始,除了每行的首尾,其餘的每一個元素都是上面的兩個相鄰的元素總和(上一行同位置的數上一行同位置的前一位數之和)

找到規律了,我們就可以設定演算法,然後根據演算法設定程序(本文使用數組雙重for循環嵌套的方式來實現楊輝三角。對for循環不了解的,可以查看《PHP循環學習三:如何使用for循環語句遍歷數組》 )

演算法分析:有一個i行j列數組(j小於等於i)

  • #雙重for循環,第一層循環,遍歷數組的行i;第二層循環,遍歷數組的列j。且陣列的列j值要小於等於陣列的行i值

  • 第二層迴圈體中使用if語句進行判斷,當j=1i=j 時,值為$array[i][j] = 1;

  • 而其他時候, # $array[i][j] = $array[ i-1 ][ j-1 ] $array[ i-1 ][ j ]

我們來看看實作功能的PHP程式碼:

<?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程式取得一個10行的楊輝三角

好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學

最後推薦給大家一個PHP陣列的免費影片教學:PHP函數之array陣列函數影片講解,快來學習吧!

以上是如何透過PHP程式取得一個10行的楊輝三角的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn