|
|
A374993
|
|
Total cost when the elements of the n-th composition (in standard order) are requested from a self-organizing list initialized to (1, 2, 3, ...), using the transpose updating strategy.
|
|
6
|
|
|
0, 1, 2, 2, 3, 4, 3, 3, 4, 4, 3, 5, 4, 5, 4, 4, 5, 5, 6, 5, 5, 5, 6, 6, 5, 5, 4, 6, 5, 6, 5, 5, 6, 6, 6, 6, 5, 7, 7, 6, 6, 8, 4, 6, 7, 8, 7, 7, 6, 6, 7, 6, 6, 6, 7, 7, 6, 6, 5, 7, 6, 7, 6, 6, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 8, 8, 6, 8, 8, 7, 7, 8, 6, 10, 6, 6, 7
(list;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0,3
|
|
COMMENTS
|
The cost of a request equals the position of the requested element in the list.
After a request, the requested element is transposed with the immediately preceding element (unless the requested element is already at the front of the list).
|
|
REFERENCES
|
D. E. Knuth, The Art of Computer Programming, Vol. 3, 2nd edition, Addison-Wesley, 1998, pp. 401-403.
|
|
LINKS
|
|
|
FORMULA
|
The sum of a(j) over all j such that A000120(j) = k (number of requests) and A333766(j) <= m (upper bound on the requested elements) equals m^k * k * (m+1)/2. This is a consequence of the fact that the first m positions of the list are occupied by the elements 1, ..., m, as long as no element larger than m has been requested so far.
|
|
EXAMPLE
|
For n=931 (the smallest n for which A374992(n), A374994(n), A374995(n), and a(n) are all distinct), the 931st composition is (1, 1, 2, 4, 1, 1), giving the following development of the list:
list | position of requested element
--------+------------------------------
1 2 3 4 | 1
^ |
1 2 3 4 | 1
^ |
1 2 3 4 | 2
^ |
2 1 3 4 | 4
^ |
2 1 4 3 | 2
^ |
1 2 4 3 | 1
^ |
---------------------------------------
a(931) = 11
|
|
PROG
|
(Python)
def comp(n):
return
if n<1: return 0
cost, c = 0, comp(n)
m = list(range(1, max(c)+1))
for i in c:
j = m.index(i)
cost += j+1
if j > 0:
m.insert(j-1, m.pop(j))
|
|
CROSSREFS
|
|
|
KEYWORD
|
nonn
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|