FC2ブログ
最初
http://blog-imgs-36.fc2.com/a/m/a/amamiyaprog/Combination1.txt

修正1 5/6
http://blog-imgs-36.fc2.com/a/m/a/amamiyaprog/Combination2.txt

修正2 5/27

# 組合せ Combination
# 引数 n個 r個 ($n, $r)
# 戻り値 組合せ ($Combination)
sub COMBINATION{
my ($n, $r) = @_;
my $Combination = 1;
my $N = int($n);
my $R = int($r);
my $Temp = 1;
my $Limit = (($N - $R) > $R ? $R : ($N - $R));

# 個数の確認
if(($N < $R) || ($N < 0) || ($R < 0)){
return 0;
}

# 計算
for(my $i = 1; $i <= $Limit; $i++){
$Temp = $Temp * (($N - ($i - 1)) / $i);

# 組合せ Combination
$Combination = $Temp;
}

return $Combination;
}


最初
http://blog-imgs-36.fc2.com/a/m/a/amamiyaprog/CombinationTable1.txt

修正1 5/27

# 組合せ(表) Combination Table
# 引数 n個 ($n)
# 戻り値 組合せ(表) (@CombinationTable)
sub COMBINATIONTABLE{
my ($n) = @_;
my @CombinationTable = ();
my $N = int($n);
my $N_2 = int($N / 2);
my $Temp = 1;

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

# 両端
$CombinationTable[0] = $CombinationTable[$N] = 1;

# 計算
for(my $i = 1; $i <= $N_2; $i++){
$Temp = $Temp * (($N - ($i - 1)) / $i);

# 組合せ(表) Combination Table
$CombinationTable[$i] = $CombinationTable[$N - $i] = $Temp;
}

return @CombinationTable;
}


追記 6/7
TeXの勉強をしようと思いプログラムの流れを書いてみた
組合せの公式
組合せの公式

左右対称
組合せの公式 左右対称

nCr n=5の時












参考URL
組合せ - 高精度計算サイト
組合せ(表) - 高精度計算サイト

修正1 5/6
if(($R == 0) || ($R == $N))を削除

修正2 5/27

$Temp = $Temp / $i;
# 組合せ Combination
$Combination = $Temp;
$Temp = $Temp * ($N - $i);

$Temp = $Temp * (($N - ($i - 1)) / $i);
# 組合せ Combination
$Combination = $Temp;


追記1
綺麗に配置できない
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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