【推文到Plurk】
【推文到Facebook】

帕斯卡(巴斯卡)三角形公式解!(感謝滄海)

上圖引用自維基,用以解釋帕斯卡三角形

今天要講的是所謂的帕斯卡三角形,也有人稱它楊輝三角形、賈憲三角形,他的第一行、第一個字是「1」,在下來的數字等於「左上、右上相加」,如果左上或右上沒有數字則等於0,例如第二行的數字有兩個「1、1」,再來第三行等於「1、2、1」,並且這個三角形可以無限延伸下去

關於帕斯卡的維基:http://goo.gl/nliGj

但是說實話,上面的原理….  其實跟本次解題的方法沒有太大相關性,因為這個帕斯卡三角形其實是可以透過公式來推算數字的,這點還要感謝滄海告訴我,不然我可能會以為只能笨笨的寫程式,然後左上、右上相加…..

滄海:http://jeremy.tfeng.org

帕斯卡公式計算

以下是帕斯卡的計算公式:

關於n、m的部份則是來自行、列,帕斯卡三角形因為是由數字構成的,所以就可以分出所謂的第幾行、第幾列,並且一切數字從0開始,行數=n,列數=m,另外n!跟m!是指「階層運算」,也就是1*2*3….*n、m的意思

公式看懂之後…. 就直接寫程式吧XD 因為有公式的話那這一切其實很好寫0.0

PS.感謝網友HyDroGen指正,上圖的(5,4)應該是5才對,不是15

PHP程式碼

http://pastie.org/2259899

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
   for($a=0;$a<=10;$a++){
       for($aa=0;$aa<=$a;$aa++){
           echo pascal($a,$aa);
           echo '  ';
       }
       echo '\n';
   }
?>
<?php
   function pascal($n,$m){
       return factorial($n)/((factorial($m)*factorial($n-$m)));
   }
 
   function factorial($x){
       $temp=1;
       for($i=1;$i<=$x;$i++){
           $temp*=$i;
       }
       return $temp;
   }
?>

4 thoughts on “帕斯卡(巴斯卡)三角形公式解!(感謝滄海)

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

你可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>