上の図はウィキペディアから引用したもので、パスカルの三角形を説明するためのものです。
今回取り上げるのは、いわゆるパスカルの三角形です。楊輝三角形、賈憲三角形とも呼ばれています。一番上の行の最初の数字は「1」で、その下の数字は「左上と右上の数字の和」になります。左上または右上に数字がない場合は、0とみなします。たとえば2行目には「1、1」の2つの数字があり、3行目は「1、2、1」になります。この三角形は無限に広がっていきます。
パスカルのウィキペディア記事:http://goo.gl/nliGj
ただ正直に言うと、上の原理は…. 実は今回の解き方とはあまり関係がありません。このパスカルの三角形の数字は、実は公式で計算できるからです。これは滄海さんに教えていただきました。そうでなければ、左上と右上の数字を足し合わせるという愚直なプログラムを書くしかないと思っていたかもしれません…..
パスカルの公式による計算
以下がパスカルの計算公式です:n と m は、それぞれ行と列に対応しています。パスカルの三角形は数字で構成されているので、何行目・何列目かを区別できます。また、数字はすべて0から数えます。つまり、行数=n、列数=m です。さらに、n! と m! は階乗のことで、123….*n(m についても同様)を意味します。
公式がわかったら…. あとは素直にプログラムを書きましょう XD 公式があれば、これらすべてはとても簡単に書けるのです 0.0
P.S. 読者の HyDroGen さんのご指摘に感謝します。上の図の(5,4)は、15 ではなく 5 が正しいです。
PHP のコード
http://pastie.org/2259899
function factorial($x){
$temp=1;
for($i=1;$i<=$x;$i++){
$temp*=$i;
}
return $temp;
}
?>

