[PHP]파스칼의 삼각형

March 6th, 2006 Categories: Tip&Tech

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 '<br />';
}

결과

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

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

Tags: ,

3 Responses to “[PHP]파스칼의 삼각형”

  1. March 24th, 2006 at 01:08
    1

    헛…이런것도 있었군요..

  2. March 8th, 2006 at 18:43
    2

    http://altlang.org/fest/CodeRace/VisitorsGame
    대안언어축제(altlang)에서 출제되었던 손님용 게임에 비슷한 문제가 나왔습니다.
    놀랍게도 1줄로도 가능하더군요.. php로 작성한 사람은 없군요.. 제가 하다가 1줄코드 보고 쫄아서 그만뒀습니다. : )

  3. March 7th, 2006 at 08:06
    3

    http://game.paran.com/webtoon/main.asp?xCode=http://cartoon.ntamin.paran.com/cartoon_view.php?id=39

    이 웹툰 끝 부분이랑 비슷한거 같아요 ㅋㅋㅋ
    다 해 놓고 나서… 다른것도 해보자, 여러분들은 어떤 경험이 있느냐 식… ㅋ

Comments are closed.