[PHP]파스칼의 삼각형

n이 자연수일때 (a+b)의 n거듭제곱에 관한 이항전개식을 a에 대한 내림차순으로 쓰면 다음과 같은 형태가 된다.

pas_01.gif
이 때, 각 항에 대한 계수 k를 구하는 방법 중 가장 쉬운 방법이 파스칼 삼각형이다.


pas_02.gif
단, n값이 작을때는 매우 유용하게 사용할 수 있지만 클 때는 사용하기가 힘들다.

이 파스칼 삼각형을 PHP로 구현해봤다.
PHP에는 강력한 배열이 있어서 그리 어렵지 않게 구할 수 있었다. ^^

$p = array();
for($i=0; $i<10; $i++)
{
	$t = array();
	for($j=0; $j< =$i; $j++) {
		$t[$j] = ((($i-$j)*$j)===0)?1:($p[$j-1]+$p[$j]);
		echo $t[$j].' ';
	}
	$p = $t;
	echo '
'; }

결과

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1

다른 언어로도 해보자. ^^)/

댓글을 남겨주세요