edit this statistic or download as text // json
Identifier
Values
=>
0=>1 1=>1 00=>1 01=>2 10=>2 11=>3 000=>3 001=>5 010=>5 011=>7 100=>5 101=>7 110=>7 111=>11 0000=>11 0001=>15 0010=>15 0011=>15 0100=>15 0101=>7 0110=>15 0111=>30 1000=>15 1001=>15 1010=>7 1011=>30 1100=>15 1101=>30 1110=>30 1111=>42 00000=>42 00001=>56 00010=>56 00011=>45 00100=>56 00101=>32 00110=>45 00111=>67 01000=>56 01001=>32 01010=>32 01011=>34 01100=>45 01101=>34 01110=>67 01111=>135 10000=>56 10001=>45 10010=>32 10011=>67 10100=>32 10101=>34 10110=>34 10111=>135 11000=>45 11001=>67 11010=>34 11011=>135 11100=>67 11101=>135 11110=>135 11111=>176 000000=>176 000001=>231 000010=>231 000011=>185 000100=>231 000101=>87 000110=>185 000111=>214 001000=>231 001001=>25 001010=>87 001011=>80 001100=>185 001101=>65 001110=>214 001111=>322 010000=>231 010001=>87 010010=>25 010011=>65 010100=>87 010101=>26 010110=>80 010111=>133 011000=>185 011001=>80 011010=>65 011011=>35 011100=>214 011101=>133 011110=>322 011111=>627 100000=>231 100001=>185 100010=>87 100011=>214 100100=>25 100101=>80 100110=>65 100111=>322 101000=>87 101001=>65 101010=>26 101011=>133 101100=>80 101101=>35 101110=>133 101111=>627 110000=>185 110001=>214 110010=>80 110011=>322 110100=>65 110101=>133 110110=>35 110111=>627 111000=>214 111001=>322 111010=>133 111011=>627 111100=>322 111101=>627 111110=>627 111111=>792 0000000=>792 0000001=>1002 0000010=>1002 0000011=>811 0000100=>1002 0000101=>294 0000110=>811 0000111=>777 0001000=>1002 0001001=>150 0001010=>294 0001011=>336 0001100=>811 0001101=>189 0001110=>777 0001111=>1114 0010000=>1002 0010001=>150 0010010=>150 0010011=>125 0010100=>294 0010101=>148 0010110=>336 0010111=>286 0011000=>811 0011001=>125 0011010=>189 0011011=>145 0011100=>777 0011101=>255 0011110=>1114 0011111=>1637 0100000=>1002 0100001=>294 0100010=>150 0100011=>189 0100100=>150 0100101=>148 0100110=>125 0100111=>255 0101000=>294 0101001=>148 0101010=>148 0101011=>158 0101100=>336 0101101=>158 0101110=>286 0101111=>544 0110000=>811 0110001=>336 0110010=>125 0110011=>145 0110100=>189 0110101=>158 0110110=>145 0110111=>255 0111000=>777 0111001=>286 0111010=>255 0111011=>255 0111100=>1114 0111101=>544 0111110=>1637 0111111=>3010 1000000=>1002 1000001=>811 1000010=>294 1000011=>777 1000100=>150 1000101=>336 1000110=>189 1000111=>1114 1001000=>150 1001001=>125 1001010=>148 1001011=>286 1001100=>125 1001101=>145 1001110=>255 1001111=>1637 1010000=>294 1010001=>189 1010010=>148 1010011=>255 1010100=>148 1010101=>158 1010110=>158 1010111=>544 1011000=>336 1011001=>145 1011010=>158 1011011=>255 1011100=>286 1011101=>255 1011110=>544 1011111=>3010 1100000=>811 1100001=>777 1100010=>336 1100011=>1114 1100100=>125 1100101=>286 1100110=>145 1100111=>1637 1101000=>189 1101001=>255 1101010=>158 1101011=>544 1101100=>145 1101101=>255 1101110=>255 1101111=>3010 1110000=>777 1110001=>1114 1110010=>286 1110011=>1637 1110100=>255 1110101=>544 1110110=>255 1110111=>3010 1111000=>1114 1111001=>1637 1111010=>544 1111011=>3010 1111100=>1637 1111101=>3010 1111110=>3010 1111111=>3718 00000000=>3718 00000001=>4565 00000010=>4565 00000011=>3727 00000100=>4565 00000101=>1152 00000110=>3727 00000111=>3880 00001000=>4565 00001001=>500 00001010=>1152 00001011=>815 00001100=>3727 00001101=>747 00001110=>3880 00001111=>4420 00010000=>4565 00010001=>225 00010010=>500 00010011=>375 00010100=>1152 00010101=>420 00010110=>815 00010111=>1076 00011000=>3727 00011001=>360 00011010=>747 00011011=>414 00011100=>3880 00011101=>802 00011110=>4420 00011111=>5972 00100000=>4565 00100001=>500 00100010=>225 00100011=>360 00100100=>500 00100101=>245 00100110=>375 00100111=>470 00101000=>1152 00101001=>245 00101010=>420 00101011=>309 00101100=>815 00101101=>316 00101110=>1076 00101111=>1082 00110000=>3727 00110001=>375 00110010=>360 00110011=>150 00110100=>747 00110101=>295 00110110=>414 00110111=>525 00111000=>3880 00111001=>470 00111010=>802 00111011=>524 00111100=>4420 00111101=>1158 00111110=>5972 00111111=>8463 01000000=>4565 01000001=>1152 01000010=>500 01000011=>747 01000100=>225 01000101=>420 01000110=>360 01000111=>802 01001000=>500 01001001=>245 01001010=>245 01001011=>316 01001100=>375 01001101=>295 01001110=>470 01001111=>1158 01010000=>1152 01010001=>420 01010010=>245 01010011=>295 01010100=>420 01010101=>97 01010110=>309 01010111=>593 01011000=>815 01011001=>309 01011010=>316 01011011=>289 01011100=>1076 01011101=>593 01011110=>1082 01011111=>2414 01100000=>3727 01100001=>815 01100010=>375 01100011=>414 01100100=>360 01100101=>309 01100110=>150 01100111=>524 01101000=>747 01101001=>316 01101010=>295 01101011=>289 01101100=>414 01101101=>289 01101110=>525 01101111=>983 01110000=>3880 01110001=>1076 01110010=>470 01110011=>525 01110100=>802 01110101=>593 01110110=>524 01110111=>450 01111000=>4420 01111001=>1082 01111010=>1158 01111011=>983 01111100=>5972 01111101=>2414 01111110=>8463 01111111=>14883 10000000=>4565 10000001=>3727 10000010=>1152 10000011=>3880 10000100=>500 10000101=>815 10000110=>747 10000111=>4420 10001000=>225 10001001=>375 10001010=>420 10001011=>1076 10001100=>360 10001101=>414 10001110=>802 10001111=>5972 10010000=>500 10010001=>360 10010010=>245 10010011=>470 10010100=>245 10010101=>309 10010110=>316 10010111=>1082 10011000=>375 10011001=>150 10011010=>295 10011011=>525 10011100=>470 10011101=>524 10011110=>1158 10011111=>8463 10100000=>1152 10100001=>747 10100010=>420 10100011=>802 10100100=>245 10100101=>316 10100110=>295 10100111=>1158 10101000=>420 10101001=>295 10101010=>97 10101011=>593 10101100=>309 10101101=>289 10101110=>593 10101111=>2414 10110000=>815 10110001=>414 10110010=>309 10110011=>524 10110100=>316 10110101=>289 10110110=>289 10110111=>983 10111000=>1076 10111001=>525 10111010=>593 10111011=>450 10111100=>1082 10111101=>983 10111110=>2414 10111111=>14883 11000000=>3727 11000001=>3880 11000010=>815 11000011=>4420 11000100=>375 11000101=>1076 11000110=>414 11000111=>5972 11001000=>360 11001001=>470 11001010=>309 11001011=>1082 11001100=>150 11001101=>525 11001110=>524 11001111=>8463 11010000=>747 11010001=>802 11010010=>316 11010011=>1158 11010100=>295 11010101=>593 11010110=>289 11010111=>2414 11011000=>414 11011001=>524 11011010=>289 11011011=>983 11011100=>525 11011101=>450 11011110=>983 11011111=>14883 11100000=>3880 11100001=>4420 11100010=>1076 11100011=>5972 11100100=>470 11100101=>1082 11100110=>525 11100111=>8463 11101000=>802 11101001=>1158 11101010=>593 11101011=>2414 11101100=>524 11101101=>983 11101110=>450 11101111=>14883 11110000=>4420 11110001=>5972 11110010=>1082 11110011=>8463 11110100=>1158 11110101=>2414 11110110=>983 11110111=>14883 11111000=>5972 11111001=>8463 11111010=>2414 11111011=>14883 11111100=>8463 11111101=>14883 11111110=>14883 11111111=>17977 000000000=>17977
search for individual values
searching the database for the individual values of this statistic
/ search for generating function
searching the database for statistics with the same generating function
click to show known generating functions       
Description
The size of the component corresponding to a necklace in Bulgarian solitaire.
A move in Bulgarian solitaire consists of removing the first column of the Ferrers diagram and inserting it as a new row.
The connected components of the corresponding discrete dynamical system are indexed by necklaces in a natural way.
References
[1] Brandt, Jør. Cycles of partitions MathSciNet:0656129
[2] Society, pages 483–486, 1982
Code
def move(la):
    return Partition(sorted([p-1 for p in la] + [len(la)], reverse=True))

def necklace_to_partition(w):
    m = len(w)
    la = [m - i + b for i, b in enumerate(w, 1)]
    return Partition(la)

@cached_function
def components(n):
    B = DiscreteDynamicalSystem(Partitions(n), move)
    C = {frozenset(c): set(c) for c in B.cycles()}
    E = set(B).difference(*C.values())
    while E:
        e = E.pop()
        if not any(e in c for c in C.values()):
            o, k = B.orbit(e, True)
            c = frozenset(o[k:])
            r = o[:k]
            C[c].update(r)
            E.difference_update(r)
    return C

def component(la):
    la = Partition(la)
    n = la.size()
    B = DiscreteDynamicalSystem(Partitions(n), move)
    o, k = B.orbit(la, preperiod=True)
    return components(n)[frozenset(o[k:])]

def statistic(w):
    return len(component(necklace_to_partition(w)))
Created
Aug 16, 2023 at 08:53 by Martin Rubey
Updated
Aug 16, 2023 at 08:53 by Martin Rubey