Someone posted on the Magic Café re: an item in The Collected Works of Alex Elmsley Volume II. It’s “The Obedient Faro” on p. 346. The person was asking about the math on p. 348 that is supposed to tell you how to determine the starting position of the target card and then which sequence of OO, OI, IO or II faros to perform.

Here O = OUT Faro; I = IN Faro. So IO means an IN followed by an OUT.

The description on p. 348 is incorrect. I showed the poster how to fix things and then thought that faro shufflers on TMF might be interested. The premise is this: How to you get a card to any position in the deck using 2 faro shuffles?

The answer involves two things – 1. The starting point in the deck of the target card and 2. The sequence of In and Out Faros needed.

The good news is that you’ll always do 2 faro shuffles based on binary math. In binary (base 2) 0 = 00; 1 = 01; 2 = 10 and 3 = 11. It’s because the 2^{nd} “place value” in binary is 2 instead of 10. 45 means 4 tens and 5 ones. In binary 10 means 1 two and 0 ones. 11 means 1 two and 1 one which equals 3.

Here’s what to do:

1. Decide where you want the target card to end up. Call that N.

2. Determine how many cards will be ABOVE the target card in that position. That’s N-1. So if the target position is 36, there will be 35 cards above the target when it’s in position.

Now the math:

3. Calculate N-1 divided by 4. There will be a quotient and a remainder. For example if N-1 is 35 as in the example above, division by 4 would give you 8 with remainder 3. Let’s call 8 Q for quotient and 3 R for remainder. These two values tell you exactly what to do.

4. Position the target card at Q + 1 and then use R in binary form to determine In and Out Faros.

Example: Position desired is 36 (N) so we divide N-1 (35) by 4 getting Q = 8 and R = 3. Place the target card, say ace of spades, at Q+1 or 9^{th} from the top and then perform the binary for 3 which is II. That’s two In faros.

Example 2: Position desired is 23. Divide 23 -1 (22) by 4 getting Q = 5 and R = 2. So position AS at Q+1 =6 from the top and perform binary 2 (IO) an IN followed by an OUT. That will put the AS at 23.

Remember: R = 0 do OO; R = 1 do OI; R = 2 do IO; R = 3 do II

Not super practical but interesting.

Mike