Hacker News new | past | comments | ask | show | jobs | submit login

How would you find (n-1)! given n!? (Think for a moment before moving on.)

Dividing by n of course, (n-1)!=n!/n. This immediately extends the notion of factorials backwards to 0!=1!/1.

It's only a matter of checking to see which factorial-dependent formula (usually arising in context of combinatorics, or gamma function) fits - and it turns out (luckily) that everything fits.

Edit: Even if it tuned out some things don't fit, we would still be free to define 0! as 1 as a convention. But the fact that everything fits, makes it a useful definition - prevents you from checking a lot of edge cases, eliminating the need of many ``if (k==0) ...`` from codes.




> How would you find (n-1)! given n!?

If you want to think a little more:

You are given a value v, which you are told is n! for some n, which you are not told. Find a general algorithm to produce (n-1)!.

I have an algorithm which, I fear, may not have the most efficient running time.


If you have n! in binary, count the number of zeros at the end of its binary expansion and call this count k. The number k+1 approximates n relatively closely (the error n-k is the number of ones in n's binary expansion—see http://www.cut-the-knot.org/blue/LegendresTheorem.shtml).


By that logic, (-1)! = 0!/0 = 1/0 = infinity, no?


Well, nobody has ever said that 1/0 will get you infinity, because it won't. Interpreted directly, it's an illegal operation, and there is no result because the computation is impossible. Sure enough, the gamma function doesn't exist at nonpositive integers.

But wait! If you interpret 1/0 in a limit sense... there is no result, because there's no constraint that the neighborhood of 0 is entirely positive or entirely negative (obviously, the neighborhood of 1 is entirely positive). You'd only get an answer of "infinity" if you were limiting a function like "1 / 0^2".

Sure enough, we see that the gamma function has no limit at the nonpositive integers, always approaching positive infinity from one side and negative infinity from the other side. So the factorial of a negative integer doesn't exist. What point are you trying to make?


> Sure enough, we see that the gamma function has no limit at > the nonpositive integers, always approaching positive > infinity from one side and negative infinity from the other side.

On the complex plane, there is more than one side to approach from. And the convention that was used when I learned complex analysis (stereographic projection), is that there is only one value of infinity, which can be approached from many directions. Under this model, the point at infinity is much better-behaved than the points at infinity in real analysis.

The Gamma function is characterized as having poles at the negative integers. That's a very straightforward description, and the behavior is well-understood and relatively easy to deal with. Certainly easier to deal with than the value of e^-x as x->0 (that singularity is essential, rather than a pole).


Yep, it sure does. The magnitude of Gamma(x) grows without bound as x approaches any negative real integer. The negative integers (and the point at infinity) are also the only points where Gamma(x) has a singularity.


For a second there it looked like you were saying that (n-1) does not equal n!/n.


The way I know P!=NP is that N=(P-1)! Of course P=NP if P=0 or N=1. So who knows. :)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: