The original Penny Flipping Problem (PF-1) starts with a stack of N pennies arranged with all the coins heads up. The first operation is to flip the top coin. The second operation is to take the top two coins, invert this substack, and replace the substack on the main stack. The Nth operation is to invert the entire stack. The (N+1) operation is the same as the first operation. This sequence of reversals continues until the stack is returned to an all heads up configuration. Here is the sequence for N=3, with 0 corresponding to heads up and 1 corresponding to heads down:
0 1 2 3 4 5 6 7 8 9 ------------------- 0 1 1 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 1 0
Nine operations are required to regain the all heads up configuration for N=3. The problem for PF-1 is to find the number of operations to regain all heads up, so PF-1(3) = 9.
Note: Inverting the substack performs two distinct operations on the coins. The orientations of the coins are reversed, and the positions of the coins in the substack are also exchanged across the middle of the substack.
The alternating Penny Flipping Problem (PF-2) is the same as for PF-1 except that successive operations alternate from the top and the bottom of the stack, instead of just from the top, as with PF-1. Here is the PF-2 sequence for N=3:
0 1 2 3 ------- 0 1 1 0 0 0 1 0 0 0 1 0
So PF-2(3) = 3.
Write a function that returns PF-2(N), for N a positive integer.
I have posted a plot of PF-2 for N=1:50 at this Google link:
I don't understand the first description. For me we obtain :
0 1 2 3 4 5 6
-------------
0 1 0 1 0 1 0
0 0 1 0 0 1 0
0 0 0 1 1 1 0
So so PF-1(3) = 6.
Did I miss something ?
Jean-Marie: I think the phrase, "invert the substack" is the issue. For me, this means to take the substack and invert it as a unit. The coins exchange positions in the substack as well as inverting their values. It is a single physical action that translates into two separate operations on the coins. I may have done better to write, "flip the substack as a unit."
Thank you Everett.
Now I understand the second operation, but not the Nth operation (in the example) when you invert all the stack. It's OK between steps 5 and 6 and between steps 8 and 9, but not between steps 2 and 3 (1 0 0 -> 0 1 1 ?).
Jean-Marie: The transformation between steps 2 and 3 (1 0 0 -> 1 1 0) is the same as for the one between steps 8 and 9; we are working with the entire stack of 3 coins. The first/top coin exchanges with the last/bottom coin and then all coins change their orientation.
Calculate the Levenshtein distance between two strings
319 Solvers
Back to basics 25 - Valid variable names
255 Solvers
715 Solvers
419 Solvers
Convert a vector of Integers into a matrix of binaries
54 Solvers