So, now I've got my "schoolboy approach" working, care to point me at the methods clever people would use?I was too lazy to look before, but now that I have, I was a bit off. On the other hand, I snuck in something similar in step 5 anyway. Here's what I remembered when I said that:
In QOTW #2 MJD considers the n_choose_k function that computes:
He notes that the intermediate values are very large, even though the final result is not. He submits this replacement:sub n_choose_k { my ($n, $k) = @_; # f($n) = $n! return f($n)/f($k)/f($n-$k); }
and he notes:sub n_choose_k { my ($n, $k) = @_; my $t = 1; for my $i (1 .. $k) { $t *= $n - $k + $i; $t /= $i; } return $t; }
$t here is always an integer, and never gets bigger than necessary.For your formula, this only applies to a small portion of the terms. You may be better off just ignoring MJD's improvement and proceeding as I outlined before.
-QM
--
Quantum Mechanics: The dreams stuff is made of
In reply to Re^3: Algorithm for cancelling common factors between two lists of multiplicands
by QM
in thread Algorithm for cancelling common factors between two lists of multiplicands
by BrowserUk
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |