Add files via upload

This commit is contained in:
Peter Norvig 2019-06-21 10:35:10 -07:00 committed by GitHub
parent 958a15b60a
commit 45d2a1b650
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,6 +4,8 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"<div align=\"right\"><i>Peter Norvig</i></div>\n",
"\n",
"# The Devil and the Coin Flip Game\n", "# The Devil and the Coin Flip Game\n",
"\n", "\n",
"If the Devil ever challenges me to a [fiddle contest](https://en.wikipedia.org/wiki/The_Devil_Went_Down_to_Georgia), I'm going down. But here is a contest where I'd have a better chance:\n", "If the Devil ever challenges me to a [fiddle contest](https://en.wikipedia.org/wiki/The_Devil_Went_Down_to_Georgia), I'm going down. But here is a contest where I'd have a better chance:\n",
@ -16,6 +18,8 @@
"\n", "\n",
"> *What is a shortest sequence of moves that is **guaranteed** to win, no matter what the initial state of the coins, and no matter what rotations the Devil applies?*\n", "> *What is a shortest sequence of moves that is **guaranteed** to win, no matter what the initial state of the coins, and no matter what rotations the Devil applies?*\n",
"\n", "\n",
"(This same puzzle also appeared in [The Riddler on 21 June 2019](https://fivethirtyeight.com/features/i-would-walk-500-miles-and-i-would-riddle-500-more/), with the role of the devil played by a banker. I'm not sure which is scarier.)\n",
"\n",
"# Analysis\n", "# Analysis\n",
"\n", "\n",
"- We're looking for a \"shortest sequence of moves\" that reaches a goal. That's a [shortest path search problem](https://en.wikipedia.org/wiki/Shortest_path_problem). I've done that before.\n", "- We're looking for a \"shortest sequence of moves\" that reaches a goal. That's a [shortest path search problem](https://en.wikipedia.org/wiki/Shortest_path_problem). I've done that before.\n",
@ -76,9 +80,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 2,
"metadata": { "metadata": {},
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"def all_moves() -> [Move]: \n", "def all_moves() -> [Move]: \n",
@ -237,7 +239,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"There are 16 coin sequences in the `all_coins` belief state. If we update this belief state by flipping all 4 positions, we should get a new belief state where we have eliminated the possibility of 4 tails, leaving 15 possible coin sequences:" "There are 16 coin sequences in the `all_coins` belief state. If we update this belief state by flipping all 4 positions, we should get a new belief state where we have eliminated the possibility of 4 tails (because if there had been 4 heads, you would have already won), leaving 15 possible coin sequences:"
] ]
}, },
{ {
@ -315,9 +317,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 9, "execution_count": 9,
"metadata": { "metadata": {},
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"def search(start, goal, actions, result) -> Strategy:\n", "def search(start, goal, actions, result) -> Strategy:\n",
@ -444,7 +444,7 @@
"\n", "\n",
"# Canonical Coin Sequences\n", "# Canonical Coin Sequences\n",
"\n", "\n",
"Consider these coin sequences: `{'HHHT', 'HHTH', 'HTHH', 'THHH'}`. In a sense, these are all the same: they all denote the same sequence of coins with the table rotated to different degrees. Since the devil is free to rotate the table any amount at any time, we could be justified in treating all four of these as equivalent, and collapsing them into one representative member. I will redefine `Coins` so that is stil takes an iterable of `'H'` or `'T'` characters and joins them into a `str`, but I will make it consider all possible rotations of the string and (arbitraily) choose the one that comes first in alphabetical order (which would be `'HHHT'` for the four coin sequences mentioned here)." "Consider these coin sequences: `{'HHHT', 'HHTH', 'HTHH', 'THHH'}`. In a sense, these are all the same: they all denote the same sequence of coins with the table rotated to different degrees. Since the devil is free to rotate the table any amount at any time, we could be justified in treating all four of these as equivalent, and collapsing them into one representative member. I will **redefine** `Coins` so that is stil takes an iterable of `'H'` or `'T'` characters and joins them into a `str`, but I will make it consider all possible rotations of the string and (arbitraily) choose the one that comes first in alphabetical order (which would be `'HHHT'` for the four coin sequences mentioned here)."
] ]
}, },
{ {
@ -461,9 +461,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 13, "execution_count": 13,
"metadata": { "metadata": {},
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"assert Coins('HHHT') == Coins('HHTH') == Coins('HTHH') == Coins('THHH') == 'HHHT'" "assert Coins('HHHT') == Coins('HHTH') == Coins('HTHH') == Coins('THHH') == 'HHHT'"
@ -502,7 +500,7 @@
"source": [ "source": [
"The starting belief set is down from 16 to 6, namely 4 heads, 3 heads, 2 adjacent heads, 2 opposite heads, 1 head, and no heads, respectively. \n", "The starting belief set is down from 16 to 6, namely 4 heads, 3 heads, 2 adjacent heads, 2 opposite heads, 1 head, and no heads, respectively. \n",
"\n", "\n",
"Let's make sure we didn't break anything:" "Let's make sure we didn't break anything and that we get the same 15-step solution:"
] ]
}, },
{ {
@ -553,9 +551,7 @@
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 16, "execution_count": 16,
"metadata": { "metadata": {},
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"def all_moves(N=4) -> [Move]:\n", "def all_moves(N=4) -> [Move]:\n",
@ -580,15 +576,13 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"Let's test the new definitions and make sure we haven't broken `update` and `coin_search`:" "Let's test the new definitions:"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 17, "execution_count": 17,
"metadata": { "metadata": {},
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"assert all_moves(3) == [{0, 1, 2}, {0, 1}, {0}, set()]\n", "assert all_moves(3) == [{0, 1, 2}, {0, 1}, {0}, set()]\n",
@ -663,7 +657,7 @@
"cell_type": "markdown", "cell_type": "markdown",
"metadata": {}, "metadata": {},
"source": [ "source": [
"On the one hand this is encouraging; there are only 352 canonical coin sequences of length 10, far less than the 4,096 non-canonical squences. On the other hand, it is discouraging; since we are searching over belief states, that would be 2<sup>352</sup> belief states, which is nore than a googol. However, we should be able to easily handle up to N=7, because 2<sup>20</sup> is only a million.\n", "On the one hand this is encouraging; there are only 352 canonical coin sequences of length 12, far less than the 4,096 non-canonical squences. On the other hand, it is discouraging; since we are searching over belief states, that would be 2<sup>352</sup> belief states, which is nore than a googol. However, we should be able to easily handle up to N=7, because 2<sup>20</sup> is only a million.\n",
"\n", "\n",
"# Winning Strategies for 1 to 7 Coins" "# Winning Strategies for 1 to 7 Coins"
] ]
@ -718,13 +712,12 @@
"\n", "\n",
"# A Conjecture\n", "# A Conjecture\n",
"\n", "\n",
"> For every *N* that is a power of 2, there will be a shortest winning strategy of length 2<sup>*N*</sup> - 1.\n", "- For every N that is a power of 2, there will be a shortest winning strategy of length 2<sup>N</sup> - 1.\n",
"\n", "- For every N that is not a power of 2, there will be no winning strategy. \n",
"> For every *N* that is not a power of 2, there will be no winning strategy. \n",
"\n", "\n",
"# Winning Strategy for 8 Coins\n", "# Winning Strategy for 8 Coins\n",
"\n", "\n",
"For N = 8, there are 2<sup>36</sup> = 69 billion belief states and if the conjecture is true there will be a shortest winning strategy with 255 steps. All the computations up to now have been instantaneous, but this one should take a few minutes. Let's see:" "For N = 8, there are 2<sup>36</sup> = 69 billion belief states and if the conjecture is true there will be a shortest winning strategy with 255 steps. All the computations up to now have been less than a second, but this one should take more than a minute. Let's see:"
] ]
}, },
{ {
@ -736,8 +729,8 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
"CPU times: user 1min 18s, sys: 118 ms, total: 1min 18s\n", "CPU times: user 1min 10s, sys: 119 ms, total: 1min 11s\n",
"Wall time: 1min 18s\n" "Wall time: 1min 11s\n"
] ]
} }
], ],
@ -784,25 +777,27 @@
"metadata": {}, "metadata": {},
"source": [ "source": [
"# Visualizing Strategies\n", "# Visualizing Strategies\n",
"\n",
"Can I understand what is going on by showing how belief states are whittled down?\n",
"\n" "\n"
] ]
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 22, "execution_count": 22,
"metadata": { "metadata": {},
"collapsed": true
},
"outputs": [], "outputs": [],
"source": [ "source": [
"def show(moves, N=4):\n", "def show(moves, N=4):\n",
" \"For each move, print the move number, move, and belief state.\"\n", " \"For each move, print the move number, move, and belief state.\"\n",
" belief = all_coins(N)\n", " belief = all_coins(N)\n",
" order = sorted(belief)\n", " order = sorted(belief)\n",
" def show(i, move, order=sorted(belief)):\n",
" print('{:3} | {:8} | {}'.format(i, movestr(move, N), beliefstr(belief, order)))\n",
" show(0, set())\n",
" for (i, move) in enumerate(moves, 1):\n", " for (i, move) in enumerate(moves, 1):\n",
" belief = update(belief, move)\n", " belief = update(belief, move)\n",
" print('{:3} | {:8} | {}'.format(\n", " show(i, move)\n",
" i, movestr(move, N), beliefstr(belief, order)))\n",
"\n", "\n",
"def beliefstr(belief, order) -> str: \n", "def beliefstr(belief, order) -> str: \n",
" return join(((coins if coins in belief else ' ' * len(coins))\n", " return join(((coins if coins in belief else ' ' * len(coins))\n",
@ -832,6 +827,7 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
" 0 | | HH HT TT\n",
" 1 | 01 | HH HT \n", " 1 | 01 | HH HT \n",
" 2 | 0 | HH TT\n", " 2 | 0 | HH TT\n",
" 3 | 01 | HH \n" " 3 | 01 | HH \n"
@ -851,6 +847,7 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
" 0 | | HHHH HHHT HHTT HTHT HTTT TTTT\n",
" 1 | 0123 | HHHH HHHT HHTT HTHT HTTT \n", " 1 | 0123 | HHHH HHHT HHTT HTHT HTTT \n",
" 2 | 0 2 | HHHH HHHT HHTT HTTT TTTT\n", " 2 | 0 2 | HHHH HHHT HHTT HTTT TTTT\n",
" 3 | 0123 | HHHH HHHT HHTT HTTT \n", " 3 | 0123 | HHHH HHHT HHTT HTTT \n",
@ -891,14 +888,15 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
" 1: HHTH rot: HHHT flip: 0123 => HTTT\n", " 1: HHTH rot: HTHH flip: 0123 => HTTT\n",
" 2: HTTT rot: TTTH flip: 0 2 => HHHT\n", " 2: HTTT rot: TTTH flip: 0 2 => HHHT\n",
" 3: HHHT rot: HTHH flip: 0123 => HTTT\n", " 3: HHHT rot: HHTH flip: 0123 => HTTT\n",
" 4: HTTT rot: HTTT flip: 01 => HTTT\n", " 4: HTTT rot: THTT flip: 01 => HTTT\n",
" 5: HTTT rot: TTHT flip: 0123 => HHHT\n", " 5: HTTT rot: TTHT flip: 0123 => HHHT\n",
" 6: HHHT rot: THHH flip: 0 2 => HHHT\n", " 6: HHHT rot: HTHH flip: 0 2 => HTTT\n",
" 7: HHHT rot: THHH flip: 0123 => HTTT\n", " 7: HTTT rot: HTTT flip: 0123 => HHHT\n",
" 8: HTTT rot: TTTH flip: 012 => HHHH\n" " 8: HHHT rot: HHHT flip: 012 => TTTT\n",
" 9: TTTT rot: TTTT flip: 0123 => HHHH\n"
] ]
}, },
{ {
@ -938,261 +936,158 @@
"name": "stdout", "name": "stdout",
"output_type": "stream", "output_type": "stream",
"text": [ "text": [
" 1: HTTHTTHT rot: TTHTHTTH flip: 01234567 => HHTHHTHT\n", " 1: HTTHTTHT rot: HTTHTHTT flip: 01234567 => HHTHHTHT\n",
" 2: HHTHHTHT rot: HHTHTHHT flip: 0 2 4 6 => HHHHHTTT\n", " 2: HHTHHTHT rot: HTHHTHHT flip: 0 2 4 6 => HHHTTTTT\n",
" 3: HHHHHTTT rot: TTHHHHHT flip: 01234567 => HHHTTTTT\n", " 3: HHHTTTTT rot: TTHHHTTT flip: 01234567 => HHHHHTTT\n",
" 4: HHHTTTTT rot: HTTTTTHH flip: 01 45 => HHHHTHTT\n", " 4: HHHHHTTT rot: THHHHHTT flip: 01 45 => HHTTTTHT\n",
" 5: HHHHTHTT rot: HTHTTHHH flip: 01234567 => HHTTTTHT\n", " 5: HHTTTTHT rot: THTHHTTT flip: 01234567 => HHHHTHTT\n",
" 6: HHTTTTHT rot: TTTHTHHT flip: 0 2 4 6 => HHHHTTHT\n", " 6: HHHHTHTT rot: HHTHTTHH flip: 0 2 4 6 => HHHHTTHT\n",
" 7: HHHHTTHT rot: TTHTHHHH flip: 01234567 => HHTHTTTT\n", " 7: HHHHTTHT rot: HHHTTHTH flip: 01234567 => HHTHTTTT\n",
" 8: HHTHTTTT rot: THHTHTTT flip: 012 456 => HHTHTTTT\n", " 8: HHTHTTTT rot: HTTTTHHT flip: 012 456 => HHTHTTTT\n",
" 9: HHTHTTTT rot: THHTHTTT flip: 01234567 => HHHHTTHT\n", " 9: HHTHTTTT rot: THHTHTTT flip: 01234567 => HHHHTTHT\n",
" 10: HHHHTTHT rot: TTHTHHHH flip: 0 2 4 6 => HHTTTTHT\n", " 10: HHHHTTHT rot: HTHHHHTT flip: 0 2 4 6 => HHTTTTHT\n",
" 11: HHTTTTHT rot: HTHHTTTT flip: 01234567 => HHHHTHTT\n", " 11: HHTTTTHT rot: THHTTTTH flip: 01234567 => HHHHTHTT\n",
" 12: HHHHTHTT rot: HTTHHHHT flip: 01 45 => HTHTTHTT\n", " 12: HHHHTHTT rot: THHHHTHT flip: 01 45 => HHTHHTHT\n",
" 13: HTHTTHTT rot: THTTHTTH flip: 01234567 => HHTHHTHT\n", " 13: HHTHHTHT rot: THHTHTHH flip: 01234567 => HTHTTHTT\n",
" 14: HHTHHTHT rot: THHTHTHH flip: 0 2 4 6 => HHHTTTTT\n", " 14: HTHTTHTT rot: THTTHTHT flip: 0 2 4 6 => HHHTTTTT\n",
" 15: HHHTTTTT rot: TTTTTHHH flip: 01234567 => HHHHHTTT\n", " 15: HHHTTTTT rot: TTTHHHTT flip: 01234567 => HHHHHTTT\n",
" 16: HHHHHTTT rot: HHHTTTHH flip: 0123 => HHTTTHTT\n", " 16: HHHHHTTT rot: THHHHHTT flip: 0123 => HHTTHTTT\n",
" 17: HHTTTHTT rot: HHTTTHTT flip: 01234567 => HHHTHHTT\n", " 17: HHTTHTTT rot: TTHHTTHT flip: 01234567 => HHHTTHHT\n",
" 18: HHHTHHTT rot: HHHTHHTT flip: 0 2 4 6 => HHTTHTTT\n", " 18: HHHTTHHT rot: THHTHHHT flip: 0 2 4 6 => HHTTTHTT\n",
" 19: HHTTHTTT rot: TTHTTTHH flip: 01234567 => HHHTTHHT\n", " 19: HHTTTHTT rot: TTHTTHHT flip: 01234567 => HHHTHHTT\n",
" 20: HHHTTHHT rot: HHHTTHHT flip: 01 45 => HTHTHTTT\n", " 20: HHHTHHTT rot: THHTTHHH flip: 01 45 => HHHTHTHT\n",
" 21: HTHTHTTT rot: TTHTHTHT flip: 01234567 => HHHTHTHT\n", " 21: HHHTHTHT rot: THTHHHTH flip: 01234567 => HTHTHTTT\n",
" 22: HHHTHTHT rot: HHHTHTHT flip: 0 2 4 6 => HTTTTTTT\n", " 22: HTHTHTTT rot: THTTTHTH flip: 0 2 4 6 => HHHHHHHT\n",
" 23: HTTTTTTT rot: TTTTTTTH flip: 01234567 => HHHHHHHT\n", " 23: HHHHHHHT rot: THHHHHHH flip: 01234567 => HTTTTTTT\n",
" 24: HHHHHHHT rot: HHHHHHHT flip: 012 456 => HTTTTTTT\n", " 24: HTTTTTTT rot: TTTTTTHT flip: 012 456 => HHHTHHTT\n",
" 25: HTTTTTTT rot: TTTTTHTT flip: 01234567 => HHHHHHHT\n", " 25: HHHTHHTT rot: HHTTHHHT flip: 01234567 => HHTTTHTT\n",
" 26: HHHHHHHT rot: HHHHHHHT flip: 0 2 4 6 => HTHTHTTT\n", " 26: HHTTTHTT rot: TTHHTTTH flip: 0 2 4 6 => HHHTTHHT\n",
" 27: HTHTHTTT rot: THTTTHTH flip: 01234567 => HHHTHTHT\n", " 27: HHHTTHHT rot: HTTHHTHH flip: 01234567 => HHTTHTTT\n",
" 28: HHHTHTHT rot: HHHTHTHT flip: 01 45 => HHTTTHTT\n", " 28: HHTTHTTT rot: TTTHHTTH flip: 01 45 => HHHTHTHT\n",
" 29: HHTTTHTT rot: TTHHTTTH flip: 01234567 => HHHTHHTT\n", " 29: HHHTHTHT rot: THTHHHTH flip: 01234567 => HTHTHTTT\n",
" 30: HHHTHHTT rot: TTHHHTHH flip: 0 2 4 6 => HHTTHTTT\n", " 30: HTHTHTTT rot: THTTTHTH flip: 0 2 4 6 => HHHHHHHT\n",
" 31: HHTTHTTT rot: HTTHTTTH flip: 01234567 => HHHTTHHT\n", " 31: HHHHHHHT rot: HHHHTHHH flip: 01234567 => HTTTTTTT\n",
" 32: HHHTTHHT rot: TTHHTHHH flip: 01234 6 => HHHTTHHT\n", " 32: HTTTTTTT rot: THTTTTTT flip: 01234 6 => HHHTHTHT\n",
" 33: HHHTTHHT rot: THHHTTHH flip: 01234567 => HHTTHTTT\n", " 33: HHHTHTHT rot: HTHHHTHT flip: 01234567 => HTHTHTTT\n",
" 34: HHTTHTTT rot: TTTHHTTH flip: 0 2 4 6 => HHHTHHTT\n", " 34: HTHTHTTT rot: TTHTHTHT flip: 0 2 4 6 => HTTTTTTT\n",
" 35: HHHTHHTT rot: HTTHHHTH flip: 01234567 => HHTTTHTT\n", " 35: HTTTTTTT rot: TTTTTHTT flip: 01234567 => HHHHHHHT\n",
" 36: HHTTTHTT rot: TTHHTTTH flip: 01 45 => HHHHHHHT\n", " 36: HHHHHHHT rot: HTHHHHHH flip: 01 45 => HHHTTHHT\n",
" 37: HHHHHHHT rot: HTHHHHHH flip: 01234567 => HTTTTTTT\n", " 37: HHHTTHHT rot: HHTTHHTH flip: 01234567 => HHTTHTTT\n",
" 38: HTTTTTTT rot: HTTTTTTT flip: 0 2 4 6 => HTHTHTTT\n", " 38: HHTTHTTT rot: HHTTHTTT flip: 0 2 4 6 => HHTTTHTT\n",
" 39: HTHTHTTT rot: THTHTTTH flip: 01234567 => HHHTHTHT\n", " 39: HHTTTHTT rot: TTHTTHHT flip: 01234567 => HHHTHHTT\n",
" 40: HHHTHTHT rot: HHHTHTHT flip: 012 456 => HTTTTTTT\n", " 40: HHHTHHTT rot: HHHTHHTT flip: 012 456 => HTTTTTTT\n",
" 41: HTTTTTTT rot: TTTTTTTH flip: 01234567 => HHHHHHHT\n", " 41: HTTTTTTT rot: THTTTTTT flip: 01234567 => HHHHHHHT\n",
" 42: HHHHHHHT rot: HHTHHHHH flip: 0 2 4 6 => HHHTHTHT\n", " 42: HHHHHHHT rot: HHHHHHTH flip: 0 2 4 6 => HHHTHTHT\n",
" 43: HHHTHTHT rot: HTHHHTHT flip: 01234567 => HTHTHTTT\n", " 43: HHHTHTHT rot: HTHTHHHT flip: 01234567 => HTHTHTTT\n",
" 44: HTHTHTTT rot: HTHTHTTT flip: 01 45 => HHTTHTTT\n", " 44: HTHTHTTT rot: TTHTHTHT flip: 01 45 => HHHTTHHT\n",
" 45: HHTTHTTT rot: TTHTTTHH flip: 01234567 => HHHTTHHT\n", " 45: HHHTTHHT rot: HTTHHTHH flip: 01234567 => HHTTHTTT\n",
" 46: HHHTTHHT rot: HTTHHTHH flip: 0 2 4 6 => HHTTTHTT\n", " 46: HHTTHTTT rot: TTHHTTHT flip: 0 2 4 6 => HHTTTHTT\n",
" 47: HHTTTHTT rot: THTTHHTT flip: 01234567 => HHHTHHTT\n", " 47: HHTTTHTT rot: HTTTHTTH flip: 01234567 => HHHTHHTT\n",
" 48: HHHTHHTT rot: HHTHHTTH flip: 0123 => HTHTTHTT\n", " 48: HHHTHHTT rot: THHHTHHT flip: 0123 => HHTHTTTT\n",
" 49: HTHTTHTT rot: TTHTTHTH flip: 01234567 => HHTHHTHT\n", " 49: HHTHTTTT rot: TTTHHTHT flip: 01234567 => HHHHTTHT\n",
" 50: HHTHHTHT rot: THTHHTHH flip: 0 2 4 6 => HHHHHTTT\n", " 50: HHHHTTHT rot: TTHTHHHH flip: 0 2 4 6 => HHTTTTHT\n",
" 51: HHHHHTTT rot: HTTTHHHH flip: 01234567 => HHHTTTTT\n", " 51: HHTTTTHT rot: HTHHTTTT flip: 01234567 => HHHHTHTT\n",
" 52: HHHTTTTT rot: TTHHHTTT flip: 01 45 => HHHHTHTT\n", " 52: HHHHTHTT rot: HHHTHTTH flip: 01 45 => HTHTTHTT\n",
" 53: HHHHTHTT rot: HHHHTHTT flip: 01234567 => HHTTTTHT\n", " 53: HTHTTHTT rot: THTTHTHT flip: 01234567 => HHTHHTHT\n",
" 54: HHTTTTHT rot: TTTTHTHH flip: 0 2 4 6 => HHTHTTTT\n", " 54: HHTHHTHT rot: THHTHTHH flip: 0 2 4 6 => HHHTTTTT\n",
" 55: HHTHTTTT rot: THTTTTHH flip: 01234567 => HHHHTTHT\n", " 55: HHHTTTTT rot: TTTTTHHH flip: 01234567 => HHHHHTTT\n",
" 56: HHHHTTHT rot: HHTTHTHH flip: 012 456 => HTHTTHTT\n", " 56: HHHHHTTT rot: HTTTHHHH flip: 012 456 => HHTTTTHT\n",
" 57: HTHTTHTT rot: THTTHTTH flip: 01234567 => HHTHHTHT\n", " 57: HHTTTTHT rot: TTTHTHHT flip: 01234567 => HHHHTHTT\n",
" 58: HHTHHTHT rot: HHTHTHHT flip: 0 2 4 6 => HHHHHTTT\n", " 58: HHHHTHTT rot: HHTHTTHH flip: 0 2 4 6 => HHHHTTHT\n",
" 59: HHHHHTTT rot: HHTTTHHH flip: 01234567 => HHHTTTTT\n", " 59: HHHHTTHT rot: THHHHTTH flip: 01234567 => HHTHTTTT\n",
" 60: HHHTTTTT rot: TTTTHHHT flip: 01 45 => HHTTTTHT\n", " 60: HHTHTTTT rot: HTTTTHHT flip: 01 45 => HTHTTHTT\n",
" 61: HHTTTTHT rot: HTTTTHTH flip: 01234567 => HHHHTHTT\n", " 61: HTHTTHTT rot: TTHTHTTH flip: 01234567 => HHTHHTHT\n",
" 62: HHHHTHTT rot: THHHHTHT flip: 0 2 4 6 => HHTHTTTT\n", " 62: HHTHHTHT rot: HHTHHTHT flip: 0 2 4 6 => HHHTTTTT\n",
" 63: HHTHTTTT rot: THTTTTHH flip: 01234567 => HHHHTTHT\n", " 63: HHHTTTTT rot: TTTTHHHT flip: 01234567 => HHHHHTTT\n",
" 64: HHHHTTHT rot: HHHTTHTH flip: 012345 => HHTTHTTT\n", " 64: HHHHHTTT rot: THHHHHTT flip: 012345 => HTTTTTTT\n",
" 65: HHTTHTTT rot: HTTHTTTH flip: 01234567 => HHHTTHHT\n", " 65: HTTTTTTT rot: TTTTHTTT flip: 01234567 => HHHHHHHT\n",
" 66: HHHTTHHT rot: TTHHTHHH flip: 0 2 4 6 => HHHTHHTT\n", " 66: HHHHHHHT rot: HHHHHHTH flip: 0 2 4 6 => HHHTHTHT\n",
" 67: HHHTHHTT rot: HHTHHTTH flip: 01234567 => HHTTTHTT\n", " 67: HHHTHTHT rot: HTHTHHHT flip: 01234567 => HTHTHTTT\n",
" 68: HHTTTHTT rot: THTTHHTT flip: 01 45 => HTTTTTTT\n", " 68: HTHTHTTT rot: THTHTTTH flip: 01 45 => HHHTHHTT\n",
" 69: HTTTTTTT rot: TTTTTTHT flip: 01234567 => HHHHHHHT\n", " 69: HHHTHHTT rot: TTHHHTHH flip: 01234567 => HHTTTHTT\n",
" 70: HHHHHHHT rot: HHHTHHHH flip: 0 2 4 6 => HTHTHTTT\n", " 70: HHTTTHTT rot: THTTHHTT flip: 0 2 4 6 => HHHTTHHT\n",
" 71: HTHTHTTT rot: TTHTHTHT flip: 01234567 => HHHTHTHT\n", " 71: HHHTTHHT rot: HHHTTHHT flip: 01234567 => HHTTHTTT\n",
" 72: HHHTHTHT rot: HTHHHTHT flip: 012 456 => HTHTHTTT\n", " 72: HHTTHTTT rot: THHTTHTT flip: 012 456 => HTHTHTTT\n",
" 73: HTHTHTTT rot: TTHTHTHT flip: 01234567 => HHHTHTHT\n", " 73: HTHTHTTT rot: THTHTHTT flip: 01234567 => HHHTHTHT\n",
" 74: HHHTHTHT rot: HTHTHTHH flip: 0 2 4 6 => HTTTTTTT\n", " 74: HHHTHTHT rot: HHHTHTHT flip: 0 2 4 6 => HTTTTTTT\n",
" 75: HTTTTTTT rot: TTTTHTTT flip: 01234567 => HHHHHHHT\n", " 75: HTTTTTTT rot: TTTTHTTT flip: 01234567 => HHHHHHHT\n",
" 76: HHHHHHHT rot: HHTHHHHH flip: 01 45 => HHTTTHTT\n", " 76: HHHHHHHT rot: HTHHHHHH flip: 01 45 => HHHTTHHT\n",
" 77: HHTTTHTT rot: HTTTHTTH flip: 01234567 => HHHTHHTT\n", " 77: HHHTTHHT rot: HTHHHTTH flip: 01234567 => HHTTHTTT\n",
" 78: HHHTHHTT rot: HHTTHHHT flip: 0 2 4 6 => HHTTHTTT\n", " 78: HHTTHTTT rot: TTHHTTHT flip: 0 2 4 6 => HHTTTHTT\n",
" 79: HHTTHTTT rot: HHTTHTTT flip: 01234567 => HHHTTHHT\n", " 79: HHTTTHTT rot: THHTTTHT flip: 01234567 => HHHTHHTT\n",
" 80: HHHTTHHT rot: HTHHHTTH flip: 0123 => HTHTTHTT\n", " 80: HHHTHHTT rot: HHTTHHHT flip: 0123 => HHHHHTTT\n",
" 81: HTHTTHTT rot: THTTHTTH flip: 01234567 => HHTHHTHT\n", " 81: HHHHHTTT rot: HHHHHTTT flip: 01234567 => HHHTTTTT\n",
" 82: HHTHHTHT rot: HHTHHTHT flip: 0 2 4 6 => HHHTTTTT\n", " 82: HHHTTTTT rot: TTTTTHHH flip: 0 2 4 6 => HHTHHTHT\n",
" 83: HHHTTTTT rot: TTHHHTTT flip: 01234567 => HHHHHTTT\n", " 83: HHTHHTHT rot: HHTHHTHT flip: 01234567 => HTHTTHTT\n",
" 84: HHHHHTTT rot: TTHHHHHT flip: 01 45 => HHHHTTHT\n", " 84: HTHTTHTT rot: HTHTTHTT flip: 01 45 => HHTHTTTT\n",
" 85: HHHHTTHT rot: HTTHTHHH flip: 01234567 => HHTHTTTT\n", " 85: HHTHTTTT rot: TTTHHTHT flip: 01234567 => HHHHTTHT\n",
" 86: HHTHTTTT rot: HTTTTHHT flip: 0 2 4 6 => HHTTTTHT\n", " 86: HHHHTTHT rot: HHHHTTHT flip: 0 2 4 6 => HHTTTTHT\n",
" 87: HHTTTTHT rot: TTTTHTHH flip: 01234567 => HHHHTHTT\n", " 87: HHTTTTHT rot: TTHTHHTT flip: 01234567 => HHHHTHTT\n",
" 88: HHHHTHTT rot: THHHHTHT flip: 012 456 => HTHTTHTT\n", " 88: HHHHTHTT rot: HTHTTHHH flip: 012 456 => HTHTTHTT\n",
" 89: HTHTTHTT rot: THTTHTTH flip: 01234567 => HHTHHTHT\n", " 89: HTHTTHTT rot: HTHTTHTT flip: 01234567 => HHTHHTHT\n",
" 90: HHTHHTHT rot: THTHHTHH flip: 0 2 4 6 => HHHHHTTT\n", " 90: HHTHHTHT rot: THHTHHTH flip: 0 2 4 6 => HHHHHTTT\n",
" 91: HHHHHTTT rot: TTTHHHHH flip: 01234567 => HHHTTTTT\n", " 91: HHHHHTTT rot: HHHTTTHH flip: 01234567 => HHHTTTTT\n",
" 92: HHHTTTTT rot: HHHTTTTT flip: 01 45 => HHTTTTHT\n", " 92: HHHTTTTT rot: TTTTTHHH flip: 01 45 => HHHHTTHT\n",
" 93: HHTTTTHT rot: TTHTHHTT flip: 01234567 => HHHHTHTT\n", " 93: HHHHTTHT rot: HHTTHTHH flip: 01234567 => HHTHTTTT\n",
" 94: HHHHTHTT rot: HHTHTTHH flip: 0 2 4 6 => HHHHTTHT\n", " 94: HHTHTTTT rot: THTTTTHH flip: 0 2 4 6 => HHHHTHTT\n",
" 95: HHHHTTHT rot: TTHTHHHH flip: 01234567 => HHTHTTTT\n", " 95: HHHHTHTT rot: HHHTHTTH flip: 01234567 => HHTTTTHT\n",
" 96: HHTHTTTT rot: TTHHTHTT flip: 01234 6 => HHHTHHTT\n", " 96: HHTTTTHT rot: TTTHTHHT flip: 01234 6 => HHHTHHTT\n",
" 97: HHHTHHTT rot: TTHHHTHH flip: 01234567 => HHTTTHTT\n", " 97: HHHTHHTT rot: HTTHHHTH flip: 01234567 => HHTTTHTT\n",
" 98: HHTTTHTT rot: TTHTTHHT flip: 0 2 4 6 => HHTTHTTT\n", " 98: HHTTTHTT rot: TTTHTTHH flip: 0 2 4 6 => HHHTTHHT\n",
" 99: HHTTHTTT rot: THTTTHHT flip: 01234567 => HHHTTHHT\n", " 99: HHHTTHHT rot: HHTHHHTT flip: 01234567 => HHTTHTTT\n",
" 100: HHHTTHHT rot: THHTHHHT flip: 01 45 => HTHTHTTT\n", " 100: HHTTHTTT rot: TTTHHTTH flip: 01 45 => HHHTHTHT\n",
" 101: HTHTHTTT rot: THTHTTTH flip: 01234567 => HHHTHTHT\n", " 101: HHHTHTHT rot: THHHTHTH flip: 01234567 => HTHTHTTT\n",
" 102: HHHTHTHT rot: HTHTHTHH flip: 0 2 4 6 => HTTTTTTT\n", " 102: HTHTHTTT rot: TTHTHTHT flip: 0 2 4 6 => HTTTTTTT\n",
" 103: HTTTTTTT rot: TTTTTHTT flip: 01234567 => HHHHHHHT\n", " 103: HTTTTTTT rot: TTHTTTTT flip: 01234567 => HHHHHHHT\n",
" 104: HHHHHHHT rot: HHHHHHHT flip: 012 456 => HTTTTTTT\n", " 104: HHHHHHHT rot: HHHHHHHT flip: 012 456 => HTTTTTTT\n",
" 105: HTTTTTTT rot: TTTHTTTT flip: 01234567 => HHHHHHHT\n", " 105: HTTTTTTT rot: TTHTTTTT flip: 01234567 => HHHHHHHT\n",
" 106: HHHHHHHT rot: HHHHHHHT flip: 0 2 4 6 => HTHTHTTT\n", " 106: HHHHHHHT rot: HHHHHHHT flip: 0 2 4 6 => HTHTHTTT\n",
" 107: HTHTHTTT rot: THTHTHTT flip: 01234567 => HHHTHTHT\n", " 107: HTHTHTTT rot: HTTTHTHT flip: 01234567 => HHHTHTHT\n",
" 108: HHHTHTHT rot: HTHTHTHH flip: 01 45 => HHHTHHTT\n", " 108: HHHTHTHT rot: HTHHHTHT flip: 01 45 => HHHTHHTT\n",
" 109: HHHTHHTT rot: TTHHHTHH flip: 01234567 => HHTTTHTT\n", " 109: HHHTHHTT rot: HHTHHTTH flip: 01234567 => HHTTTHTT\n",
" 110: HHTTTHTT rot: HTTTHTTH flip: 0 2 4 6 => HHTTHTTT\n", " 110: HHTTTHTT rot: TTTHTTHH flip: 0 2 4 6 => HHHTTHHT\n",
" 111: HHTTHTTT rot: TTTHHTTH flip: 01234567 => HHHTTHHT\n", " 111: HHHTTHHT rot: THHHTTHH flip: 01234567 => HHTTHTTT\n",
" 112: HHHTTHHT rot: HHHTTHHT flip: 0123 => HHTTTTHT\n", " 112: HHTTHTTT rot: HTTHTTTH flip: 0123 => HHTTTTHT\n",
" 113: HHTTTTHT rot: TTHTHHTT flip: 01234567 => HHHHTHTT\n", " 113: HHTTTTHT rot: HTTTTHTH flip: 01234567 => HHHHTHTT\n",
" 114: HHHHTHTT rot: HHTHTTHH flip: 0 2 4 6 => HHHHTTHT\n", " 114: HHHHTHTT rot: THHHHTHT flip: 0 2 4 6 => HHTHTTTT\n",
" 115: HHHHTTHT rot: HHHHTTHT flip: 01234567 => HHTHTTTT\n", " 115: HHTHTTTT rot: TTHHTHTT flip: 01234567 => HHHHTTHT\n",
" 116: HHTHTTTT rot: HTTTTHHT flip: 01 45 => HTHTTHTT\n", " 116: HHHHTTHT rot: HHHTTHTH flip: 01 45 => HTHTTHTT\n",
" 117: HTHTTHTT rot: THTHTTHT flip: 01234567 => HHTHHTHT\n", " 117: HTHTTHTT rot: HTTHTHTT flip: 01234567 => HHTHHTHT\n",
" 118: HHTHHTHT rot: HHTHHTHT flip: 0 2 4 6 => HHHTTTTT\n", " 118: HHTHHTHT rot: HTHHTHHT flip: 0 2 4 6 => HHHTTTTT\n",
" 119: HHHTTTTT rot: HHTTTTTH flip: 01234567 => HHHHHTTT\n", " 119: HHHTTTTT rot: HHHTTTTT flip: 01234567 => HHHHHTTT\n",
" 120: HHHHHTTT rot: TTTHHHHH flip: 012 456 => HHHHHTTT\n", " 120: HHHHHTTT rot: TTHHHHHT flip: 012 456 => HHTHTTTT\n",
" 121: HHHHHTTT rot: HTTTHHHH flip: 01234567 => HHHTTTTT\n", " 121: HHTHTTTT rot: TTTTHHTH flip: 01234567 => HHHHTTHT\n",
" 122: HHHTTTTT rot: HHHTTTTT flip: 0 2 4 6 => HTHTTHTT\n", " 122: HHHHTTHT rot: HHHHTTHT flip: 0 2 4 6 => HHTTTTHT\n",
" 123: HTHTTHTT rot: THTTHTHT flip: 01234567 => HHTHHTHT\n", " 123: HHTTTTHT rot: TTTTHTHH flip: 01234567 => HHHHTHTT\n",
" 124: HHTHHTHT rot: THHTHHTH flip: 01 45 => HHTHTTTT\n", " 124: HHHHTHTT rot: TTHHHHTH flip: 01 45 => HHHHHTTT\n",
" 125: HHTHTTTT rot: HHTHTTTT flip: 01234567 => HHHHTTHT\n", " 125: HHHHHTTT rot: HHHHTTTH flip: 01234567 => HHHTTTTT\n",
" 126: HHHHTTHT rot: THHHHTTH flip: 0 2 4 6 => HHHHTHTT\n", " 126: HHHTTTTT rot: TTTTTHHH flip: 0 2 4 6 => HHTHHTHT\n",
" 127: HHHHTHTT rot: THHHHTHT flip: 01234567 => HHTTTTHT\n", " 127: HHTHHTHT rot: THHTHHTH flip: 01234567 => HTHTTHTT\n",
" 128: HHTTTTHT rot: HTTTTHTH flip: 0123456 => HHHHTHHT\n", " 128: HTHTTHTT rot: HTHTTHTT flip: 0123456 => HHTHTTHT\n",
" 129: HHHHTHHT rot: THHTHHHH flip: 01234567 => HTTHTTTT\n", " 129: HHTHTTHT rot: THTHHTHT flip: 01234567 => HHTHTTHT\n",
" 130: HTTHTTTT rot: TTHTTTTH flip: 0 2 4 6 => HHHTTTHT\n", " 130: HHTHTTHT rot: TTHTHHTH flip: 0 2 4 6 => HHHHTTTT\n",
" 131: HHHTTTHT rot: THHHTTTH flip: 01234567 => HHHTHTTT\n", " 131: HHHHTTTT rot: HHHHTTTT flip: 01234567 => HHHHTTTT\n",
" 132: HHHTHTTT rot: THHHTHTT flip: 01 45 => HHHTTTHT\n", " 132: HHHHTTTT rot: THHHHTTT flip: 01 45 => HHTHTTHT\n",
" 133: HHHTTTHT rot: TTTHTHHH flip: 01234567 => HHHTHTTT\n", " 133: HHTHTTHT rot: TTHTHHTH flip: 01234567 => HHTHTTHT\n",
" 134: HHHTHTTT rot: HTTTHHHT flip: 0 2 4 6 => HTTHTTTT\n", " 134: HHTHTTHT rot: THTTHTHH flip: 0 2 4 6 => HHHHTTTT\n",
" 135: HTTHTTTT rot: TTTTHTTH flip: 01234567 => HHHHTHHT\n", " 135: HHHHTTTT rot: TTTTHHHH flip: 01234567 => HHHHTTTT\n",
" 136: HHHHTHHT rot: HHHTHHTH flip: 012 456 => HHTTTTTT\n", " 136: HHHHTTTT rot: THHHHTTT flip: 012 456 => HHTHTTHT\n",
" 137: HHTTTTTT rot: TTHHTTTT flip: 01234567 => HHHHHHTT\n", " 137: HHTHTTHT rot: TTHTHHTH flip: 01234567 => HHTHTTHT\n",
" 138: HHHHHHTT rot: HHTTHHHH flip: 0 2 4 6 => HHTTHTHT\n", " 138: HHTHTTHT rot: TTHTHHTH flip: 0 2 4 6 => HHHHTTTT\n",
" 139: HHTTHTHT rot: HTHTHHTT flip: 01234567 => HHTHTHTT\n", " 139: HHHHTTTT rot: HHTTTTHH flip: 01234567 => HHHHTTTT\n",
" 140: HHTHTHTT rot: THTTHHTH flip: 01 45 => HHTTTTTT\n", " 140: HHHHTTTT rot: TTHHHHTT flip: 01 45 => HHHHTTTT\n",
" 141: HHTTTTTT rot: TTTHHTTT flip: 01234567 => HHHHHHTT\n", " 141: HHHHTTTT rot: THHHHTTT flip: 01234567 => HHHHTTTT\n",
" 142: HHHHHHTT rot: TTHHHHHH flip: 0 2 4 6 => HHTTHTHT\n", " 142: HHHHTTTT rot: HHHHTTTT flip: 0 2 4 6 => HHTHTTHT\n",
" 143: HHTTHTHT rot: TTHTHTHH flip: 01234567 => HHTHTHTT\n", " 143: HHTHTTHT rot: THTTHTHH flip: 01234567 => HHTHTTHT\n",
" 144: HHTHTHTT rot: HTTHHTHT flip: 0123 => HHTHTHTT\n", " 144: HHTHTTHT rot: THTTHTHH flip: 0123 => HHHTHHHT\n",
" 145: HHTHTHTT rot: TTHHTHTH flip: 01234567 => HHTTHTHT\n", " 145: HHHTHHHT rot: THHHTHHH flip: 01234567 => HTTTHTTT\n",
" 146: HHTTHTHT rot: HHTTHTHT flip: 0 2 4 6 => HHTTTTTT\n", " 146: HTTTHTTT rot: THTTTHTT flip: 0 2 4 6 => HHHTHHHT\n",
" 147: HHTTTTTT rot: TTHHTTTT flip: 01234567 => HHHHHHTT\n", " 147: HHHTHHHT rot: THHHTHHH flip: 01234567 => HTTTHTTT\n",
" 148: HHHHHHTT rot: HHHHHHTT flip: 01 45 => HHTTTTTT\n", " 148: HTTTHTTT rot: TTHTTTHT flip: 01 45 => HHHTHHHT\n",
" 149: HHTTTTTT rot: TTTTHHTT flip: 01234567 => HHHHHHTT\n", " 149: HHHTHHHT rot: HHTHHHTH flip: 01234567 => HTTTHTTT\n",
" 150: HHHHHHTT rot: HHHHTTHH flip: 0 2 4 6 => HHTTHTHT\n", " 150: HTTTHTTT rot: THTTTHTT flip: 0 2 4 6 => HHHTHHHT\n",
" 151: HHTTHTHT rot: THTHHTTH flip: 01234567 => HHTHTHTT\n", " 151: HHHTHHHT rot: HHTHHHTH flip: 01234567 => HTTTHTTT\n",
" 152: HHTHTHTT rot: HHTHTHTT flip: 012 456 => HHHTHTTT\n", " 152: HTTTHTTT rot: TTTHTTTH flip: 012 456 => HHHHHHHH\n"
" 153: HHHTHTTT rot: THTTTHHH flip: 01234567 => HHHTTTHT\n",
" 154: HHHTTTHT rot: HHTTTHTH flip: 0 2 4 6 => HHHHTHHT\n",
" 155: HHHHTHHT rot: THHTHHHH flip: 01234567 => HTTHTTTT\n",
" 156: HTTHTTTT rot: TTHTTTTH flip: 01 45 => HHHHTHHT\n",
" 157: HHHHTHHT rot: HHTHHHHT flip: 01234567 => HTTHTTTT\n",
" 158: HTTHTTTT rot: TTTHTTHT flip: 0 2 4 6 => HHHTTTHT\n",
" 159: HHHTTTHT rot: HHHTTTHT flip: 01234567 => HHHTHTTT\n",
" 160: HHHTHTTT rot: TTHHHTHT flip: 01234 6 => HHTTTTTT\n",
" 161: HHTTTTTT rot: TTHHTTTT flip: 01234567 => HHHHHHTT\n",
" 162: HHHHHHTT rot: HHHHHTTH flip: 0 2 4 6 => HHTHTHTT\n",
" 163: HHTHTHTT rot: THTTHHTH flip: 01234567 => HHTTHTHT\n",
" 164: HHTTHTHT rot: TTHTHTHH flip: 01 45 => HHHHHHTT\n",
" 165: HHHHHHTT rot: HHTTHHHH flip: 01234567 => HHTTTTTT\n",
" 166: HHTTTTTT rot: HHTTTTTT flip: 0 2 4 6 => HHTHTHTT\n",
" 167: HHTHTHTT rot: THTHTTHH flip: 01234567 => HHTTHTHT\n",
" 168: HHTTHTHT rot: HTHHTTHT flip: 012 456 => HHHTTTHT\n",
" 169: HHHTTTHT rot: TTTHTHHH flip: 01234567 => HHHTHTTT\n",
" 170: HHHTHTTT rot: TTHHHTHT flip: 0 2 4 6 => HTTHTTTT\n",
" 171: HTTHTTTT rot: TTTTHTTH flip: 01234567 => HHHHTHHT\n",
" 172: HHHHTHHT rot: HTHHTHHH flip: 01 45 => HHHHTHHT\n",
" 173: HHHHTHHT rot: THHTHHHH flip: 01234567 => HTTHTTTT\n",
" 174: HTTHTTTT rot: TTHTTHTT flip: 0 2 4 6 => HHHTHTTT\n",
" 175: HHHTHTTT rot: THTTTHHH flip: 01234567 => HHHTTTHT\n",
" 176: HHHTTTHT rot: HHHTTTHT flip: 0123 => HTTHTTTT\n",
" 177: HTTHTTTT rot: TTHTTTTH flip: 01234567 => HHHHTHHT\n",
" 178: HHHHTHHT rot: HHTHHTHH flip: 0 2 4 6 => HHHTTTHT\n",
" 179: HHHTTTHT rot: HHHTTTHT flip: 01234567 => HHHTHTTT\n",
" 180: HHHTHTTT rot: TTTHHHTH flip: 01 45 => HHHTHTTT\n",
" 181: HHHTHTTT rot: HTTTHHHT flip: 01234567 => HHHTTTHT\n",
" 182: HHHTTTHT rot: HHTTTHTH flip: 0 2 4 6 => HHHHTHHT\n",
" 183: HHHHTHHT rot: THHHHTHH flip: 01234567 => HTTHTTTT\n",
" 184: HTTHTTTT rot: HTTTTHTT flip: 012 456 => HHTHTHTT\n",
" 185: HHTHTHTT rot: THHTHTHT flip: 01234567 => HHTTHTHT\n",
" 186: HHTTHTHT rot: HTTHTHTH flip: 0 2 4 6 => HHHHHHTT\n",
" 187: HHHHHHTT rot: TTHHHHHH flip: 01234567 => HHTTTTTT\n",
" 188: HHTTTTTT rot: TTTTTTHH flip: 01 45 => HHHHHHTT\n",
" 189: HHHHHHTT rot: HHHHHTTH flip: 01234567 => HHTTTTTT\n",
" 190: HHTTTTTT rot: HHTTTTTT flip: 0 2 4 6 => HHTHTHTT\n",
" 191: HHTHTHTT rot: HTHTTHHT flip: 01234567 => HHTTHTHT\n",
" 192: HHTTHTHT rot: HTHTHHTT flip: 012345 => HTHTTTTT\n",
" 193: HTHTTTTT rot: HTHTTTTT flip: 01234567 => HHHHHTHT\n",
" 194: HHHHHTHT rot: THHHHHTH flip: 0 2 4 6 => HHHHHTHT\n",
" 195: HHHHHTHT rot: HTHTHHHH flip: 01234567 => HTHTTTTT\n",
" 196: HTHTTTTT rot: TTTTHTHT flip: 01 45 => HHTHHTTT\n",
" 197: HHTHHTTT rot: HTHHTTTH flip: 01234567 => HHHTTHTT\n",
" 198: HHHTTHTT rot: HTTHHHTT flip: 0 2 4 6 => HHTHHTTT\n",
" 199: HHTHHTTT rot: THHTHHTT flip: 01234567 => HHHTTHTT\n",
" 200: HHHTTHTT rot: HTTHHHTT flip: 012 456 => HHHTTHTT\n",
" 201: HHHTTHTT rot: HHHTTHTT flip: 01234567 => HHTHHTTT\n",
" 202: HHTHHTTT rot: HTHHTTTH flip: 0 2 4 6 => HHTHHTTT\n",
" 203: HHTHHTTT rot: TTTHHTHH flip: 01234567 => HHHTTHTT\n",
" 204: HHHTTHTT rot: TTHTTHHH flip: 01 45 => HHHHHTHT\n",
" 205: HHHHHTHT rot: HHHHHTHT flip: 01234567 => HTHTTTTT\n",
" 206: HTHTTTTT rot: TTHTHTTT flip: 0 2 4 6 => HTHTTTTT\n",
" 207: HTHTTTTT rot: TTTHTHTT flip: 01234567 => HHHHHTHT\n",
" 208: HHHHHTHT rot: THHHHHTH flip: 0123 => HHTHHTTT\n",
" 209: HHTHHTTT rot: HTTTHHTH flip: 01234567 => HHHTTHTT\n",
" 210: HHHTTHTT rot: TTHHHTTH flip: 0 2 4 6 => HHHTTHTT\n",
" 211: HHHTTHTT rot: HTTHHHTT flip: 01234567 => HHTHHTTT\n",
" 212: HHTHHTTT rot: TTTHHTHH flip: 01 45 => HHHHHTHT\n",
" 213: HHHHHTHT rot: HHHHHTHT flip: 01234567 => HTHTTTTT\n",
" 214: HTHTTTTT rot: THTHTTTT flip: 0 2 4 6 => HHHHHTHT\n",
" 215: HHHHHTHT rot: THTHHHHH flip: 01234567 => HTHTTTTT\n",
" 216: HTHTTTTT rot: HTTTTTHT flip: 012 456 => HHTHHTTT\n",
" 217: HHTHHTTT rot: THHTTTHH flip: 01234567 => HHHTTHTT\n",
" 218: HHHTTHTT rot: THTTHHHT flip: 0 2 4 6 => HHHTTHTT\n",
" 219: HHHTTHTT rot: TTHTTHHH flip: 01234567 => HHTHHTTT\n",
" 220: HHTHHTTT rot: THHTHHTT flip: 01 45 => HTHTTTTT\n",
" 221: HTHTTTTT rot: TTHTHTTT flip: 01234567 => HHHHHTHT\n",
" 222: HHHHHTHT rot: HHHTHTHH flip: 0 2 4 6 => HTHTTTTT\n",
" 223: HTHTTTTT rot: TTTTHTHT flip: 01234567 => HHHHHTHT\n",
" 224: HHHHHTHT rot: THTHHHHH flip: 01234 6 => HHTHTTHT\n",
" 225: HHTHTTHT rot: HTHTTHTH flip: 01234567 => HHTHTTHT\n",
" 226: HHTHTTHT rot: HTTHTHHT flip: 0 2 4 6 => HHHHTTTT\n",
" 227: HHHHTTTT rot: HHTTTTHH flip: 01234567 => HHHHTTTT\n",
" 228: HHHHTTTT rot: TTHHHHTT flip: 01 45 => HHHHTTTT\n",
" 229: HHHHTTTT rot: TTHHHHTT flip: 01234567 => HHHHTTTT\n",
" 230: HHHHTTTT rot: TTHHHHTT flip: 0 2 4 6 => HHTHTTHT\n",
" 231: HHTHTTHT rot: HHTHTTHT flip: 01234567 => HHTHTTHT\n",
" 232: HHTHTTHT rot: HHTHTTHT flip: 012 456 => HHHHTTTT\n",
" 233: HHHHTTTT rot: TTHHHHTT flip: 01234567 => HHHHTTTT\n",
" 234: HHHHTTTT rot: TTHHHHTT flip: 0 2 4 6 => HHTHTTHT\n",
" 235: HHTHTTHT rot: TTHTHHTH flip: 01234567 => HHTHTTHT\n",
" 236: HHTHTTHT rot: THTHHTHT flip: 01 45 => HHTHTTHT\n",
" 237: HHTHTTHT rot: THTHHTHT flip: 01234567 => HHTHTTHT\n",
" 238: HHTHTTHT rot: TTHTHHTH flip: 0 2 4 6 => HHHHTTTT\n",
" 239: HHHHTTTT rot: TTTHHHHT flip: 01234567 => HHHHTTTT\n",
" 240: HHHHTTTT rot: TTTHHHHT flip: 0123 => HHHTHHHT\n",
" 241: HHHTHHHT rot: HHHTHHHT flip: 01234567 => HTTTHTTT\n",
" 242: HTTTHTTT rot: TTHTTTHT flip: 0 2 4 6 => HTTTHTTT\n",
" 243: HTTTHTTT rot: HTTTHTTT flip: 01234567 => HHHTHHHT\n",
" 244: HHHTHHHT rot: HHTHHHTH flip: 01 45 => HTTTHTTT\n",
" 245: HTTTHTTT rot: TTHTTTHT flip: 01234567 => HHHTHHHT\n",
" 246: HHHTHHHT rot: HHHTHHHT flip: 0 2 4 6 => HTTTHTTT\n",
" 247: HTTTHTTT rot: THTTTHTT flip: 01234567 => HHHTHHHT\n",
" 248: HHHTHHHT rot: HHTHHHTH flip: 012 456 => HHTTHHTT\n",
" 249: HHTTHHTT rot: HHTTHHTT flip: 01234567 => HHTTHHTT\n",
" 250: HHTTHHTT rot: HHTTHHTT flip: 0 2 4 6 => HHTTHHTT\n",
" 251: HHTTHHTT rot: HHTTHHTT flip: 01234567 => HHTTHHTT\n",
" 252: HHTTHHTT rot: THHTTHHT flip: 01 45 => HTHTHTHT\n",
" 253: HTHTHTHT rot: HTHTHTHT flip: 01234567 => HTHTHTHT\n",
" 254: HTHTHTHT rot: HTHTHTHT flip: 0 2 4 6 => TTTTTTTT\n",
" 255: TTTTTTTT rot: TTTTTTTT flip: 01234567 => HHHHHHHH\n"
] ]
}, },
{ {
@ -1227,7 +1122,7 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.5.3" "version": "3.7.2"
} }
}, },
"nbformat": 4, "nbformat": 4,