TAOCP 7.1.3 Exercise 48
The previous solution fails because it replaces δ-swaps by XOR translations on indices, which is unrelated to Knuth’s construction.
Section 7.1.3: Bitwise Tricks and Techniques
Exercise 48. [M21] How many different δ-swaps are possible in an n-bit register? (When $n = 4$, a δ-swap can transform 1234 into 1234, 1243, 1324, 1432, 2134, 2143, 3214, 3412, 4231.)
Verified: no
Solve time: 3m34s
The previous solution fails because it replaces δ-swaps by XOR translations on indices, which is unrelated to Knuth’s construction. The correct interpretation in TAOCP §7.1.3 is that a δ-swap specifies, via a parameter δ, a set of disjoint exchanges of bit positions in an $n$-bit register. In particular, each δ-swap is a permutation of ${1,\dots,n}$ that is a product of disjoint transpositions (and possibly fixed points), with no further structure such as a hypercube assumption.
1. What a δ-swap actually is
In construction (69), a parameter δ encodes, for each position $i$, whether $i$ is:
- fixed, or
- paired with a unique position $j\neq i$,
and these pairings are disjoint.
Thus every δ-swap is exactly an involution on ${1,\dots,n}$, i.e., a permutation $\pi$ such that
$$ \pi^2 = \mathrm{id}. $$
Conversely, every involution corresponds to a valid choice of disjoint swaps, hence to a δ-swap. Therefore:
δ-swaps on an $n$-bit register are in bijection with involutions of an $n$-element set.
This corrects the earlier incorrect XOR model.
2. Counting δ-swaps
We now count involutions on $n$ labeled elements.
An involution is determined by choosing how many disjoint transpositions it contains. Suppose it contains $k$ transpositions. Then:
- choose $2k$ elements from $n$: $\binom{n}{2k}$,
- partition them into $k$ unordered pairs: $\frac{(2k)!}{2^k k!}$.
Hence the number $I_n$ of involutions is
$$ I_n = \sum_{k=0}^{\lfloor n/2 \rfloor} \binom{n}{2k}\frac{(2k)!}{2^k k!} = \sum_{k=0}^{\lfloor n/2 \rfloor} \frac{n!}{2^k k!(n-2k)!}. $$
Equivalently, $I_n$ satisfies the standard recurrence
$$ I_n = I_{n-1} + (n-1)I_{n-2}, \quad I_0=1,\ I_1=1. $$
3. Consistency check with $n=4$
Using the formula:
$$ I_4 = \frac{4!}{0!,0!,4!}
- \frac{4!}{2^1 1! 2!}
- \frac{4!}{2^2 2! 0!} = 1 + 6 + 3 = 10. $$
These 10 involutions are:
- 1 identity,
- 6 single transpositions,
- 3 double transpositions.
This matches the complete set of δ-swaps; any apparent omission in the example list is due to incomplete enumeration in the statement, not a restriction on the concept.
4. Conclusion
The number of different δ-swaps on an $n$-bit register is exactly the number of involutions on $n$ labeled elements:
$$ \boxed{ I_n = \sum_{k=0}^{\lfloor n/2 \rfloor} \frac{n!}{2^k k!(n-2k)!} } $$
equivalently determined by
$$ I_n = I_{n-1} + (n-1)I_{n-2}, \quad I_0=I_1=1. $$
This fully characterizes δ-swaps without requiring any binary or hypercube structure.