OFFSET
0,3
COMMENTS
Proposition. We have (2^k-1)!! == 1 (mod 2^k) for k >= 3.
Proof. Write d=2^(k-2), then (Z/2^kZ)* is generated by 5 (order d) and -1 (order 2), and so 1*3*...*(2^k-1) == Product_{r=0..d-1} Product_{s=0,1} (-1)^s*5^r = 5^(d(d-1)) == 1 (mod 2^k).
Corollary. The infinite product Product_{k>=1} (2^k-1)!! converges in the ring of 2-adic integers.
Let C(m) be the m-th Catalan number. Then C(2^(n-1)-1) = (2^n-3)!!/Product_{k=1..n-1} (2^k-1)!! == -1/Product_{k=1..n-1} (2^k-1)!! (mod 2^n). As a result, we have A178854(n) == C(2^(n-1)-1) == -1/a(n) (mod 2^n), and lim_{n->oo} C(2^n-1) = -1/Prod_{k>=1} (2^k-1)!! in the ring of 2-adic integers.
The fact that (2^(k+1)-1)!! == (2^k-1)!!^2 (mod 2^(3*k-1)) (see link below) for k >= 2 can be used to simplify calculations.
LINKS
Chai Wah Wu, Table of n, a(n) for n = 0..125
Jianing Song, Proof that v2((2^(k+1)-1)!!-(2^k-1)!!^2) = 3*k-1.
FORMULA
a(n) = (Product_{k=1..n-1} (2^k-1)!!) mod 2^n for n != 2.
EXAMPLE
a(10) = (1!!*3!!*7!!*15!!*31!!*63!!*127!!*255!!*511!) mod 1024 = 651.
PROG
(PARI) a(n) = {
if(n<=2, return([0, 1, 3][n+1]));
my(d=n\3, v=vector(d), k=Mod(1, 1<<n), Prod); for(i=1, d, for(j=1<<(i-1)+1, 1<<i, k*=(2*j-1)); v[i]=k); \\ v[i] = (2^(i+1)-1)!! mod 2^n for 1 <= i <= d
Prod=vecprod(v); last=v[d]; for(i=d+2, n-1, last=last^2; Prod*=last); lift(Prod);
}
(Python)
def A395199(n):
if n == 0: return 0
if n == 2: return 3
m = (1<<n)-1
def f(k):
if k == 1:
return 1
else:
c = f(k-1)
if 3*(k-1)>n:
return c*c&m
else:
for i in range((1<<k-1)+1, 1<<k, 2):
c = c*i&m
return c
c = 1
for k in range(1, n):
c = c*f(k)&m
return c # Chai Wah Wu, Apr 25 2026
CROSSREFS
KEYWORD
nonn
AUTHOR
Jianing Song, Apr 15 2026
STATUS
approved
