login
Only odd numbers occur and for all k there are k numbers between any two successive occurrences of k.
6

%I #27 Feb 17 2022 01:04:25

%S 1,3,1,5,1,3,1,7,1,3,1,9,1,3,1,7,1,3,1,11,1,3,1,7,1,3,1,13,1,3,1,7,1,

%T 3,1,15,1,3,1,7,1,3,1,17,1,3,1,7,1,3,1,15,1,3,1,7,1,3,1,19,1,3,1,7,1,

%U 3,1,15,1,3,1,7,1,3,1,21,1,3,1,7,1,3,1,15,1,3,1,7,1,3,1,23,1,3,1,7,1,3,1

%N Only odd numbers occur and for all k there are k numbers between any two successive occurrences of k.

%C Only the numbers 2^m - 1 occur more than once.

%C a(A005843(n)) = 1; a(A016813(n)) = 3; a(A004771(n)) = 7; a(A008598(n) + 35) = 15; a(A008598(n) + 155) = 31. - _Reinhard Zumkeller_, Aug 23 2009

%C A181497(n) = smallest m such that A056753(m) = 2*n + 1. - _Reinhard Zumkeller_, Oct 24 2010

%H R. Zumkeller, <a href="/A056753/b056753.txt">Table of n, a(n) for n = 0..10000</a>

%F Let x = a(n - A164632(n)), a(n) = if (x occured exactly once so far) then x+2 else x. - _Reinhard Zumkeller_, Aug 23 2009

%t a[n_] := a[n] = (ClearAll[f]; f[i_, x_, y_, z_] := f[i, x, y, z] = If[i == n, If[x == 1, a[n-z] + 2, a[n-z]], If[x == 1, If[y == 1, f[i+1, 2z, z, 2z], f[i+1, z, y-1, z]], f[i+1, x-1, y, z]]]; If[n == 0, 1, f[1, 1, 1, 1]]); Table[a[n], {n, 0, 98}] (* _Jean-François Alcover_, Dec 14 2011, after _Reinhard Zumkeller_ *)

%o (PolyML)

%o fun A056753(n) =

%o let fun f(i, x, y, z) =

%o if i = n

%o then if x = 1

%o then A056753(n - z) + 2

%o else A056753(n - z)

%o else if x = 1

%o then if y = 1

%o then f(i + 1, 2*z, z, 2*z)

%o else f(i + 1, z, y - 1, z)

%o else f(i + 1, x - 1, y, z)

%o in if n = 0

%o then 1

%o else f(1, 1, 1, 1)

%o end;

%o (* _Reinhard Zumkeller_, Feb 25 2012, Aug 23 2009 *)

%o (Magma) S:=[ 0: n in [1..100] ]; k:=1; p:=Position(S, 0, 1); while p gt 0 do for j in [p..#S by k+1] do if S[j] eq 0 then S[j]:=k; else break; end if; end for; f:=p; p:=Position(S, 0, f); k+:=2; end while; S; // _Klaus Brockhaus_, Oct 25 2010

%o (Haskell)

%o import Data.List (intercalate, group)

%o a056753 n = a056753_list !! n

%o a056753_list = [1] ++ odds [] where

%o odds xs = xs ++ (intercalate xs' $ group [y+2,y+4..2*y+1]) ++ odds xs'

%o where y = 2 * length xs + 1

%o xs' = xs ++ [y] ++ xs

%o -- _Reinhard Zumkeller_, Feb 25 2012, Oct 24 2010

%K nice,nonn,look

%O 0,2

%A Claude Lenormand (claude.lenormand(AT)free.fr), Jan 19 2001