Charles Explorer logo
🇬🇧

On a combinatorial generation problem of Knuth

Publication at Faculty of Mathematics and Physics |
2021

Abstract

The well-known middle levels conjecture asserts that for every integer n >= 1, all binary strings of length 2(n + 1) with exactly n + 1 many 0s and 1s can be ordered cyclically so that any two consecutive strings differ in swapping the first bit with a complementary bit at some later position. In his book 'The Art of Computer Programming Vol. 4A' Knuth raised a stronger form of this conjecture (Problem 56 in Section 7.2.1.3), which requires that the sequence of positions with which the first bit is swapped in each step of such an ordering has 2n + 1 blocks of the same length, and each block is obtained by adding s = 1 (modulo 2n+1) to the previous block.

In this work, we prove Knuth's conjecture in a more general form, allowing for arbitrary shifts s >= 1 that are coprime to 2n + 1. We also present an algorithm to compute this ordering, generating each new bitstring in O(n) time, using O(n) memory in total.