Talk:Special factorials: Difference between revisions
Content added Content deleted
(→Reverse factorial algorithm: 0 and 1) |
m (→Reverse factorial algorithm: add comment) |
||
Line 3: | Line 3: | ||
<lang java>public static int rf(int n) { |
<lang java>public static int rf(int n) { |
||
if (n == 1) |
if (n == 1) |
||
return 0; |
return 0; //1 has two answers -- return the lower one |
||
int a = 1; |
int a = 1; |
Revision as of 18:12, 16 March 2021
Reverse factorial algorithm
I took a stab at translating the reverse factorial algorithm used in the Factor entry to Java. It should be almost as efficient as taking the factorial itself. <lang java>public static int rf(int n) {
if (n == 1) return 0; //1 has two answers -- return the lower one
int a = 1; int b = 1; while (n > a) { b++; a = a * b; } if (a == n) return b; else return -1; //undefined }</lang>
--Chunes (talk) 17:06, 16 March 2021 (UTC)
- Note that the factorial inverse (or reverse factorial) of unity has two possible answers: zero and unity.
- It is normal when searching a series (in this case, the series of factorial products) to use the first match found in the series. -- Gerard Schildberger (talk) 17:37, 16 March 2021 (UTC)
Why is af(0) 0?
Is it that 0 is the additive identity the way that factorial of 0 is 1 is the multiplicative identity? If so why should it be the identity anyway?