I am solving a programming problem which is stuck at calculating nCr efficiently and at the same time avoiding overflows. I have made the following trivial simplification but am just curious about if there are any more sophisticated simplifications available out there.
(n)!/(n-k)!*k! = n*(n-1)*.....*(max(n-k+1, k))/(min(n-k, k-1))
Can there be any more simplification possible considering different cases for k as even or odd, just suggesting a way.
Any comment is appreciated.
I found an interesting solution here: http://blog.plover.com/math/choose.html
This avoids overflows (or at least limits the problem) by performing multiplication and division alternatively.
E.g. for
n = 8,k = 4: