login
Irregular table where each row lists the partitions occurring on the main trunk of the Bulgarian Solitaire game tree (from the top to the root) for deck of n(n+1)/2 cards. Nonordered partitions are encoded in the runlengths of binary expansion of each term, in the manner explained in A129594.
5

%I #26 Sep 09 2017 19:35:19

%S 0,1,5,7,6,18,61,8,11,58,28,25,77,246,66,55,36,237,226,35,46,116,197,

%T 115,102,306,985,265,445,200,155,946,905,285,220,145,475,786,925,140,

%U 185,465,395,826,460,409,1229,3942,1062,1782,1602,823,612,3789,3622,1142

%N Irregular table where each row lists the partitions occurring on the main trunk of the Bulgarian Solitaire game tree (from the top to the root) for deck of n(n+1)/2 cards. Nonordered partitions are encoded in the runlengths of binary expansion of each term, in the manner explained in A129594.

%C The terms for row n are computed as A227451(n), A226062(A227451(n)), A226062(A226062(A227451(n))), etc. until a term that is a fixed point of A226062 is reached (A037481(n)), which will be the last term of row n.

%C Row n has A002061(n) = 1,1,3,7,13,21,... terms.

%D Martin Gardner, Colossal Book of Mathematics, Chapter 34, Bulgarian Solitaire and Other Seemingly Endless Tasks, pp. 455-467, W. W. Norton & Company, 2001.

%H Antti Karttunen, <a href="/A227452/b227452.txt">Rows 0-31 of table, flattened</a>

%F For n < 2, a(n) = n, and for n>=2, if A226062(a(n-1)) = a(n-1) [in other words, when a(n-1) is one of the terms of A037481] then a(n) = A227451(A227177(n+1)), otherwise a(n) = A226062(a(n-1)).

%F Alternatively, a(n) = value of the A227179(n)-th iteration of the function A226062, starting from the initial value A227451(A227177(n)). [See the other Scheme-definition in the Program section]

%e Rows 0 - 5 of the table are:

%e 0

%e 1

%e 5, 7, 6

%e 18, 61, 8, 11, 58, 28, 25

%e 77, 246, 66, 55, 36, 237, 226, 35, 46, 116, 197, 115, 102

%e 306, 985, 265, 445, 200, 155, 946, 905, 285, 220, 145, 475, 786, 925, 140, 185, 465, 395, 826, 460, 409

%o (Scheme);; with _Antti Karttunen_'s IntSeq-library for memoizing definec-macro

%o ;; Compare with the other definition for A218616:

%o (definec (A227452 n) (cond ((< n 2) n) ((A226062 (A227452 (- n 1))) => (lambda (next) (if (= next (A227452 (- n 1))) (A227451 (A227177 (+ 1 n))) next)))))

%o ;; Alternative implementation using nested cached closures for function iteration:

%o (define (A227452 n) ((compose-A226062-to-n-th-power (A227179 n)) (A227451 (A227177 n))))

%o (definec (compose-A226062-to-n-th-power n) (cond ((zero? n) (lambda (x) x)) (else (lambda (x) (A226062 ((compose-A226062-to-n-th-power (- n 1)) x))))))

%Y Left edge A227451. Right edge: A037481. Cf. A227147 (can be computed from this sequence).

%K nonn,base,tabf

%O 0,3

%A _Antti Karttunen_, Jul 12 2013