數學之楊輝三角

2021-07-03 13:24:21 字數 1438 閱讀 2696

概述

前提:端點的數為1.

每個數等於它上方兩數之和。

每行數字左右對稱,由1開始逐漸變大。

第n行的數字有n項。

第n行數字和為2n-1。

第n行的m個數可表示為 c(n-1,m-1),即為從n-1個不同元素中取m-1個元素的組合數。

第n行的第m個數和第n-m+1個數相等 ,為組合數性質之一。

每個數字等於上一行的左右兩個數字之和。可用此性質寫出整個楊輝三角。即第n+1行的第i個數等於第n行的第i-1個數和第i個數之和,這也是組合數的性質之一。即 c(n+1,i)=c(n,i)+c(n,i-1)。

(a+b)n的展開式中的各項係數依次對應楊輝三角的第(n+1)行中的每一項。

將第2n+1行第1個數,跟第2n+2行第3個數、第2n+3行第5個數……連成一線,這些數的和是第4n+1個斐波那契數;將第2n行第2個數(n>1),跟第2n-1行第4個數、第2n-2行第6個數……這些數之和是第4n-2個斐波那契數。

將各行數字相排列,可得11的n-1(n為行數)次方:1=11^0; 11=11^1; 121=11^2……當n≥5時會不符合這一條性質,此時應把第n行的最右面的數字」1」放在個位,然後把左面的乙個數字的個位對齊到十位… …,以此類推,把空位用「0」補齊,然後把所有的數加起來,得到的數正好是11的n-1次方。以n=11為例,第十一行的數為:1,10,45,120,210,252,210,120,45,10,1,結果為 25937424601=1110。

在程式設計中實現

楊輝三角在程式設計實現中較為容易。最常見的演算法便是用上一行遞推計算;也有運用和組合的對應關係而使用階乘計算的,然而後者速度較慢且階乘容易溢位。

/*使用二維陣列列印乙個 10 行楊輝三角.

11 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

....

【提示】

1. 第一行有 1 個元素, 第 n 行有 n 個元素

2. 每一行的第乙個元素和最後乙個元素都是 1

3. 從第三行開始, 對於非第乙個元素和最後乙個元素的元素.

yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];

*/class testyanghui

//二維陣列的賦值

for (int i=0;ifor (int j=0;j0] = yanghui[i][i] =1;

if (i>1 && j>0 && i>j)}}

//陣列的遍歷

for (int i=0;ifor (int j=0;jout.print(yanghui[i][j] + " ");

}system.out.println();}}

}

python楊輝三角 楊輝三角I II

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 可以一行一行錯位加,當然這裡提供更簡便的方法。任取一行描述 1,2,1 如何得到 1,3,3,1 ...

數論之楊輝三角

楊輝三角,是二項式係數在三角形中的一種幾何排列。在歐洲,這個表叫做帕斯卡三角形 pascal三角形 注意圖上是從第0行開始的 前提 每行端點與結尾的數為1.每個數等於它上方兩數之和。每行數字左右對稱,由1開始逐漸變大。第n行的數字有n項。第n行數字和為2n 1。第n行的第m個數可表示為cm 1n 1...

leetcode解題之楊輝三角

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 完全是按照資料的正向邏輯暴力編碼,對於第 一 第二行作為基礎資料。class solution if...