A106831 Define a triangle in which the entries are of the form +-1/(b!c!d!e!...), where the order of the factorials is important; read the triangle by rows and record and expand the denominators.
2, 6, 4, 24, 12, 12, 8, 120, 48, 36, 24, 48, 24, 24, 16, 720, 240, 144, 96, 144, 72, 72, 48, 240, 96, 72, 48, 96, 48, 48, 32, 5040, 1440, 720, 480, 576, 288, 288, 192, 720, 288, 216, 144, 288, 144, 144, 96, 1440, 480, 288, 192, 288, 144, 144, 96, 480, 192, 144, 96, 192
Offset: 0
Examples
Woon's "Bernoulli Tree" begins like this (see also the given Wikipedia-link). This sequence gives the values of the denominators: +1 ──── 2! -1 / \ +1 ──── ............../ \.............. ───── 3! 2!2! +1 . -1 -1 . +1 ──── / \ ──── ──── / \ ────── 4! ...../ \..... 2!3! 3!2! ...../ \.... 2!2!2! / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ -1 +1 +1 -1 +1 -1 -1 +1 ──── ──── ──── ────── ──── ────── ────── ──────── 5! 2!4! 3!3! 2!2!3! 4!2! 2!3!2! 3!2!2! 2!2!2!2! etc.
Links
- Reinhard Zumkeller, Rows n = 0..13 of table, flattened
- Wikipedia, Bernoulli number: A binary tree representation
- S. C. Woon, A tree for generating Bernoulli numbers, Math. Mag., 70 (1997), 51-56.
- Index entries for sequences related to Bernoulli numbers.
Crossrefs
Programs
-
Haskell
a106831 n k = a106831_tabf !! n !! n a106831_row n = a106831_tabf !! n a106831_tabf = map (map (\(, , left, right) -> left * right)) $ iterate (concatMap (\(x, f, left, right) -> let f' = f * x in [(x + 1, f', f', right), (3, 2, 2, left * right)])) [(3, 2, 2, 1)] -- Reinhard Zumkeller, May 05 2014
-
Maple
Contribution from Peter Luschny, Jun 12 2009: (Start) The routine computes the triangle row by row and gives the numbers with their sign. Thus A(1)=[2]; A(2)=[ -6,4]; A(3)=[24,-12,-12,8]; etc. A := proc(n) local k, i, j, m, W, T; k := 2; W := array(0..2^n); W[1] := [1,`if`(n=0,1,2)]; for i from 1 to n-1 do for m from k by 2 to 2*k-1 do T := W[iquo(m,2)]; W[m] := [ -T[1],T[2]+1,seq(T[j],j=3..nops(T))]; W[m+1] := [T[1],2,seq(T[j],j=2..nops(T))]; od; k := 2*k; od; seq(W[i][1]*mul(W[i][j]!,j=2..nops(W[i])),i=iquo(k,2)..k-1) end: seq(print(A(i)),i=1..5); (End)
-
Mathematica
a [n_] := Module[{k, i, j, m, w, t}, k = 2; w = Array[0&, 2^n]; w[[1]] := {1, If[n == 0, 1, 2]}; For[i = 1, i <= n-1, i++, For[m = k, m <= 2*k-1 , m = m+2, t = w[[Quotient[m, 2]]]; w[[m]] = {-t[[1]], t[[2]]+1, Sequence @@ Table[t[[j]], {j, 3, Length[t]}]}; w[[m+1]] = {t[[1]], 2, Sequence @@ Table[t[[j]], {j, 2, Length[t]}]}]; k = 2*k]; Table[w[[i, 1]]*Product[w[[i, j]]!, {j, 2, Length[w[[i]]]}], {i, Quotient[k, 2], k-1}]]; Table[a[i] , {i, 1, 6}] // Flatten // Abs (* Jean-François Alcover, Dec 20 2013, translated from Maple *)
-
PARI
A106831off1(n) = if(!n,1, my(rl=1, m=1); while(n,if(!(n%2), rl++, m *= ((1+rl)!); rl=1); n >>= 1); (m)); A106831(n) = A106831off1(1+n); \\ Antti Karttunen, Jan 16 2019
-
PARI
A001511(n) = (1+valuation(n,2)); A106831r1(n) = if(!n,1,if(n%2, 2*A106831r1((n-1)/2), (1+A001511(n))*A106831r1(n/2))); \\ Implements the given recurrence. A106831(n) = A106831r1(1+n); \\ Antti Karttunen, Jan 16 2019
Formula
From Antti Karttunen, Jan 16 2019: (Start)
If sequence is shifted one term to the right, then the following recurrence works:
a(0) = 1; and for n > 0, a(2n) = (1+A001511(2n))*a(n), a(2n+1) = 2*a(n).
(End)
Extensions
More terms from Franklin T. Adams-Watters, Apr 28 2006
Example section reillustrated by Antti Karttunen, Jan 16 2019
Comments