A094840 a(1) = 1; for n > 1, a(n) = curling number of (b(1),...,b(n-1)), where b() = Linus sequence A006345.
1, 1, 1, 1, 2, 1, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 3, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 3, 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 3, 1, 1, 2, 2, 2, 1, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 2, 3, 1, 2, 1, 1, 2, 2, 1
Offset: 1
Keywords
Links
- F. J. van de Bult, D. C. Gijswijt, J. P. Linderman, N. J. A. Sloane and Allan Wilks, A Slow-Growing Sequence Defined by an Unusual Recurrence, J. Integer Sequences, Vol. 10 (2007), #07.1.2.
- F. J. van de Bult, D. C. Gijswijt, J. P. Linderman, N. J. A. Sloane and Allan Wilks, A Slow-Growing Sequence Defined by an Unusual Recurrence [pdf, ps].
- Index entries for sequences related to curling numbers
Programs
-
Maple
fd := fopen("b006345.txt",READ) : a006345 := [] : bf := fscanf(fd,"%d %d") : while nops(bf) <> 0 do a006345 := [op(a006345), op(2,bf) ] ; bf := fscanf(fd,"%d %d") ; od: curlN := proc(L) local a,k,klen,Llen,y ; a := 1 ; Llen := nops(L) ; for klen from 1 to floor(Llen/2) do y := op(Llen-klen+1..Llen,L) ; for k from 2 to floor(Llen/klen) do if op(Llen-k*klen+1..Llen-(k-1)*klen,L) = y then if k > a then a := k ; fi ; else break ; fi ; od: od: RETURN(a) ; end: A094840 := proc(n) global a006345 ; if n = 1 then 1; else curlN( [op(1..n-1,a006345)] ) ; fi ; end: for n from 1 to 100 do printf("%d, ",A094840(n)) ; od: # R. J. Mathar, Dec 07 2007
-
Mathematica
nmax = 100; LDS[L_] := Module[{Cands, r, m}, Cands = Range[Floor[Length[L]/2]]; r = 0; For[m = 1, Length[Cands] > 0, m++, Cands = Select[Cands, L[[-m]] == L[[-# - m]]&]; If[Min[Cands] == m, r = m; Cands = ReplaceAll[Cands, m -> Nothing]]]; r]; A = {1}; For[n = 2, n <= nmax, n++, If[LDS[Append[A, 1]] < LDS[Append[A, 2]], A = Append[A, 1], A = Append[A, 2]]]; a006345 = A; curlN[L_] := Module[{a, k, klen, Llen, y}, a = 1; Llen = Length[L]; For[klen = 1, klen <= Floor[Llen/2], klen++, y = L[[Llen - klen + 1 ;; Llen]]; For[k = 2, k <= Floor[Llen/klen], k++, If[L[[Llen - k*klen+1 ;; Llen - (k-1)*klen]] == y, If[k > a, a = k] , Break[]]]]; Return[a]]; A094840[n_] := If [n == 1, 1, curlN[a006345[[1 ;; n-1]]]]; Table[A094840[n], {n, 1, nmax}] (* Jean-François Alcover, Oct 18 2024, after Maple programs *)
Comments