The Kimberling shuffle uses a semi-infinite array of numbers in which the first row is simply the numbers 1, 2, 3, 4, 5,… Subsequent rows are generated by shuffling the previous row: the first number is the number to the right of the main diagonal of the previous row, the second is the number to the left of the main diagonal, the third is the number two slots to the right of the main diagonal, etc. When numbers run out on the left of the main diagonal, the rest of the numbers are the remaining numbers of the previous row--except for the number on the main diagonal of the previous row, which is expelled. The first few rows of the array are
1 2 3 4 5 6 7 8 9 10...
2 3 4 5 6 7 8 9 10 11...
4 2 5 6 7 8 9 10 11 12...
6 2 7 4 8 9 10 11 12 13...
8 7 9 2 10 6 11 12 13 14....
Write a function to determine the row after which the input number is expelled. For example, because 5 appears on the main diagonal of row 3, your function should return 3. An optional challenge is to determine whether all numbers are eventually expelled from the array.
Solution Stats
Problem Comments
Solution Comments
Show comments
Loading...
Problem Recent Solvers14
Suggested Problems
-
Find the longest sequence of 1's in a binary sequence.
6847 Solvers
-
Find state names that start with the letter N
1507 Solvers
-
12794 Solvers
-
Smallest distance between a point and a rectangle
280 Solvers
-
Find the sides of an isosceles triangle when given its area and height from its base to apex
2240 Solvers
More from this Author328
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!