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

修正1 5/27

# 重複組合せ Repetition Combination
# 引数 n個 r個 ($n, $r)
# 戻り値 組合せ ($RepetitionCombination)
sub REPETITIONCOMBINATION{
my ($n, $r) = @_;
my $RepetitionCombination = 1;
my $R = int($r);
my $N = int($n) + $R - 1;
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);

# 重複組合せ Repetition Combination
$RepetitionCombination = $Temp;
}

return $RepetitionCombination;
}



# 重複組合せ(表) Repetition Combination Table
# 引数 n個 r個 ($n, $r)
# 戻り値 組合せ(表) (@RepetitionCombinationTable)
sub REPETITIONCOMBINATIONTABLE{
my ($n, $r) = @_;
my @RepetitionCombinationTable = ();
my $N = int($n);
my $R = int($r);

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

# 計算
for(my $i = 0; $i <= $R; $i++){
# 重複組合せ(表) Repetition Combination
$RepetitionCombinationTable[$i] = &REPETITIONCOMBINATION($N, $i);
}

return @RepetitionCombinationTable;
}


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

修正1 5/27
my $RepetitionCombination = 0; -> my $RepetitionCombination = 1;

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

$Temp = $Temp * (($N - ($i - 1)) / $i);
# 重複組合せ Repetition Combination
$RepetitionCombination = $Temp;
オンライン コンパイラ/インタプリタ
テクニカル分析
プロフィール

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

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

検索フォーム


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