Faster Generation of Shorthand Universal Cycles for Permutations
نویسندگان
چکیده
A universal cycle for the k-permutations of 〈n〉 = {1, 2, ..., n} is a circular string of length (n)k that contains each k-permutation exactly once as a substring. Jackson (Discrete Mathematics, 149 (1996) 123–129) proved their existence for all k ≤ n − 1. Knuth (The Art of Computer Programming, Volume 4, Fascicle 2, Addison-Wesley, 2005) pointed out the importance of the k = n − 1 case, where each (n − 1)permutation is “shorthand” for exactly one permutation of 〈n〉. RuskeyWilliams (ACM Transactions on Algorithms, in press) answered Knuth’s request for an explicit construction of a shorthand universal cycle for permutations, and gave an algorithm that creates successive symbols in worst-case O(1)-time. This paper provides two new algorithmic constructions that create successive blocks of n symbols in O(1) amortized time within an array of length n. The constructions are based on: (a) an approach known to bell-ringers for over 300 years, and (b) the recent shift Gray code by Williams (SODA, (2009) 987-996). For (a), we show that the majority of changes between successive permutations are full rotations; asymptotically, the proportion of them is (n− 2)/n. 4 3 2 1 4 2 1 3 4 1 3 2 4 3 1 2 4 1 2 3 4 2 3 1 4 3 2 1 4 2 1 3 4 2 3 1 4 3 1 2 4 1 2 3 4 1 3 2 4 3 2 1 4 2 1 3 4 1 2 3 4 2 3 1 4 3 1 2 4 1 3 2 4 3 2 1 4 2 1 3 4 2 3 4 1 2 3 1 4 3 1 2 4 1 3 2 4 3 2 1 4 2 3 1 4 2 1 3 4 3 2 1 4 3 1 2 4 2 3 1
منابع مشابه
Equivalence class universal cycles for permutations
We construct a universal cycle of n-permutations using n + 1 symbols and an equivalence relation based on differences. Moreover a complete family of universal cycles of this kind is constructed.
متن کاملA Stream Cipher Based on Chaotic Permutations
In this paper we introduce a word-based stream cipher consisting of a chaotic part operating as a chaotic permutation and a linear part, both of which designed on a finite field. We will show that this system can operate in both synchronized and self-synchronized modes. More specifically, we show that in the self-synchronized mode the stream cipher has a receiver operating as an unknown input o...
متن کاملPy (Roo, åø): A Fast and Secure Stream Cipher using Rolling Arrays
Py (pronounced Roo, a shorthand for Kangaroo) is a new stream cipher designed especially for the Ecrypt stream cipher contest. It is based on a new kind of primitive, which we call Rolling Arrays. It also uses various other ideas from many types of ciphers, including variable rotations and permutations. In some sense, this design is a kind of a new type of rotor machine, which is specially desi...
متن کاملPy (Roo): A Fast and Secure Stream Cipher using Rolling Arrays
Py (pronounced Roo, a shorthand for Kangaroo) is a new stream cipher designed especially for the Ecrypt stream cipher contest. It is based on a new kind of primitive, which we call Rolling Arrays. It also uses various other ideas from many types of ciphers, including variable rotations and permutations. In some sense, this design is a kind of a new type of rotor machine, which is specially desi...
متن کاملExplicit Constructions of Universal Cycles on Partial Permutations
A k-partial permutation out of n elements is a k-tuple (p1, p2, . . . , pk) with k distinct elements and pi ∈ [n] = {1, 2, . . . , n}, i = 1, 2, . . . , k. Let (p1, p2 . . . , pn) be a full permutation of size n, where the elements are distinct and pi ∈ [n], i = 1, 2, . . . , n. Then we say the k-partial permutation (p1, p2, . . . , pk) is induced from the full permutation. A universal cycle on...
متن کامل