OFFSET
1,2
COMMENTS
The usual (first-order) Bulgarian Solitaire operation (cf. A243051) applied to an unordered integer partition means: subtract one from each part, and add a new part as large as there were parts in the old partition.
The "Second-Order Bulgarian Operation" means that after subtracting one from each part of the old partition (and discarding the parts that diminished to zero), we apply the (first-order) Bulgarian operation to the remaining partition before adding a new part as large as there were parts in the original partition.
Similarly, in "Third-Order Bulgarian Solitaire Operation", we apply the Second-Order Bulgarian operation to the remaining partition (after we have subtracted one from each part) before adding a new part as large as there were parts in the original partition.
How the partitions are encoded in this case, see A241918.
LINKS
Antti Karttunen, Table of n, a(n) for n = 1..1024
PROG
(Scheme)
(define (A243053 n) (explist->n (ascpart_to_prime-exps (bulgarian-operation-n-th-order (prime-exps_to_ascpart (primefacs->explist n)) 3))))
(define (bulgarian-operation-n-th-order ascpart n) (if (or (zero? n) (null? ascpart)) ascpart (let ((newpart (length ascpart))) (let loop ((newpartition (list)) (ascpart ascpart)) (cond ((null? ascpart) (sort (cons newpart (bulgarian-operation-n-th-order newpartition (- n 1))) <)) (else (loop (if (= 1 (car ascpart)) newpartition (cons (- (car ascpart) 1) newpartition)) (cdr ascpart))))))))
;; Other required functions and libraries, please see A243051.
CROSSREFS
Third row of A243060.
KEYWORD
nonn
AUTHOR
Antti Karttunen, May 29 2014
STATUS
approved