There are 3 pending maps:
Identifier
Mp00000:
Permutations
—topswop⟶
Permutations
Description
Reverse the block of elements at the start of the permutation which has as many elements as the first element of the permutation.
References
[1] Gardner, M. Time travel and other mathematical bewilderments MathSciNet:0905872
[2] Problems in applied mathematics MathSciNet:1086177
[3] Morales, L., Sudborough, H. A quadratic lower bound for Topswops DOI:10.1016/j.tcs.2010.08.011
[4] Pepperdine, A. 73.23 Topswops DOI:10.2307/3619674
[5] Parlett, J. Fixed Point Homing Shuffles DOI:10.46298/dmtcs.14653
[6] Komano, Y., Mizuki, T. Physical Zero-Knowledge Proof Protocols for Topswops and Botdrops DOI:10.1007/s00354-024-00272-3
[2] Problems in applied mathematics MathSciNet:1086177
[3] Morales, L., Sudborough, H. A quadratic lower bound for Topswops DOI:10.1016/j.tcs.2010.08.011
[4] Pepperdine, A. 73.23 Topswops DOI:10.2307/3619674
[5] Parlett, J. Fixed Point Homing Shuffles DOI:10.46298/dmtcs.14653
[6] Komano, Y., Mizuki, T. Physical Zero-Knowledge Proof Protocols for Topswops and Botdrops DOI:10.1007/s00354-024-00272-3
Sage code
def mapping(pi):
return pi[:pi[0]][::-1] + pi[pi[0]:]
Created
Apr 20, 2026 at 05:08 by Nathan R. Krause
Updated
Apr 20, 2026 at 05:08 by Nathan R. Krause
Identifier
Mp00000:
Permutations
—topdrop⟶
Permutations
Description
Consider the block of elements at the start of the permutation which has as many elements as the first element of the permutation. Reverse the block and move it to the end.
References
[1] Krause, N. R. The Dynamics and Orbit Structure of the Topdrop Map arXiv:2510.16679
Sage code
def mapping(pi):
return pi[pi[0]:] + pi[:pi[0]][::-1]
Properties
bijective
Created
Apr 20, 2026 at 04:28 by Nathan R. Krause
Updated
Apr 20, 2026 at 04:28 by Nathan R. Krause
Identifier
Mp00000:
Integer partitions
—Decrement the largest parts of a partition⟶
Integer partitions
Description
For partitions with the largest part > 1, we decrement all the largest parts by 1 and increment the other (largest possible) parts to obtain the resulting partition of the same number. The resulting partition may grow in length as needed.
Sage code
def increment_first_part(p,length=None):
'''
Increment the part with the smallest index `i` > 1 in partition `p` when such `i` exists.
When `length` is given it bound the length of the resulting partition. Otherwise, it may become longer than `p`.
'''
q = list(p) + [0]*(0 if length is None else length-len(p))
try:
# find smallest index i>0 such that q[i] can be incremented
i = next(i for i in range(1,len(q)) if q[i]<q[i-1])
q[i] += 1
except StopIteration:
if length is None:
# grow length of the partition
q.append(1)
return Partition(q)
def mapping(p):
if len(p)==0 or p[0]==1: return p
m0 = max(i+1 for i in range(len(p)) if p[i]==p[0]) # multiplicity of part p[0]
q = list(p)
for i in range(m0): q[i] -= 1
for i in range(m0): q = increment_first_part(q)
return Partition(q)
Created
Jul 02, 2025 at 19:45 by Max Alekseyev
Updated
Jul 02, 2025 at 19:45 by Max Alekseyev
2 Comments (hide)
Martin Rubey
4 Jul 10:30
4 Jul 10:30
Hi Max!
Do you have any reference in which context this map appears (possibly implicitly)?
Do you know of any desirable properties the map has?
I am asking, because each map comes with (a rather high) cost: each map is combined with all the other maps in all possible ways, up to a certain weight. Therefore, I want to make sure that the "best" (or "useful", "naturally occurring", etc) version of the map is added.
Max Alekseyev
7 Jul 2:39
7 Jul 2:39
This map participates is the recurrence described in my MO answer: https://mathoverflow.net/q/497101
I'm going to add the corresponding statistics and link it to this map.



20 Apr 5:12