學(xué)過編程語(yǔ)言或算法的,勢(shì)必都要接觸到楊輝三角(中國(guó)古代數(shù)學(xué)的杰出研究成果之一)。它本身并不深?yuàn)W,今天我們就來(lái)使用PHP編寫程序來(lái)輸出一個(gè)4行3列的楊輝三角。
首先我們來(lái)了解一下楊輝三角。
楊輝三角是牛頓二項(xiàng)式系數(shù)在三角形中的一種幾何排列,它的每一個(gè)數(shù)都等于上方兩個(gè)數(shù)之和。
從上圖我們可以輕松的找出規(guī)律:
-
每一行前后元素都是1
-
第幾行就有幾個(gè)元素
-
從第三行開始,除了每行的首尾,其余的每一個(gè)元素都是上面的兩個(gè)相鄰的元素之和(上一行同位置的數(shù)+上一行同位置的前一位數(shù)之和)
找到規(guī)律了,我們就可以設(shè)置算法,然后根據(jù)算法設(shè)置程序(本文使用數(shù)組+雙重for循環(huán)嵌套的方式來(lái)實(shí)現(xiàn)楊輝三角。對(duì)for循環(huán)不了解的,可以查看《PHP循環(huán)學(xué)習(xí)三:如何使用for循環(huán)語(yǔ)句遍歷數(shù)組》)
算法分析:有一個(gè)i行j列數(shù)組(j小于等于i)
-
雙重for循環(huán),第一層循環(huán),遍歷數(shù)組的行i;第二層循環(huán),遍歷數(shù)組的列j。且數(shù)組的列j值要小于等于數(shù)組的行i值
-
第二層循環(huán)體中使用if語(yǔ)句進(jìn)行判斷,當(dāng)
j=1
或者i=j
時(shí),值為$array[i][j] = 1
; -
而其他時(shí)候,
$array[i][j]
=$array[ i-1 ][ j-1 ]
+$array[ i-1 ][ j ]
我們來(lái)看看實(shí)現(xiàn)功能的PHP程序代碼:
<?php function yh_put($max) { $array = []; // 循環(huán)列數(shù) for($i = 1; $i <= $max; $i++) { // 循環(huán)行數(shù) for( $j=1; $j <= $i; $j++) { // 每行的第一個(gè)和最后一個(gè)都是1 if( $j == 1 || $j == $i ) { echo $array[$i][$j] = 1; } else { // 上一行同位置的數(shù) + 上一行同位置的前一位數(shù)之和 echo $array[$i][$j] = $array[ $i-1 ][ $j-1 ]+$array[ $i-1 ][ $j ]; } echo " "; } echo "<br>"; } unset($array); } yh_put(10);
輸出結(jié)果為:
好了就說(shuō)到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦。→ →php視頻教程
最后給大家推薦一個(gè)PHP數(shù)組的免費(fèi)視頻教程:PHP函數(shù)之a(chǎn)rray數(shù)組函數(shù)視頻講解,快來(lái)學(xué)習(xí)吧!