Dear Monks, I want to calculate the propability to get side 1 at least k times, tossing a coin n times.
The following code works fine with numbers up to about 150 but when I use numbers above, I get the result -1.#IND
Is there a better way to solve this problem?
#!/usr/bin/perl -w $coin_toss=1000; # =n $toss_side1=60; # =k $total_p=0; foreach($toss_side1..$coin_toss) { # calculate factorials $n_fac=fac($coin_toss); $n_minus_k_fac=fac($coin_toss-$_); $k_fac=fac($_); # calculate propability for getting side 1 exactly $_ times $partial_p=($n_fac/($n_minus_k_fac*$k_fac))*(0.5**$_)*(0.5**($coin +_toss-$_)); # add propability to total propapility $total_p=$total_p+$partial_p; } print"Propability to get side 1 at least $toss_side1 times tossing a c +oin $coin_toss times: $total_p\n"; system("pause"); exit; # subroutine for calculating factorials sub fac { $_[0]>1?$_[0]*fac($_[0]-1):1; }
In reply to Calculate propabilities without recursion? Coin toss. by Microcebus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |