CからPerlへの変換がうまくいきません
Cで作った二項分布の計算プログラムをPerlで書き直しています。
ユーザ関数の使い方がよくわかりません。
どこが間違っているか教えていただけませんでしょうか?
余談ですが、ソースが左揃えになるのを防ぎたいのですが…。
#!/usr/bin/perl
$p = 0.5, $s = 0, $t = 0, $combination = 0, $binarydistribution = 0;
printf("n=");
$n = <STDIN>;
for ($r = 0; $r <= $n; $r++){
$combination = &factorial($n) / (&factorial($r) * &factorial($n - $r));
$s = 1;
for ($i = 1; $i <= $r; $i++){
$s = $s * $p;
}
$t = 1;
for ($i = 1; $i <= $n - $r; $i++){
$t *= (1 - $p);
}
$binarydistribution = $combination * $s * $t;
printf("%.15f\n", $binarydistribution);
}
sub factorial{
$j = @_;
$x = 1;
for ($i = 1; $i <= $j; $i++){
$x *= $i;
}
return $x;
}