6 ms·
Interestingly, I was just doing some calculations over the weekend involving large factorials. Naturally, I used a "big integer" library to overcome the limitat
by kleiba 11y ago
Interestingly, I was just doing some calculations over the weekend involving large factorials. Naturally, I used a "big integer" library to overcome the limitations of the hardware architecture. That anyone outside a class-room would be willing to restrict themselves to 32 or 64 bit for the largest integers thus seems contrived: of course, dealing with factorials will quickly get you past your system's word size, but that's what arbitrary-length integer libs are for.
- a1k0n 11y agoDepends what you need them for... In statistics, factorials appear in normalizing constants for various distributions (e.g., Poisson) and often you're working with floating point log-probabilities, in which case you can use the log-gamma function (built into most math libraries) to replace the log factorial. And that's a 64-bit float, no bignums needed.
- jeffwass 11y agoBut in what situation would you actually need an arbitrary precision library for general statistics? Ie, in what situations would any reasonable approximations not suffice for reasonable real-world precision? Eg, Stirlings approximation for ln(n!) should serve fairly well for moderate and above values of n. And knowing your statistical distribution at large n you can likely find a decent distribution from a discrete case requiring n! into a continuous one, eg Gaussian.
- a1k0n 11y agoYou wouldn't, for statistics. That's my point. Only in number theory problems do you actually need bignums for factorials, and those are usually toy problems or modulo some big prime. I don't know of any actual applications where you need to compute the bignum factorial. I'm curious what the GP needed it for.
- kleiba 11y agoI needed them for a toy problem as well. Tried to experimentally verify the equality of two formulas involving large factorials. It was a counting problem.