John has a deck of 52 cards, stacked in a pile with their backs facing up. He separates the small pile consisting of the seven cards on the top of the deck, turns it upside down, and places it at the bottom of the deck. All cards are again in one pile, but not all of them face down; the seven cards at the bottom do, in fact, face up. He repeats this move until all cards have their backs facing up again. In total, how many moves did John make?
There seems to be a bug, and the answer is wrong. See later post.
All the cards need to be flipped an even number of times.
The GCD of 52 and 7 if 364, so 52 times John does this causes 364 flip of cards, each card having been flipped 7 times, which is an odd number. He has to do the procedure another 52 times to get them back to the starting position.
His move has to be made 104 times.
Computer simulation for verification:
deck0=zeros(1,52);
deck=deck0;
ct=0;
while ~isequal(deck,deck0)  (ct==0)
deck=[deck(8:52),1deck(1:7)];
ct=ct+1;
end
ct
finding
>> weirdShuffle
ct =
104
I wish MATLAB would allow testing at the bottom of a loop rather than require it be at the top.
Edited on November 29, 2020, 6:44 pm

Posted by Charlie
on 20201129 15:40:07 