FC2ブログ

# パスカルの三角形 Pascal's Triangle
# 引数 段 ($n)
# 戻り値 パスカルの三角形 ($PascalsTriangle)
sub PASCALSTRIANGLE{
my ($n) = @_;
my @PascalsTriangle = ();
my $N = int($n);
my $Start = 0;
my $PrevStart = 0;
my $End = 0;
my $Limit = 0;

# 段の確認
if($N < 0){
return 0;
}

# 零段目
$PascalsTriangle[0] = 1;

# 計算
for(my $i = 0; $i < $N; $i++){
# 配列の位置
$PrevStart = $Start;
$Start = $End + 1;
$End = $Start + $i + 1;
# 両端
$PascalsTriangle[$Start] = $PascalsTriangle[$End] = 1;
# 中心まで
$Limit = ($End - $Start) / 2;

for(my $j = 1; $j <= $Limit; $j++){
# パスカルの三角形 Pascal's Triangle
$PascalsTriangle[$Start + $j] = $PascalsTriangle[$End - $j] = $PascalsTriangle[$PrevStart + ($j - 1)] + $PascalsTriangle[$PrevStart + $j];
}

}

return @PascalsTriangle;
}


二次元配列のパスカルの三角形
http://blog-imgs-36.fc2.com/a/m/a/amamiyaprog/PascalsTriangle.txt

参考URL
パスカルの三角形 - Wikipedia
perlで順列・組合せ 1 組合せ (Combination: COMBINATION): perl: 一寸先は闇
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

Author:雨宮
Firefoxを使用しているので気づかなかったけど、IE6でソースコードを上手くコピーできない

5/3
携帯用ならIE6でもソースコードをコピーできる
携帯用

検索フォーム


あわせて読みたいブログパーツ
一寸先は闇 RSS