The final permutation done by the volunteer is σ
α = σ₁₀ σ₉ σ₈ σ₇ σ₆ σ₅ σ₄ σ₃ σ₂ σ₁
β = σ₂₀ σ₁₉ σ₁₈ σ₁₇ σ₁₆ σ₁₅ σ₁₄ σ₁₃ σ₁₂ σ₁₁
σ = β σₛ α
where σᵢ
are transpositions and σₛ
is the silent transposition.
Then, the magician can
choose two different numbers a
and b
in {1,2,3,4}
.
Each time the volunteer makes a "loud" transposition, the magician
does it too on his numbers.
Finally, he gets
β α (a)
and β α (b)
Then, he checks
whether the objects which were initially in positions a
and b
are now in positions β α (a)
and β α (b)
.
- If both are, that means the silent transposition didn't affect these objects. Since there are only 4 objects, the transposition affected the other two.
- If (at least) one isn't, that means it was affected by the silent transposition.
In order to achieve this, the magician must keep track of two different numbers between 1
and 4
. That's 12 possibilities, which is too much for his limited memory.
However, there is a trick (I'm not sure if this is cheating, but otherwise I think it's impossible):
he does not need to use his memory in order to keep track of a number.
For example, he can store the numbers in his own eyes and tongue, using a code like 1 = up
, 2 = right
, 3 = down
, 4 = left
.
When the volunteer says a loud transposition, the magician does this
- He retrieves the number stored in his eyes and places it in his memory
- He transforms that number according to the transposition
- He stores the new number in his eyes
- He retrieves the number stored in his tongue and places it in his memory
- He transforms that number according to the transposition
- He stores the new number in his tongue
Only one number between 1 and 4 is stored in the memory at a time.
Of course, this assumes the transposition and the conversion code do not waste memory. Otherwise, he could use his fingers to store more data.
This will work because the magician is turned around, otherwise the public would realize there is something wrong with his face: