【发布时间】:2020-05-05 03:04:56
【问题描述】:
我想使用给定的 len 按字典顺序对一个循环的排列进行排名和取消排名。
一个循环的排列是你可以在这个循环中访问每个元素的地方。
p:= (2,3,1) 是一个有一个循环的排列。排名第一。
p:= (3,1,2) 也有 1 个循环,但排名为 2,因为排列的字典顺序更大,所以它成为更大的排名。
p:= (1,2,3) 是一个有 3 个循环的排列。 (1),(2),(3)
我怎样才能有效地按字典顺序排列(用一个循环排列)和 unrank(排列 + len 用一个循环排列)?我不知道如何存档。
【问题讨论】:
标签: python arrays algorithm permutation ranking