diff --git a/ipynb/Countdown.ipynb b/ipynb/Countdown.ipynb
index bf97dd4..dc61328 100644
--- a/ipynb/Countdown.ipynb
+++ b/ipynb/Countdown.ipynb
@@ -1,5 +1,12 @@
{
"cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "
Peter Norvig
5 January 2016
"
+ ]
+ },
{
"cell_type": "markdown",
"metadata": {
@@ -10,11 +17,9 @@
}
},
"source": [
- "Peter Norvig
5 January 2016
\n",
- "\n",
"# Countdown to 2016\n",
"\n",
- "Alex Bellos [posed](http://www.theguardian.com/science/2016/jan/04/can-you-solve-it-complete-the-equation-10-9-8-7-6-5-4-3-2-1-2016) this New Year's puzzle:\n",
+ "In 2016 Alex Bellos [posed](http://www.theguardian.com/science/2016/jan/04/can-you-solve-it-complete-the-equation-10-9-8-7-6-5-4-3-2-1-2016) this New Year's puzzle:\n",
"\n",
"\n",
"> Fill in the blanks so that this equation makes arithmetical sense:\n",
@@ -354,6 +359,7 @@
"execution_count": 7,
"metadata": {
"button": false,
+ "collapsed": true,
"new_sheet": false,
"run_control": {
"read_only": false
@@ -503,8 +509,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 29.1 s, sys: 713 ms, total: 29.8 s\n",
- "Wall time: 29.8 s\n"
+ "CPU times: user 30.1 s, sys: 767 ms, total: 30.9 s\n",
+ "Wall time: 31 s\n"
]
},
{
@@ -600,6 +606,7 @@
"execution_count": 12,
"metadata": {
"button": false,
+ "collapsed": true,
"new_sheet": false,
"run_control": {
"read_only": false
@@ -784,8 +791,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 1min 4s, sys: 1.12 s, total: 1min 5s\n",
- "Wall time: 1min 5s\n"
+ "CPU times: user 1min 4s, sys: 1.15 s, total: 1min 6s\n",
+ "Wall time: 1min 6s\n"
]
},
{
@@ -1024,7 +1031,7 @@
"\n",
"def expr(numbers, value, exp, count):\n",
" \"Fill EXPS[numbers][val] with exp, and increment COUNTS.\"\n",
- " if numbers == c10 and value != 2016: \n",
+ " if numbers is c10 and value != 2016: \n",
" return\n",
" EXPS[numbers][value] = exp\n",
" COUNTS[numbers][value] += count"
@@ -1058,8 +1065,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 12min 25s, sys: 1.44 s, total: 12min 26s\n",
- "Wall time: 12min 27s\n"
+ "CPU times: user 12min 43s, sys: 1.82 s, total: 12min 45s\n",
+ "Wall time: 12min 46s\n"
]
},
{
@@ -1112,7 +1119,7 @@
"- **Irrationals**: `(3 ** (1 / 2))` is an irrational number; so we can't do exact rational arithmetic.\n",
"- **Imaginaries**: `(-1 ** (1 / 2))` is an imaginary number, but Python gives a `ValueError`.\n",
"- **Overflow**: `(10. ** (9. ** 8.))`, as a `float`, gives a `OverflowError`.\n",
- "- **Finite memory**: [`(10 ** (9 ** (8 * 7)))`](http://www.wolframalpha.com/input/?i=10+%5E+9+%5E+56), as an `int`, gives an `OutOfMemoryError` (even if your memory was expanded to use every atom on Earth).\n",
+ "- **Finite memory**: [`(10 ** (9 ** (8 * 7)))`](http://www.wolframalpha.com/input/?i=10+%5E+9+%5E+56), as an `int`, gives an `OutOfMemoryError` (even if your memory uses every atom on Earth).\n",
"\n",
"How do we deal with this? We can't do exact rational arithmetic. We could try to do exact *algebra*, perhaps using [SymPy](http://www.sympy.org/en/index.html), but that seems difficult\n",
"and computationally expensive, so instead I will abandon the goal of exact computation, and do everything in the domain of floats (reluctantly accepting that there will be some round-off errors). We'll coerce numbers to floats when we first put them in the table, and all subsequent operations will be with floats. I define a new function, `expr2`, to call `expr`, catching arithmetic errors. Since we are making some rather arbitrary decisions about what expressions are allowed (e.g. imaginary numbers are not), I'll give up on trying to maintain `COUNTS`."
@@ -1123,6 +1130,7 @@
"execution_count": 23,
"metadata": {
"button": false,
+ "collapsed": true,
"new_sheet": false,
"run_control": {
"read_only": false
@@ -1218,6 +1226,7 @@
"execution_count": 25,
"metadata": {
"button": false,
+ "collapsed": true,
"new_sheet": false,
"run_control": {
"read_only": false
@@ -1356,21 +1365,21 @@
"\n",
"- **digit concatenation**: `55`\n",
"- **decimal point**: `.5`\n",
- "- **unary operations**: `5!` and √ `5`\n",
+ "- **unary operations**: `-5`, `5!` and √ `5`\n",
"\n",
"\n",
"We'll refactor `expressions` to call these three new subfunctions:\n",
"\n",
"- `digit_expressions`: For every subsequence of numbers, we'll smush the digits together, and then make a table entry for those resulting digits as an integer, and with a decimal point in each possible position.\n",
"- `binary_expressions`: The code that previously was the main body of `expressions`.\n",
- "- `unary_expressions`: Apply the unary operators to every entry in the table. (Because it applies to entries already in the table, make sure to call `unary_expressions` last.)\n",
+ "- `unary_expressions`: Apply the unary operators to every entry in the table. \n",
"\n",
"We'll still do all computation in the domain of floats."
]
},
{
"cell_type": "code",
- "execution_count": 28,
+ "execution_count": 67,
"metadata": {
"button": false,
"new_sheet": false,
@@ -1393,10 +1402,19 @@
"def digit_expressions(numbers):\n",
" \"Fill tables with expressions made from the digits of numbers, and a decimal point.\"\n",
" exp = ''.join(str(n) for n in numbers)\n",
- " expr(numbers, float(exp), exp)\n",
+ " leading_zero = exp.startswith('0')\n",
+ " if valid_digits(exp):\n",
+ " expr(numbers, float(exp), exp)\n",
+ " expr(numbers, -float(exp), '-' + exp)\n",
" for d in range(len(exp)):\n",
" decimal = exp[:d] + '.' + exp[d:]\n",
- " expr(numbers, float(decimal), decimal)\n",
+ " if valid_digits(exp[:d]):\n",
+ " expr(numbers, float(decimal), decimal)\n",
+ " expr(numbers, -float(decimal), '-' + decimal)\n",
+ " \n",
+ "def valid_digits(digits):\n",
+ " \"Allow '0', but not '012'.\"\n",
+ " return digits == '0' or digits == '' or digits[0] != '0'\n",
" \n",
"def binary_expressions(numbers):\n",
" \"Fill tables with all expressions formed by splitting numbers and combining with an op.\"\n",
@@ -1411,8 +1429,10 @@
" expr2(numbers, L, sub, R, Lexp + '-' + Rexp)\n",
" \n",
"def unary_expressions(numbers):\n",
- " for v in list(EXPS[numbers]):\n",
+ " \"Fill tables for -v, √v and v!\"\n",
+ " for v in tuple(EXPS[numbers]):\n",
" exp = EXPS[numbers][v]\n",
+ " expr(numbers, -v, '-(' + exp + ')')\n",
" if v > 0: \n",
" expr(numbers, sqrt(v), '√' + exp)\n",
" if 2 <= v <= 6 and v == int(v):\n",
@@ -1429,12 +1449,12 @@
}
},
"source": [
- "Now that we have more variety in the types of expressions formed, I want to choose a \"good\" expression to represent each value. I'll modify `expr` so that when there are multiple expressions for a value, it chooses the one with the least \"weight,\" where I define `weight` as the length of the string, plus a penalty of 1 for every square root sign (just because square root feels \"heavier\" than the other operations):"
+ "Now that we have more variety in the types of expressions formed, I want to choose a \"good\" expression to represent each value. I'll modify `expr` so that when there are multiple expressions for a value, it chooses the one with the least \"weight,\" where I define `weight` as the length of the string, plus a penalty of 2 for every square root sign (just because square root feels \"heavier\" than the other operations) and of 1 for every decimal point."
]
},
{
"cell_type": "code",
- "execution_count": 29,
+ "execution_count": 68,
"metadata": {
"button": false,
"collapsed": true,
@@ -1446,10 +1466,11 @@
"outputs": [],
"source": [
"def expr(numbers, value, exp): \n",
+ " \"Fill EXPS[numbers][val] with exp, unless we already have a lighter exp.\"\n",
" if value not in EXPS[numbers] or weight(exp) < weight(EXPS[numbers][value]):\n",
" EXPS[numbers][value] = exp\n",
" \n",
- "def weight(exp): return len(exp) + exp.count('√')"
+ "def weight(exp): return len(exp) + 2 * exp.count('√') + exp.count('.') "
]
},
{
@@ -1467,7 +1488,7 @@
},
{
"cell_type": "code",
- "execution_count": 30,
+ "execution_count": 69,
"metadata": {
"button": false,
"new_sheet": false,
@@ -1480,8 +1501,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 43.5 s, sys: 1.44 s, total: 45 s\n",
- "Wall time: 45 s\n"
+ "CPU times: user 1min 56s, sys: 2.4 s, total: 1min 59s\n",
+ "Wall time: 1min 59s\n"
]
},
{
@@ -1490,23 +1511,23 @@
"{0: '(5*(55-55))',\n",
" 1: '((55/55)**5)',\n",
" 2: '(55/(.5*55))',\n",
- " 3: '√(5!-(555/5))',\n",
+ " 3: '(5-(5!/(5+55)))',\n",
" 4: '(5-(55/55))',\n",
- " 5: '(5.55-.55)',\n",
+ " 5: '(5+(55-55))',\n",
" 6: '(5+(55/55))',\n",
" 7: '(((5+55)/5)-5)',\n",
- " 8: '(.5*(5+(55/5)))',\n",
+ " 8: '(((5!-55)/5)-5)',\n",
" 9: '(5!-(555/5))',\n",
" 10: '(5!-(55+55))',\n",
- " 11: '(5.5/(5.5-5))',\n",
+ " 11: '(5+((55/5)-5))',\n",
" 12: '(5!/(55/5.5))',\n",
" 13: '((5+(5+55))/5)',\n",
" 14: '((5*5)-(55/5))',\n",
" 15: '(5+(55/5.5))',\n",
- " 16: '(5+(5.5+5.5))',\n",
+ " 16: '(((5*5)+55)/5)',\n",
" 17: '(5+((5+55)/5))',\n",
" 18: '(5+((5!-55)/5))',\n",
- " 19: '((5*5)-(.5+5.5))',\n",
+ " 19: '((5*5)-(5+(5/5)))',\n",
" 20: '(55/(5*.55))',\n",
" 21: '(5+(5+(55/5)))',\n",
" 22: '((55+55)/5)',\n",
@@ -1515,8 +1536,8 @@
" 25: '(55-(5+(5*5)))',\n",
" 26: '(55-(5+(5!/5)))',\n",
" 27: '(.5*(55-(5/5)))',\n",
- " 28: '(.5*(.5+55.5))',\n",
- " 29: '(5+(5!/(5.5-.5)))',\n",
+ " 28: '(.5*((5/5)+55))',\n",
+ " 29: '(5+((5*5)-(5/5)))',\n",
" 30: '(5*((55/5)-5))',\n",
" 31: '(55-(5-(5/5))!)',\n",
" 32: '(55-((5!-5)/5))',\n",
@@ -1526,45 +1547,45 @@
" 36: '((5*5)+(55/5))',\n",
" 37: '((5!+(5!-55))/5)',\n",
" 38: '(5+(.5*(5!*.55)))',\n",
- " 39: '(((5*5)-5.5)/.5)',\n",
+ " 39: '(5+(5+(5+(5!/5))))',\n",
" 40: '(55-(5+(5+5)))',\n",
" 41: '(5!-((5!/5)+55))',\n",
- " 42: '((5+5.5)/(.5*.5))',\n",
+ " 42: '((5!*.55)-(5!/5))',\n",
" 43: '(55-(5!/(5+5)))',\n",
" 44: '(55-(55/5))',\n",
" 45: '((5*5!)-555)',\n",
- " 46: '(55-((5-.5)/.5))',\n",
+ " 46: '((5!+(55/.5))/5)',\n",
" 47: '((5!/5)+((5!-5)/5))',\n",
" 48: '(5!/(5*(5.5-5)))',\n",
- " 49: '(55-(.5+5.5))',\n",
+ " 49: '(55-(5+(5/5)))',\n",
" 50: '(55.5-5.5)',\n",
- " 51: '(.5+(55.5-5))',\n",
+ " 51: '((5/5)+(55-5))',\n",
" 52: '(55-(.5+(.5*5)))',\n",
- " 53: '(55.5-(.5*5))',\n",
+ " 53: '(55-((5+5)/5))',\n",
" 54: '(((5*55)-5)/5)',\n",
" 55: '(.5*(55+55))',\n",
" 56: '((5+(5*55))/5)',\n",
" 57: '(55+((5+5)/5))',\n",
" 58: '((.5*5)+55.5)',\n",
" 59: '(5+(55-(5/5)))',\n",
- " 60: '(5+(55.5-.5))',\n",
+ " 60: '(5+(5+(55-5)))',\n",
" 61: '(5.5+55.5)',\n",
" 62: '((55-(5!/5))/.5)',\n",
" 63: '(5.5+(.5*(5!-5)))',\n",
- " 64: '(5!-(.5+55.5))',\n",
- " 65: '(.5+(5!-55.5))',\n",
+ " 64: '(5!-((5/5)+55))',\n",
+ " 65: '(5*((5!-55)/5))',\n",
" 66: '(55+(55/5))',\n",
" 67: '(55+(5!/(5+5)))',\n",
" 68: '(5.5+(.5*(5+5!)))',\n",
" 69: '(5!-((.5+(5*5))/.5))',\n",
" 70: '(5+(5+(5+55)))',\n",
" 71: '((.5*5!)+(55/5))',\n",
- " 72: '((.5+5.5)!/(5+5))',\n",
- " 73: '((5*5)+(5!/(.5*5)))',\n",
+ " 72: '((5+(5/5))!/(5+5))',\n",
+ " 73: '((5*5)+((5!+5!)/5))',\n",
" 74: '((5!/5)+(55-5))',\n",
" 75: '((5*5)+(55-5))',\n",
" 76: '(5+(5+(5!*.55)))',\n",
- " 77: '(5+(.5*(5!+(5!/5))))',\n",
+ " 77: '(5+(5!-((5!+5!)/5)))',\n",
" 78: '(55+((5!-5)/5))',\n",
" 79: '(55+(5-(5/5))!)',\n",
" 80: '(5*(5+(55/5)))',\n",
@@ -1581,22 +1602,22 @@
" 91: '((5*5)+(5!*.55))',\n",
" 92: '(5!-(.5+(.5*55)))',\n",
" 93: '(.5+(5!-(.5*55)))',\n",
- " 94: '(5!-((5/5)+(5*5)))',\n",
+ " 94: '(5!-((5*5)+(5/5)))',\n",
" 95: '(((55-5)/.5)-5)',\n",
- " 96: '(5!-(5!/(5.5-.5)))',\n",
+ " 96: '(5!-((5*5)-(5/5)))',\n",
" 97: '(5!-((5!/5)-(5/5)))',\n",
" 98: '(5!-(55/(.5*5)))',\n",
" 99: '((55-5.5)/.5)',\n",
" 100: '((55/.5)-(5+5))',\n",
" 101: '((55.5-5)/.5)',\n",
" 102: '(5+(5!-((5!-5)/5)))',\n",
- " 103: '(55+(5!/(.5*5)))',\n",
+ " 103: '(55+((5!+5!)/5))',\n",
" 104: '(5!-(5+(55/5)))',\n",
" 105: '(55+(55-5))',\n",
" 106: '((555/5)-5)',\n",
" 107: '(5!-((5!-55)/5))',\n",
" 108: '(5!-((5+55)/5))',\n",
- " 109: '(5!-(5.5+5.5))',\n",
+ " 109: '(((5*5!)-55)/5)',\n",
" 110: '((555-5)/5)',\n",
" 111: '(555/√(5*5))',\n",
" 112: '((5+555)/5)',\n",
@@ -1604,39 +1625,39 @@
" 114: '(5+(5!-(55/5)))',\n",
" 115: '(5+(55+55))',\n",
" 116: '(5+(555/5))',\n",
- " 117: '(5!-(5.5-(.5*5)))',\n",
+ " 117: '(5!-(5-((5+5)/5)))',\n",
" 118: '(5!-(5!/(5+55)))',\n",
" 119: '(5!-(55/55))',\n",
- " 120: '(5.55-.55)!',\n",
+ " 120: '(5!+(55-55))',\n",
" 121: '(5!+(55/55))',\n",
" 122: '(5!+(5!/(5+55)))',\n",
- " 123: '(5!+(5.5-(.5*5)))',\n",
- " 124: '(5!+√(5+(55/5)))',\n",
+ " 123: '(5+(5!-((5+5)/5)))',\n",
+ " 124: '((5*(5*5))-(5/5))',\n",
" 125: '(.5*(5*(55-5)))',\n",
" 126: '(5!+((55/5)-5))',\n",
- " 127: '((5!/(5/5.5))-5)',\n",
- " 128: '(5!+(5.5+(.5*5)))',\n",
+ " 127: '((5!*(5.5/5))-5)',\n",
+ " 128: '(5!+(5!/(5+(5+5))))',\n",
" 129: '((5!-55.5)/.5)',\n",
" 130: '(5!+(55/5.5))',\n",
- " 131: '(5!+(5.5+5.5))',\n",
- " 132: '(5!*(.55+.55))',\n",
+ " 131: '((55+(5*5!))/5)',\n",
+ " 132: '(5!+((5+55)/5))',\n",
" 133: '(5!+((5!-55)/5))',\n",
" 134: '((5!/5)+(55/.5))',\n",
" 135: '((5!+555)/5)',\n",
" 136: '(5+(5!+(55/5)))',\n",
- " 137: '(5+(5!/(5/5.5)))',\n",
+ " 137: '(5+(5!*(5.5/5)))',\n",
" 138: '(.5+(.5*(5*55)))',\n",
- " 139: '(((.5+5.5)!/5)-5)',\n",
+ " 139: '(((5+(5/5))!/5)-5)',\n",
" 140: '(.5*(5+(5*55)))',\n",
" 141: '(5!+((5+5.5)/.5))',\n",
" 142: '(5!+(55/(.5*5)))',\n",
- " 143: '(((.5+5.5)!-5)/5)',\n",
+ " 143: '(((5+(5/5))!-5)/5)',\n",
" 144: '(((55/5)-5)!/5)',\n",
" 145: '(5!+(.5*(55-5)))',\n",
- " 146: '(5!+((5/5)+(5*5)))',\n",
+ " 146: '(5!+((5*5)+(5/5)))',\n",
" 147: '(5!+((.5*55)-.5))',\n",
" 148: '(.5+(5!+(.5*55)))',\n",
- " 149: '(5+((.5+5.5)!/5))',\n",
+ " 149: '(5+((5+(5/5))!/5))',\n",
" 150: '(5*(55-(5*5)))',\n",
" 151: '(5!+(55-(5!/5)))',\n",
" 152: '(5!+(((5+5)/5)**5))',\n",
@@ -1646,7 +1667,7 @@
" 156: '((5!+(5!*5.5))/5)'}"
]
},
- "execution_count": 30,
+ "execution_count": 69,
"metadata": {},
"output_type": "execute_result"
}
@@ -1667,7 +1688,9 @@
}
},
"source": [
- "Wow! We almost tripled the 55 goal! I have to say, I would never have come up with the solution for 81 on my own. It works because (√(5 - .5) \\* √0.5) = √(4.5 \\* 0.5) = (√2.25) = 1.5."
+ "Wow! We almost tripled the 55 goal! \n",
+ "\n",
+ "I have to say, I would never have come up with the solution for 81 on my own. It works because (√(5 - .5) \\* √.5) = √(4.5 \\* 0.5) = (√2.25) = 1.5."
]
},
{
@@ -1682,7 +1705,7 @@
"source": [
"# Even More Operations \n",
"\n",
- "At the risk of making the computation take even longer, I'm going to add two more operations:\n",
+ "At the risk of making the computation take even longer, I'm going to add two more unary operations:\n",
"\n",
"- **Floor**: ⌊*x*⌋ is the largest integer less than or equal to *x* (in other words, rounding down).\n",
"- **Ceiling**: ⌈*x*⌉ is the smallest integer greater than or equal to *x* (in other words, rounding up).\n",
@@ -1703,7 +1726,7 @@
},
{
"cell_type": "code",
- "execution_count": 31,
+ "execution_count": 70,
"metadata": {
"button": false,
"collapsed": true,
@@ -1716,15 +1739,19 @@
"source": [
"from math import floor, ceil\n",
"\n",
+ "floor_ceil_allowed = True # Should we allow floor and ceil?\n",
+ "\n",
"def unary_expressions(numbers):\n",
+ " \"Fill tables for -v, √v and v!, ⌊x⌋, and ⌈x⌉\"\n",
" for i in range(2):\n",
" for v in list(EXPS[numbers]):\n",
" exp = EXPS[numbers][v]\n",
+ " expr(numbers, -v, '-(' + exp + ')')\n",
" if 0 < v <= 100 and 4*v == round(4*v):\n",
" expr(numbers, sqrt(v), '√' + exp)\n",
" if 2 <= v <= 6 and v == round(v):\n",
" expr(numbers, factorial(v), exp + '!')\n",
- " if v != round(v):\n",
+ " if floor_ceil_allowed and v != round(v):\n",
" uexp = unbracket(exp)\n",
" expr(numbers, floor(v), '⌊' + uexp + '⌋')\n",
" expr(numbers, ceil(v), '⌈' + uexp + '⌉')\n",
@@ -1752,7 +1779,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 71,
"metadata": {
"button": false,
"new_sheet": false,
@@ -1765,72 +1792,72 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "CPU times: user 2min 25s, sys: 1.42 s, total: 2min 26s\n",
- "Wall time: 2min 26s\n"
+ "CPU times: user 6min 54s, sys: 2.69 s, total: 6min 57s\n",
+ "Wall time: 6min 58s\n"
]
},
{
"data": {
"text/plain": [
- "{0: '⌊.55555⌋',\n",
- " 1: '⌈.55555⌉',\n",
+ "{0: '⌊5/5555⌋',\n",
+ " 1: '⌈5/5555⌉',\n",
" 2: '⌊5*.5555⌋',\n",
" 3: '⌈5*.5555⌉',\n",
" 4: '⌊5-.5555⌋',\n",
" 5: '⌊5.5555⌋',\n",
" 6: '⌈5.5555⌉',\n",
" 7: '⌈.5+5.555⌉',\n",
- " 8: '⌈√55+.555⌉',\n",
- " 9: '⌊55/5.55⌋',\n",
+ " 8: '(5+⌈5*.555⌉)',\n",
+ " 9: '⌊5/.5555⌋',\n",
" 10: '⌊555/55⌋',\n",
" 11: '⌈555/55⌉',\n",
" 12: '⌈55.55/5⌉',\n",
- " 13: '⌈√5*5.555⌉',\n",
- " 14: '⌈√55/.555⌉',\n",
+ " 13: '⌊55/⌊5-.55⌋⌋',\n",
+ " 14: '(5+⌊5/.555⌋)',\n",
" 15: '(5+(55/5.5))',\n",
" 16: '(5+⌊55.5/5⌋)',\n",
" 17: '(5+⌈55.5/5⌉)',\n",
- " 18: '⌊55/⌈5*.55⌉⌋',\n",
- " 19: '⌈55/⌈5*.55⌉⌉',\n",
- " 20: '(5*⌊5-.555⌋)',\n",
+ " 18: '⌊55/⌈5!/55⌉⌋',\n",
+ " 19: '⌈55/⌈5!/55⌉⌉',\n",
+ " 20: '(5*⌊555/5!⌋)',\n",
" 21: '⌊5!/5.555⌋',\n",
- " 22: '⌈5!/5.555⌉',\n",
+ " 22: '((55+55)/5)',\n",
" 23: '⌈555/(5*5)⌉',\n",
" 24: '⌊5-.5555⌋!',\n",
- " 25: '(5*⌊5.555⌋)',\n",
- " 26: '(⌈.55*55⌉-5)',\n",
+ " 25: '(5*⌈555/5!⌉)',\n",
+ " 26: '⌈55*(55/5!)⌉',\n",
" 27: '⌊5*5.555⌋',\n",
" 28: '⌈5*5.555⌉',\n",
- " 29: '(5+⌊5-.555⌋!)',\n",
+ " 29: '(5+⌊555/5!⌋!)',\n",
" 30: '⌊55*.555⌋',\n",
" 31: '⌈55*.555⌉',\n",
" 32: '(5+⌊5*5.55⌋)',\n",
" 33: '(5+⌈5*5.55⌉)',\n",
- " 34: '⌈⌈5.5⌉*5.55⌉',\n",
+ " 34: '(55-⌊5!/5.5⌋)',\n",
" 35: '(5+⌊.55*55⌋)',\n",
" 36: '(5+⌈.55*55⌉)',\n",
" 37: '⌊5*(55/√55)⌋',\n",
- " 38: '⌊⌊√55⌋*5.55⌋',\n",
- " 39: '⌊√.5*55.55⌋',\n",
- " 40: '⌊5.5*√55.5⌋',\n",
+ " 38: '⌈5*(55/√55)⌉',\n",
+ " 39: '(55-⌊5!/√55⌋)',\n",
+ " 40: '(5*⌈55/√55⌉)',\n",
" 41: '⌊√55*5.55⌋',\n",
" 42: '⌈√55*5.55⌉',\n",
" 43: '(55-⌊5+√55⌋)',\n",
" 44: '(55-(55/5))',\n",
- " 45: '(5*⌊5/.555⌋)',\n",
+ " 45: '((5*5!)-555)',\n",
" 46: '⌊5555/5!⌋',\n",
" 47: '⌈5555/5!⌉',\n",
" 48: '⌈55-√55.5⌉',\n",
" 49: '⌊55-5.55⌋',\n",
" 50: '⌊55.55-5⌋',\n",
" 51: '⌈55.55-5⌉',\n",
- " 52: '(55-⌈5*.55⌉)',\n",
- " 53: '⌊55.55-√5⌋',\n",
+ " 52: '(55-⌈5!/55⌉)',\n",
+ " 53: '(55-⌊5!/55⌋)',\n",
" 54: '⌊55-.555⌋',\n",
" 55: '⌊55.555⌋',\n",
" 56: '⌈55.555⌉',\n",
- " 57: '⌈.5+55.55⌉',\n",
- " 58: '⌈√5+55.55⌉',\n",
+ " 57: '(55+⌊5!/55⌋)',\n",
+ " 58: '(55+⌈5!/55⌉)',\n",
" 59: '(5+⌊55-.55⌋)',\n",
" 60: '⌊5+55.55⌋',\n",
" 61: '⌈5+55.55⌉',\n",
@@ -1838,7 +1865,7 @@
" 63: '⌈√55+55.5⌉',\n",
" 64: '⌊5!-55.55⌋',\n",
" 65: '⌈5!-55.55⌉',\n",
- " 66: '⌊5!*.5555⌋',\n",
+ " 66: '(55+(55/5))',\n",
" 67: '⌈5!*.5555⌉',\n",
" 68: '(5+⌈55+√55⌉)',\n",
" 69: '⌊555/⌈√55⌉⌋',\n",
@@ -1850,17 +1877,17 @@
" 75: '⌈555/√55⌉',\n",
" 76: '(55+⌊5!/5.5⌋)',\n",
" 77: '(55+⌈5!/5.5⌉)',\n",
- " 78: '⌊55.55/√.5⌋',\n",
+ " 78: '(55+((5!-5)/5))',\n",
" 79: '⌊555/⌊√55⌋⌋',\n",
" 80: '⌊(5*5)+55.5⌋',\n",
" 81: '⌈(5*5)+55.5⌉',\n",
" 82: '(55+⌊.5*55⌋)',\n",
" 83: '(55+⌈.5*55⌉)',\n",
" 84: '(5+((5!/5)+55))',\n",
- " 85: '(5+(55+(5*5)))',\n",
- " 86: '⌊⌈5+55.5⌉/√.5⌋',\n",
+ " 85: '(5+((5*5)+55))',\n",
+ " 86: '(5!-⌈5**(5!/55)⌉)',\n",
" 87: '((555-5!)/5)',\n",
- " 88: '⌈√5**5.555⌉',\n",
+ " 88: '⌈5**(5*.555)⌉',\n",
" 89: '(5!-⌈.55*55⌉)',\n",
" 90: '⌊(55-5)/.55⌋',\n",
" 91: '⌈(55-5)/.55⌉',\n",
@@ -1868,14 +1895,14 @@
" 93: '⌈555/⌈5.5⌉⌉',\n",
" 94: '(⌊55/.55⌋-5)',\n",
" 95: '(⌈55/.55⌉-5)',\n",
- " 96: '⌊.55*(5!+55)⌋',\n",
+ " 96: '(5!-⌊555/5!⌋!)',\n",
" 97: '⌈.55*(5!+55)⌉',\n",
- " 98: '(⌊55-5.5⌋/.5)',\n",
+ " 98: '(5!-⌈5!/5.55⌉)',\n",
" 99: '⌊55/.555⌋',\n",
" 100: '⌊555/5.5⌋',\n",
" 101: '⌈555/5.5⌉',\n",
" 102: '⌈⌈55.5⌉/.55⌉',\n",
- " 103: '⌊⌊√5+55⌋/.55⌋',\n",
+ " 103: '(55+((5!+5!)/5))',\n",
" 104: '(5+⌊55/.55⌋)',\n",
" 105: '(55+(55-5))',\n",
" 106: '((555/5)-5)',\n",
@@ -1887,7 +1914,7 @@
" 112: '⌈555.5/5⌉',\n",
" 113: '(55+⌈√5+55⌉)',\n",
" 114: '⌊5!-5.555⌋',\n",
- " 115: '⌈5!-5.555⌉',\n",
+ " 115: '(5+(55+55))',\n",
" 116: '(5+(555/5))',\n",
" 117: '(5!-⌈5*.555⌉)',\n",
" 118: '(5!-⌈5.55/5⌉)',\n",
@@ -1896,20 +1923,20 @@
" 121: '⌈5!+.5555⌉',\n",
" 122: '(5!+⌈5.55/5⌉)',\n",
" 123: '⌊555/(5-.5)⌋',\n",
- " 124: '⌊√5*55.55⌋',\n",
+ " 124: '(5!+⌊555/5!⌋)',\n",
" 125: '⌊5!+5.555⌋',\n",
" 126: '⌈5!+5.555⌉',\n",
- " 127: '⌊⌊5**5.5⌋/55⌋',\n",
- " 128: '⌈⌊5**5.5⌋/55⌉',\n",
+ " 127: '⌊(5**5.5)/55⌋',\n",
+ " 128: '⌈(5**5.5)/55⌉',\n",
" 129: '(5!+⌊5/.555⌋)',\n",
- " 130: '⌊√5.5*55.5⌋',\n",
- " 131: '⌈√5.5*55.5⌉',\n",
+ " 130: '(5+⌊5!+5.55⌋)',\n",
+ " 131: '(5+⌈5!+5.55⌉)',\n",
" 132: '(5!+⌈55.5/5⌉)',\n",
" 133: '⌈55*(√55-5)⌉',\n",
- " 134: '⌊55*√⌈5.55⌉⌋',\n",
- " 135: '(5*⌊5*5.55⌋)',\n",
- " 136: '⌈√⌈5.5⌉*55.5⌉',\n",
- " 137: '⌊5.5*⌈55/√5⌉⌋',\n",
+ " 134: '⌈5!*(5.55/5)⌉',\n",
+ " 135: '((5!+555)/5)',\n",
+ " 136: '(5+(5!+(55/5)))',\n",
+ " 137: '⌊5*(55/⌊.5*5⌋)⌋',\n",
" 138: '⌊5*(5*5.55)⌋',\n",
" 139: '⌈5*(5*5.55)⌉',\n",
" 140: '(5*⌈5*5.55⌉)',\n",
@@ -1925,21 +1952,21 @@
" 150: '(5*⌊.55*55⌋)',\n",
" 151: '⌊.55*(5*55)⌋',\n",
" 152: '⌈.55*(5*55)⌉',\n",
- " 153: '⌊55*(√5+.55)⌋',\n",
+ " 153: '⌈5*(5.5+(5*5))⌉',\n",
" 154: '(5.5*⌈.5*55⌉)',\n",
" 155: '(5*⌈.55*55⌉)',\n",
- " 156: '⌈(55+55)/√.5⌉',\n",
+ " 156: '⌊555/(5*√.5)⌋',\n",
" 157: '(⌊.5*555⌋-5!)',\n",
" 158: '(⌈.5*555⌉-5!)',\n",
- " 159: '(5!+⌊√.5*55.5⌋)',\n",
- " 160: '(5*(5+⌊.5*55⌋))',\n",
+ " 159: '⌊5.5*(5+(5!/5))⌋',\n",
+ " 160: '(5+((5*55)-5!))',\n",
" 161: '⌊(.5*5)**5.55⌋',\n",
- " 162: '⌈(.5*5)**5.55⌉',\n",
+ " 162: '⌊5*(5+(.5*55))⌋',\n",
" 163: '(⌊5!/.55⌋-55)',\n",
" 164: '(⌈5!/.55⌉-55)',\n",
- " 165: '(55*⌈5*.55⌉)',\n",
- " 166: '⌊⌈.5*5⌉*55.5⌋',\n",
- " 167: '⌈⌈.5*5⌉*55.5⌉',\n",
+ " 165: '(55*⌈5!/55⌉)',\n",
+ " 166: '⌊5.5**⌈5!/55⌉⌋',\n",
+ " 167: '(5!+⌊55-√55⌋)',\n",
" 168: '(5!+⌈55-√55⌉)',\n",
" 169: '(5!+⌊55-5.5⌋)',\n",
" 170: '(5!+⌊55.5-5⌋)',\n",
@@ -1958,36 +1985,36 @@
" 183: '(⌈5.5*55⌉-5!)',\n",
" 184: '(5!+⌊5!-55.5⌋)',\n",
" 185: '(555/⌈.5*5⌉)',\n",
- " 186: '⌈555.5/⌈√5⌉⌉',\n",
+ " 186: '(5!+⌊5!*.555⌋)',\n",
" 187: '(5!+⌈5!*.555⌉)',\n",
" 188: '((⌈.5*5⌉**5)-55)',\n",
- " 189: '(⌊√55⌋*⌊.5*55⌋)',\n",
+ " 189: '⌊√(5+5)*(5+55)⌋',\n",
" 190: '(5*⌈5*√55.5⌉)',\n",
- " 191: '⌈55*√⌊5+√55⌋⌉',\n",
+ " 191: '(5+⌈5*(5*√55)⌉)',\n",
" 192: '(⌈5.55⌉/(.5**5))',\n",
- " 193: '⌊5!**(.55+.55)⌋',\n",
+ " 193: '(⌊5!/.55⌋-(5*5))',\n",
" 194: '⌊(555-5!)/√5⌋',\n",
" 195: '⌈(555-5!)/√5⌉',\n",
- " 196: '(.5*⌊√.5*555⌋)',\n",
- " 197: '⌈.5*⌈√.5*555⌉⌉',\n",
+ " 196: '⌊555/√⌈√5+5⌉⌋',\n",
+ " 197: '⌊.5*(5!+(5*55))⌋',\n",
" 198: '(⌊55/.55⌋/.5)',\n",
" 199: '⌊55/(.5*.55)⌋',\n",
- " 200: '(⌈55/.55⌉/.5)',\n",
+ " 200: '⌊555/(5-√5)⌋',\n",
" 201: '⌈555/(5-√5)⌉',\n",
" 202: '⌊555/(.5+√5)⌋',\n",
- " 203: '⌊.5*⌊55*√55⌋⌋',\n",
- " 204: '(.5*⌈55*√55⌉)',\n",
+ " 203: '⌊5!**(5.55/5)⌋',\n",
+ " 204: '⌈5!**(5.55/5)⌉',\n",
" 205: '(5*⌈5.5*√55⌉)',\n",
" 206: '⌈⌈5!-√55⌉/.55⌉',\n",
" 207: '⌊(5!-5)/.555⌋',\n",
" 208: '⌈(5!-5)/.555⌉',\n",
" 209: '(5.5*⌈5*√55⌉)',\n",
- " 210: '⌈⌈5!-5.5⌉/.55⌉',\n",
+ " 210: '((⌈5.5⌉*55)-5!)',\n",
" 211: '(⌊5!/.555⌋-5)',\n",
" 212: '(⌈5!/.555⌉-5)',\n",
- " 213: '⌈⌊5!/.55⌋-5.5⌉',\n",
+ " 213: '⌊⌈5!/.55⌉-5.5⌋',\n",
" 214: '⌈⌈5!/.55⌉-5.5⌉',\n",
- " 215: '⌊⌊5!/.555⌋-.5⌋',\n",
+ " 215: '((⌊5-.5⌋*55)-5)',\n",
" 216: '⌊5!/.5555⌋',\n",
" 217: '⌈5!/.5555⌉',\n",
" 218: '⌈.5*(555-5!)⌉',\n",
@@ -1997,15 +2024,15 @@
" 222: '(555/(.5*5))',\n",
" 223: '⌊5.5+⌊5!/.55⌋⌋',\n",
" 224: '⌊5.5+⌈5!/.55⌉⌋',\n",
- " 225: '⌊(5+5!)/.555⌋',\n",
+ " 225: '(5*(55-(5+5)))',\n",
" 226: '⌈(5+5!)/.555⌉',\n",
" 227: '⌈555/√⌈5.5⌉⌉',\n",
" 228: '(⌊5!-5.55⌋/.5)',\n",
- " 229: '⌈(5!-5.55)/.5⌉',\n",
+ " 229: '(5!+(5!-(55/5)))',\n",
" 230: '(5!+(55+55))',\n",
" 231: '(5!+(555/5))',\n",
- " 232: '⌈(5!+√55)/.55⌉',\n",
- " 233: '⌈⌈5!+√55⌉/.55⌉',\n",
+ " 232: '(5+⌊(5+5!)/.55⌋)',\n",
+ " 233: '(5+⌈(5+5!)/.55⌉)',\n",
" 234: '(5!+⌊5!-5.55⌋)',\n",
" 235: '(5*⌊55-√55⌋)',\n",
" 236: '⌊555/√5.5⌋',\n",
@@ -2014,13 +2041,13 @@
" 239: '(5!+⌊5!-.555⌋)',\n",
" 240: '(5*⌈55-√55⌉)',\n",
" 241: '(5!+⌈5!+.555⌉)',\n",
- " 242: '(⌈5!+.555⌉/.5)',\n",
+ " 242: '(⌊(5-.5)*55⌋-5)',\n",
" 243: '(⌈5*.555⌉**5)',\n",
" 244: '⌊55*(5-.55)⌋',\n",
" 245: '(5*⌊55-5.5⌋)',\n",
" 246: '⌈(555-5)/√5⌉',\n",
" 247: '⌊5*(55-5.5)⌋',\n",
- " 248: '⌊555.5/√5⌋',\n",
+ " 248: '⌈5*(55-5.5)⌉',\n",
" 249: '⌈555.5/√5⌉',\n",
" 250: '(5*⌊55.5-5⌋)',\n",
" 251: '⌈(5+555)/√5⌉',\n",
@@ -2028,17 +2055,17 @@
" 253: '⌈5*(55.5-5)⌉',\n",
" 254: '(5+⌈555/√5⌉)',\n",
" 255: '(5*⌈55.5-5⌉)',\n",
- " 256: '(⌊55*√5.5⌋/.5)',\n",
- " 257: '⌊55/(.5/√5.5)⌋',\n",
- " 258: '(⌈55*√5.5⌉/.5)',\n",
+ " 256: '(⌊5!*(5!/55)⌋-5)',\n",
+ " 257: '(⌈5!*(5!/55)⌉-5)',\n",
+ " 258: '(5!+⌈.5*(5*55)⌉)',\n",
" 259: '⌊5!/(55.5/5!)⌋',\n",
- " 260: '(5*⌊55-√5.5⌋)',\n",
- " 261: '⌈(5*.55)**5.5⌉',\n",
- " 262: '⌈555/√(5-.5)⌉',\n",
- " 263: '⌊5*(55-√5.5)⌋',\n",
- " 264: '⌈5*(55-√5.5)⌉',\n",
- " 265: '(5*⌈55-√5.5⌉)',\n",
- " 266: '⌊5*(55.5-√5)⌋',\n",
+ " 260: '⌈5!/(55.5/5!)⌉',\n",
+ " 261: '⌊555/√(5-.5)⌋',\n",
+ " 262: '⌊5*(5*(5+5.5))⌋',\n",
+ " 263: '⌈5*(5*(5+5.5))⌉',\n",
+ " 264: '(5!/(5/(55/5)))',\n",
+ " 265: '((5*55)-(5+5))',\n",
+ " 266: '(5+⌊5!*(5!/55)⌋)',\n",
" 267: '⌊(5*55)-√55⌋',\n",
" 268: '⌈(5*55)-√55⌉',\n",
" 269: '⌊(5*55)-5.5⌋',\n",
@@ -2057,23 +2084,23 @@
" 282: '(5+⌊.5*555⌋)',\n",
" 283: '(5+⌈.5*555⌉)',\n",
" 284: '⌊5*((5**5)/55)⌋',\n",
- " 285: '(5*⌊√5+55.5⌋)',\n",
- " 286: '(5.5*⌊55-√5⌋)',\n",
+ " 285: '(5+(5+(5*55)))',\n",
+ " 286: '(555-⌈√5*5!⌉)',\n",
" 287: '(555-⌊√5*5!⌋)',\n",
" 288: '(⌈55*√55⌉-5!)',\n",
- " 289: '⌈55*√(.5*55)⌉',\n",
- " 290: '(5*⌈√5+55.5⌉)',\n",
+ " 289: '⌈5*(√5+55.5)⌉',\n",
+ " 290: '(5*(⌈.5*5⌉+55))',\n",
" 291: '⌊5.5*⌈55-√5⌉⌋',\n",
" 292: '⌈5.5*⌈55-√5⌉⌉',\n",
" 293: '⌊5!*√⌈5.555⌉⌋',\n",
" 294: '⌈5!*√⌈5.555⌉⌉',\n",
- " 295: '(5!+⌊5!+55.5⌋)',\n",
+ " 295: '((5*(5+55))-5)',\n",
" 296: '(5!+⌈5!+55.5⌉)',\n",
" 297: '(⌊5.5*55⌋-5)',\n",
" 298: '(⌈5.5*55⌉-5)',\n",
- " 299: '⌊5.5*(55-.5)⌋',\n",
+ " 299: '((5!/5)+(5*55))',\n",
" 300: '(5*⌊5+55.5⌋)',\n",
- " 301: '⌊⌊5.5*55⌋-.5⌋',\n",
+ " 301: '⌊(5!+555)/√5⌋',\n",
" 302: '⌊5*(5+55.5)⌋',\n",
" 303: '⌈5*(5+55.5)⌉',\n",
" 304: '⌈.5+⌈5.5*55⌉⌉',\n",
@@ -2081,15 +2108,15 @@
" 306: '⌈.55*555⌉',\n",
" 307: '(5+⌊5.5*55⌋)',\n",
" 308: '(5+⌈5.5*55⌉)',\n",
- " 309: '(⌈(√.5+5)*55⌉-5)',\n",
+ " 309: '(⌈(5+√.5)*55⌉-5)',\n",
" 310: '(5*⌊55+√55⌋)',\n",
- " 311: '⌈(√5**5)*5.55⌉',\n",
+ " 311: '⌈5*(5*(5+√55))⌉',\n",
" 312: '⌊5*(55+√55)⌋',\n",
" 313: '⌈5*(55+√55)⌉',\n",
" 314: '⌈5.5*⌊√5+55⌋⌉',\n",
- " 315: '(5*⌈55+√55⌉)',\n",
- " 316: '⌊√(55/5.5)**5⌋',\n",
- " 317: '⌈√(55/5.5)**5⌉',\n",
+ " 315: '(555-(5!+5!))',\n",
+ " 316: '⌊.55*(5*(5!-5))⌋',\n",
+ " 317: '⌈.55*(5*(5!-5))⌉',\n",
" 318: '⌊(5!+55)/.55⌋',\n",
" 319: '⌈(5!+55)/.55⌉',\n",
" 320: '(5*⌊5!-55.5⌋)',\n",
@@ -2097,13 +2124,13 @@
" 322: '⌊5*(5!-55.5)⌋',\n",
" 323: '⌈5*(5!-55.5)⌉',\n",
" 324: '(⌈5.5⌉*⌊55-.5⌋)',\n",
- " 325: '(5*⌈5!-55.5⌉)',\n",
+ " 325: '(5*(5+(5+55)))',\n",
" 326: '⌈(5!/55)**√55⌉',\n",
" 327: '(⌈5.5⌉*(55-.5))',\n",
- " 328: '⌈.5*(55+(5*5!))⌉',\n",
- " 329: '⌊(55*⌈5.5⌉)-.5⌋',\n",
- " 330: '(55*⌈5.55⌉)',\n",
- " 331: '⌈.5+(55*⌈5.5⌉)⌉',\n",
+ " 328: '⌈.5*((5*5!)+55)⌉',\n",
+ " 329: '⌊(⌈5.5⌉*55)-.5⌋',\n",
+ " 330: '(55+(5*55))',\n",
+ " 331: '⌈.5+(⌈5.5⌉*55)⌉',\n",
" 332: '⌊.55*(5+(5*5!))⌋',\n",
" 333: '(⌈5.5⌉*55.5)',\n",
" 334: '⌈5*(5!*.555)⌉',\n",
@@ -2111,96 +2138,96 @@
" 336: '(5!+⌊5!/.555⌋)',\n",
" 337: '⌊.5*(5!+555)⌋',\n",
" 338: '⌈.5*(5!+555)⌉',\n",
- " 339: '⌊55*√⌈5*√55⌉⌋',\n",
- " 340: '⌈55*√⌈5*√55⌉⌉',\n",
+ " 339: '⌈5!*(5-(5!/55))⌉',\n",
+ " 340: '(5*⌊.55*(5+5!)⌋)',\n",
" 341: '⌊55*(√.5+5.5)⌋',\n",
- " 342: '⌈55*(√.5+5.5)⌉',\n",
+ " 342: '(⌈5.5⌉*⌊√5+55⌋)',\n",
" 343: '⌊5*(.55*(5+5!))⌋',\n",
" 344: '⌈5*(.55*(5+5!))⌉',\n",
- " 345: '(5*⌈.55*(5+5!)⌉)',\n",
- " 346: '(⌊55*√(5+5)⌋/.5)',\n",
- " 347: '⌊5!*(.55+√5.5)⌋',\n",
- " 348: '(⌈5.5⌉*⌈√5+55⌉)',\n",
+ " 345: '((5!-5)*⌈5!/55⌉)',\n",
+ " 346: '⌊√5*((5*55)-5!)⌋',\n",
+ " 347: '⌊(5**5)/⌊5/.55⌋⌋',\n",
+ " 348: '⌈(5**5)/⌊5/.55⌋⌉',\n",
" 349: '(⌊(5-.55)**5⌋/5)',\n",
- " 350: '(⌊5!+55.5⌋/.5)',\n",
+ " 350: '(5*(5+(5!-55)))',\n",
" 351: '((5!+55.5)/.5)',\n",
" 352: '(⌈5!+55.5⌉/.5)',\n",
- " 353: '⌈⌈555/√5⌉/√.5⌉',\n",
- " 354: '⌊(.5*⌈5.5⌉!)-5.5⌋',\n",
- " 355: '(5*(5+(5!*.55)))',\n",
- " 356: '⌈(55/5)**√⌈5.5⌉⌉',\n",
+ " 353: '⌈55*(√55-⌈.5⌉)⌉',\n",
+ " 354: '⌊(√5+⌈5/55⌉)**5⌋',\n",
+ " 355: '((5!*⌈5!/55⌉)-5)',\n",
+ " 356: '(⌈(5!+5!)*√55⌉/5)',\n",
" 357: '⌊5.5*(5!-55)⌋',\n",
" 358: '⌈5.5*(5!-55)⌉',\n",
- " 359: '⌊.5*⌊⌈5.55⌉!-.5⌋⌋',\n",
- " 360: '(.5*⌈5.555⌉!)',\n",
+ " 359: '⌊(5!*⌈5!/55⌉)-.5⌋',\n",
+ " 360: '(5!*⌈5*.555⌉)',\n",
" 361: '⌊(√5+5)*(55-5)⌋',\n",
- " 362: '⌊.5*(5+⌈5.55⌉!)⌋',\n",
+ " 362: '⌈(√5+5)*(55-5)⌉',\n",
" 363: '(5.5*(5!*.55))',\n",
" 364: '⌈5!*(.55*5.5)⌉',\n",
- " 365: '(5+(.5*⌈5.55⌉!))',\n",
- " 366: '(5!*(.55+(.5*5)))',\n",
- " 367: '(5!+⌊55*(5-.5)⌋)',\n",
+ " 365: '(5+(5!*⌈5!/55⌉))',\n",
+ " 366: '(5!+(5!+⌈5!+5.5⌉))',\n",
+ " 367: '(5!+⌊(5-.5)*55⌋)',\n",
" 368: '(5!+⌊555/√5⌋)',\n",
" 369: '(5!+⌈555/√5⌉)',\n",
" 370: '⌊√55*(55-5)⌋',\n",
" 371: '⌈√55*(55-5)⌉',\n",
" 372: '(55+⌈√(5+5)**5⌉)',\n",
- " 373: '⌊55*√⌈5.5**√5⌉⌋',\n",
- " 374: '⌈55*√⌈5.5**√5⌉⌉',\n",
- " 375: '(5*⌈(5+5)*√55⌉)',\n",
+ " 373: '⌈(5-√⌈5!/55⌉)**5⌉',\n",
+ " 374: '(5+(⌊(5-.5)**5⌋/5))',\n",
+ " 375: '((5+5!)*⌈5!/55⌉)',\n",
" 376: '(55+⌊⌈5.5⌉!/√5⌋)',\n",
" 377: '(55+⌈⌈5.5⌉!/√5⌉)',\n",
" 378: '(⌊√55⌋*⌊55-.5⌋)',\n",
" 379: '⌊5!*√(55/5.5)⌋',\n",
- " 380: '⌊55*(√55-.5)⌋',\n",
- " 381: '⌈55*(√55-.5)⌉',\n",
+ " 380: '((⌊√55⌋*55)-5)',\n",
+ " 381: '⌊55**(√55/5)⌋',\n",
" 382: '⌈55**(√55/5)⌉',\n",
" 383: '(5!+⌊5*(55-√5)⌋)',\n",
- " 384: '⌊(55*⌊√55⌋)-.5⌋',\n",
+ " 384: '(5!+⌈5*(55-√5)⌉)',\n",
" 385: '(55*⌊√55.5⌋)',\n",
" 386: '(555-⌊5!/√.5⌋)',\n",
" 387: '(⌊√.5*555⌋-5)',\n",
- " 388: '⌊⌊√55⌋*55.5⌋',\n",
- " 389: '⌈⌊√55⌋*55.5⌉',\n",
- " 390: '(5*⌊55.5/√.5⌋)',\n",
- " 391: '⌊⌊√.5*555⌋-.5⌋',\n",
+ " 388: '⌊55*√(55-5)⌋',\n",
+ " 389: '⌈55*√(55-5)⌉',\n",
+ " 390: '(5!+((5*55)-5))',\n",
+ " 391: '⌊√5*⌊5!+55.5⌋⌋',\n",
" 392: '⌊√.5*555.5⌋',\n",
" 393: '⌈√.5*555.5⌉',\n",
- " 394: '⌈√.5*⌈555.5⌉⌉',\n",
- " 395: '⌊√.5*(5+555)⌋',\n",
+ " 394: '(5!+⌊(5*55)-.5⌋)',\n",
+ " 395: '(5*((5!/5)+55))',\n",
" 396: '⌊.55*⌈5.55⌉!⌋',\n",
" 397: '(5!+⌊.5*555⌋)',\n",
" 398: '(5!+⌈.5*555⌉)',\n",
" 399: '⌊⌈5.5⌉!*.555⌋',\n",
- " 400: '⌈⌈5.5⌉!*.555⌉',\n",
+ " 400: '(5*((5*5)+55))',\n",
" 401: '⌊(√5+5)*55.5⌋',\n",
" 402: '(⌊55*√55⌋-5)',\n",
" 403: '(⌈55*√55⌉-5)',\n",
- " 404: '⌊√55*(55-.5)⌋',\n",
- " 405: '⌈√55*(55-.5)⌉',\n",
+ " 404: '⌊55*√⌊55-.5⌋⌋',\n",
+ " 405: '⌈55*√⌊55-.5⌋⌉',\n",
" 406: '⌊⌊55*√55⌋-.5⌋',\n",
- " 407: '⌊55*√⌊55.5⌋⌋',\n",
- " 408: '⌈55*√⌊55.5⌋⌉',\n",
+ " 407: '⌊⌊√55**5⌋/55⌋',\n",
+ " 408: '⌈⌊√55**5⌋/55⌉',\n",
" 409: '⌊55*√55.5⌋',\n",
" 410: '⌈55*√55.5⌉',\n",
" 411: '⌊√55*55.5⌋',\n",
" 412: '⌈√55*55.5⌉',\n",
" 413: '(5+⌈55*√55⌉)',\n",
- " 414: '⌈√55.5**⌈.5*5⌉⌉',\n",
+ " 414: '((5!*(5-.55))-5!)',\n",
" 415: '⌊√55*⌈55.5⌉⌋',\n",
" 416: '⌈√55*⌈55.5⌉⌉',\n",
" 417: '⌊5*(5**(5*.55))⌋',\n",
- " 418: '⌊55*√⌈√5+55⌉⌋',\n",
+ " 418: '⌈5*(5**(5*.55))⌉',\n",
" 419: '⌊(5**5)/√55.5⌋',\n",
- " 420: '⌊⌈5*.55⌉**5.5⌋',\n",
- " 421: '⌈⌈5*.55⌉**5.5⌉',\n",
+ " 420: '(5!+(5*(5+55)))',\n",
+ " 421: '⌈⌈5!/55⌉**5.5⌉',\n",
" 422: '(5!+⌊5.5*55⌋)',\n",
" 423: '(5!+⌈5.5*55⌉)',\n",
- " 424: '⌈5.5*⌊55/√.5⌋⌉',\n",
- " 425: '⌊55*(√5+5.5)⌋',\n",
+ " 424: '⌊√55*(√5+55)⌋',\n",
+ " 425: '((5*5!)-(5!+55))',\n",
" 426: '⌊55*√(5+55)⌋',\n",
" 427: '⌈55*√(5+55)⌉',\n",
- " 428: '⌊⌈5.5*55⌉/√.5⌋',\n",
+ " 428: '⌈55*(5-(√5-5))⌉',\n",
" 429: '(5.5*⌈55/√.5⌉)',\n",
" 430: '(555-(5+5!))',\n",
" 431: '⌈√55*⌈√5+55⌉⌉',\n",
@@ -2213,60 +2240,60 @@
" 438: '(⌈√5-5!⌉+555)',\n",
" 439: '⌊(⌈√55⌉*55)-.5⌋',\n",
" 440: '(5+(555-5!))',\n",
- " 441: '⌈.5+(⌈√55⌉*55)⌉',\n",
- " 442: '(5+⌈5!/(.5*.55)⌉)',\n",
+ " 441: '(5+⌊(5!+5!)/.55⌋)',\n",
+ " 442: '(5+⌈(5!+5!)/.55⌉)',\n",
" 443: '⌊55*√(5!-55)⌋',\n",
- " 444: '(⌈√55⌉*55.5)',\n",
+ " 444: '⌊√55*(5+55)⌋',\n",
" 445: '⌈√55*(5+55)⌉',\n",
" 446: '⌊55*√(5!*.55)⌋',\n",
" 447: '⌊⌈√5⌉**5.555⌋',\n",
" 448: '⌈⌈√5⌉**5.555⌉',\n",
" 449: '⌈55*(5+√(5+5))⌉',\n",
- " 450: '(5!+(55*⌈5.5⌉))',\n",
+ " 450: '(5!+(⌈5.5⌉*55))',\n",
" 451: '⌊5!*(⌈5.55⌉-√5)⌋',\n",
- " 452: '⌊55*(√5+⌈5.5⌉)⌋',\n",
- " 453: '⌈55*(√5+⌈5.5⌉)⌉',\n",
+ " 452: '(⌊5*(5!-5.5)⌋-5!)',\n",
+ " 453: '(⌈5*(5!-5.5)⌉-5!)',\n",
" 454: '(⌊(5+5!)/.55⌋/.5)',\n",
" 455: '(⌊√55⌋*(5!-55))',\n",
- " 456: '⌊5.5*⌊√5**5.5⌋⌋',\n",
- " 457: '⌈5.5*⌊√5**5.5⌋⌉',\n",
- " 458: '(⌊5-.5⌋*(5!-5.5))',\n",
+ " 456: '(5!/(5/((5!/5)-5)))',\n",
+ " 457: '⌊5*((5**√5)+55)⌋',\n",
+ " 458: '⌈5*((5**√5)+55)⌉',\n",
" 459: '⌊555/(.5+√.5)⌋',\n",
- " 460: '⌈555/(.5+√.5)⌉',\n",
- " 461: '⌈55*√⌊√5.5**5⌋⌉',\n",
- " 462: '(5.5*⌈√5**5.5⌉)',\n",
+ " 460: '(5*(5!-⌈.5*55⌉))',\n",
+ " 461: '(⌈5!*(5-√.5)⌉-55)',\n",
+ " 462: '⌊5*(5!-(.5*55))⌋',\n",
" 463: '⌈5*(5!-(.5*55))⌉',\n",
" 464: '(⌈√55⌉*⌈√5+55⌉)',\n",
" 465: '(5*(5!-⌊.5*55⌋))',\n",
" 466: '⌊⌊√.5*5!⌋*5.55⌋',\n",
" 467: '⌊55*(.5+⌈√55⌉)⌋',\n",
" 468: '(5!*(5-(5.5/5)))',\n",
- " 469: '⌊55*(5+(√.5*5))⌋',\n",
+ " 469: '⌊55*(5+(5*√.5))⌋',\n",
" 470: '(555-⌈√.5*5!⌉)',\n",
" 471: '(555-⌊√.5*5!⌋)',\n",
- " 472: '⌈⌈√.5*5!⌉*5.55⌉',\n",
- " 473: '(5.5*⌈5**(5-√5)⌉)',\n",
- " 474: '(5!*(5-(.5+.55)))',\n",
+ " 472: '((5*5!)-⌈5!+√55⌉)',\n",
+ " 473: '((5*5!)-⌊5!+√55⌋)',\n",
+ " 474: '((5*5!)-⌈5!+5.5⌉)',\n",
" 475: '((5!*⌊5-.55⌋)-5)',\n",
- " 476: '(55+⌈⌈√5⌉**5.5⌉)',\n",
+ " 476: '⌊⌊5!/(.55**5)⌋/5⌋',\n",
" 477: '⌊√.5*(5!+555)⌋',\n",
" 478: '⌈√.5*(5!+555)⌉',\n",
" 479: '((5*5!)-⌈5!+.55⌉)',\n",
- " 480: '(5!*⌊5-.555⌋)',\n",
- " 481: '((5*5!)-⌊5!-.55⌋)',\n",
+ " 480: '(5!*⌊555/5!⌋)',\n",
+ " 481: '((5*5!)+⌈.55-5!⌉)',\n",
" 482: '⌊√55*(5!-55)⌋',\n",
" 483: '⌈√55*(5!-55)⌉',\n",
- " 484: '⌈(√5*5!)/.555⌉',\n",
- " 485: '⌊√5*⌈5!/.555⌉⌋',\n",
+ " 484: '⌊⌈√5*5!⌉/.555⌋',\n",
+ " 485: '(5+(5!*⌊5-.55⌋))',\n",
" 486: '⌈√5*⌈5!/.555⌉⌉',\n",
- " 487: '⌊5!/(.55**√5.5)⌋',\n",
+ " 487: '((5*5!)-⌈5!-√55⌉)',\n",
" 488: '⌊.55*⌊5!*√55⌋⌋',\n",
" 489: '⌊.55*⌈5!*√55⌉⌋',\n",
- " 490: '⌈.55*⌈5!*√55⌉⌉',\n",
+ " 490: '((5*5!)-(55/.5))',\n",
" 491: '⌈5!*((5/.55)-5)⌉',\n",
- " 492: '(⌊5-.5⌋*⌈√5*55⌉)',\n",
+ " 492: '⌊(⌊5/.55⌋**5)/5!⌋',\n",
" 493: '⌈(⌊5/.55⌋**5)/5!⌉',\n",
- " 494: '(⌊55*(5-.5)⌋/.5)',\n",
+ " 494: '(⌊(5-.5)*55⌋/.5)',\n",
" 495: '(5*⌊55/.55⌋)',\n",
" 496: '(⌊555/√5⌋/.5)',\n",
" 497: '⌈555/(.5*√5)⌉',\n",
@@ -2277,28 +2304,28 @@
" 502: '(555-⌊5!/√5⌋)',\n",
" 503: '⌊⌊5.5**5⌋/(5+5)⌋',\n",
" 504: '⌈⌊5.5**5⌋/(5+5)⌉',\n",
- " 505: '(5!+(55*⌊√55⌋))',\n",
- " 506: '⌊(5-.5)*(5!-√55)⌋',\n",
+ " 505: '(5!+(⌊√55⌋*55))',\n",
+ " 506: '(((5+(5**5))/5)-5!)',\n",
" 507: '(⌊5*(5!+5.5)⌋-5!)',\n",
" 508: '(⌈5*(5!+5.5)⌉-5!)',\n",
" 509: '⌊√.5*⌈5.555⌉!⌋',\n",
- " 510: '⌈√.5*⌈5.555⌉!⌉',\n",
- " 511: '⌈⌊5!*√5.5⌋/.55⌉',\n",
+ " 510: '((5*⌈5!+5.5⌉)-5!)',\n",
+ " 511: '⌊(5!-5)*(5-.55)⌋',\n",
" 512: '(5!+⌊√.5*555⌋)',\n",
" 513: '(5!+⌈√.5*555⌉)',\n",
- " 514: '⌈√5.5*⌈5!/.55⌉⌉',\n",
+ " 514: '⌊5!/(⌈.5*55⌉/5!)⌋',\n",
" 515: '(5!+(5!+(5*55)))',\n",
" 516: '(5!+⌊.55*⌈5.5⌉!⌋)',\n",
- " 517: '(5!+⌈.55*⌈5.5⌉!⌉)',\n",
+ " 517: '(5!+⌊55*(√5+5)⌋)',\n",
" 518: '(555-⌈5**√5⌉)',\n",
" 519: '(555-⌊5**√5⌋)',\n",
" 520: '((5*(5!-5))-55)',\n",
" 521: '⌈(5**5)/⌈5.55⌉⌉',\n",
" 522: '⌊55*(5+(5-.5))⌋',\n",
" 523: '⌈55*(5+(5-.5))⌉',\n",
- " 524: '(⌈5!*(5!/55)⌉/.5)',\n",
+ " 524: '⌈5!/(55/(5!+5!))⌉',\n",
" 525: '(5*((55/.5)-5))',\n",
- " 526: '(⌊5*(55-√5)⌋/.5)',\n",
+ " 526: '⌈(.5+⌈5!/55⌉)**5⌉',\n",
" 527: '(5!+⌊55*√55⌋)',\n",
" 528: '(5!+⌈55*√55⌉)',\n",
" 529: '((5!*(5-.55))-5)',\n",
@@ -2307,13 +2334,13 @@
" 532: '⌊5**(5-(5.5/5))⌋',\n",
" 533: '⌊5!*(5-.555)⌋',\n",
" 534: '⌈5!*(5-.555)⌉',\n",
- " 535: '(55+(5!*⌊5-.5⌋))',\n",
- " 536: '⌈(5-.5)*⌊5!-.55⌋⌉',\n",
- " 537: '⌊5.5*((.5*5)**5)⌋',\n",
- " 538: '⌈5.5*((.5*5)**5)⌉',\n",
+ " 535: '((5*5!)-(5!-55))',\n",
+ " 536: '⌊55*√(5!-(5*5))⌋',\n",
+ " 537: '⌊5*(5!-(5+√55))⌋',\n",
+ " 538: '⌈5*(5!-(5+√55))⌉',\n",
" 539: '(5+(5!*(5-.55)))',\n",
- " 540: '((5+5)*⌊55-.5⌋)',\n",
- " 541: '⌈.55+(5!*(5-.5))⌉',\n",
+ " 540: '((5*5!)-(5+55))',\n",
+ " 541: '(5!+⌊(5**5)/√55⌋)',\n",
" 542: '(⌊5*(5!-.5)⌋-55)',\n",
" 543: '(555-⌈√5*5⌉)',\n",
" 544: '(555-⌊√5*5⌋)',\n",
@@ -2324,13 +2351,13 @@
" 549: '⌊555-5.5⌋',\n",
" 550: '⌈555-5.5⌉',\n",
" 551: '⌈555.5-5⌉',\n",
- " 552: '⌊555-√5.5⌋',\n",
- " 553: '⌊555.5-√5⌋',\n",
+ " 552: '(555-⌈.5*5⌉)',\n",
+ " 553: '(555-⌊.5*5⌋)',\n",
" 554: '⌊555-.55⌋',\n",
" 555: '⌊555.55⌋',\n",
" 556: '⌈555.55⌉',\n",
- " 557: '⌊√5+555.5⌋',\n",
- " 558: '⌈√5+555.5⌉',\n",
+ " 557: '(⌊.5*5⌋+555)',\n",
+ " 558: '(⌈.5*5⌉+555)',\n",
" 559: '(5+⌊555-.5⌋)',\n",
" 560: '⌊5+555.5⌋',\n",
" 561: '⌈5+555.5⌉',\n",
@@ -2343,43 +2370,43 @@
" 568: '(⌈5*(5!-5.5)⌉-5)',\n",
" 569: '⌊(5*(5!-5))-5.5⌋',\n",
" 570: '(5*⌊5!-5.55⌋)',\n",
- " 571: '⌊√55*⌊55/√.5⌋⌋',\n",
+ " 571: '((5*5!)-(5+(5!/5)))',\n",
" 572: '⌊5*(5!-5.55)⌋',\n",
" 573: '⌈5*(5!-5.55)⌉',\n",
" 574: '(5+⌈(5**5)/5.5⌉)',\n",
" 575: '(5*⌈5!-5.55⌉)',\n",
- " 576: '⌈.55+(5*(5!-5))⌉',\n",
+ " 576: '((5!/5)**⌊5!/55⌋)',\n",
" 577: '⌊55*(5+5.5)⌋',\n",
" 578: '⌈55*(5+5.5)⌉',\n",
" 579: '((5!/5)+555)',\n",
" 580: '((5*5)+555)',\n",
" 581: '⌈5.5+(5*(5!-5))⌉',\n",
- " 582: '⌈5!*(5.55-√.5)⌉',\n",
- " 583: '(55/(5/⌊5!/√5⌋))',\n",
+ " 582: '⌊√55+(5*(5!-5))⌋',\n",
+ " 583: '(⌊5!/√5⌋*(55/5))',\n",
" 584: '⌈5*(5!-√(55/5))⌉',\n",
- " 585: '(5*(5!-⌈5*.55⌉))',\n",
+ " 585: '(5*(5!-⌈5!/55⌉))',\n",
" 586: '⌊5*(5!-(5*.55))⌋',\n",
" 587: '((⌊√5⌋**5)+555)',\n",
- " 588: '⌈5!*√⌊5-.555⌋!⌉',\n",
+ " 588: '((5*5!)-⌊5+√55⌋)',\n",
" 589: '((5*5!)-(55/5))',\n",
" 590: '⌈5!*(5-(5/55))⌉',\n",
" 591: '(⌊5**√5⌋+555)',\n",
" 592: '(⌈5**√5⌉+555)',\n",
- " 593: '⌈(5*5!)-√55.5⌉',\n",
+ " 593: '(⌈5*(5!-.55)⌉-5)',\n",
" 594: '⌊(5*5!)-5.55⌋',\n",
" 595: '(5*⌊5!-.555⌋)',\n",
- " 596: '⌈√(5+5)**5.55⌉',\n",
+ " 596: '((5*5!)-⌊5-.55⌋)',\n",
" 597: '⌊5*(5!-.555)⌋',\n",
" 598: '⌈5*(5!-.555)⌉',\n",
" 599: '⌊(5*5!)-.555⌋',\n",
- " 600: '(5*⌊5.555⌋!)',\n",
+ " 600: '(5*⌈555/5!⌉!)',\n",
" 601: '⌈(5*5!)+.555⌉',\n",
" 602: '⌊5*(5!+.555)⌋',\n",
" 603: '⌈5*(5!+.555)⌉',\n",
" 604: '(⌊5.5*55⌋/.5)',\n",
" 605: '(55*(55/5))',\n",
- " 606: '(⌈5.5*55⌉/.5)',\n",
- " 607: '⌊(5*5!)+√55.5⌋',\n",
+ " 606: '⌈(5*5!)+5.55⌉',\n",
+ " 607: '(5+⌊5*(5!+.55)⌋)',\n",
" 608: '(⌊5!/√5⌋+555)',\n",
" 609: '(⌈5!/√5⌉+555)',\n",
" 610: '(55+555)',\n",
@@ -2389,15 +2416,15 @@
" 614: '(((5**5)-55)/5)',\n",
" 615: '((.5*5!)+555)',\n",
" 616: '(5.5*⌊5!-√55⌋)',\n",
- " 617: '⌊5*(.5+⌈√5*55⌉)⌋',\n",
- " 618: '⌈5*(.5+⌈√5*55⌉)⌉',\n",
+ " 617: '⌈5*(5!+√(55/5))⌉',\n",
+ " 618: '⌈(5*(5+5!))-√55⌉',\n",
" 619: '⌊√5*⌊.5*555⌋⌋',\n",
" 620: '(5*⌊√5*55.5⌋)',\n",
" 621: '(.5*⌈√5*555⌉)',\n",
" 622: '⌈√5*⌈.5*555⌉⌉',\n",
- " 623: '⌊5!*√⌊5*5.55⌋⌋',\n",
- " 624: '⌈5!*√⌊5*5.55⌋⌉',\n",
- " 625: '(5**⌊5-.555⌋)',\n",
+ " 623: '(⌈5*(5!+5.5)⌉-5)',\n",
+ " 624: '(⌈(5**5)-5.5⌉/5)',\n",
+ " 625: '(5**⌊555/5!⌋)',\n",
" 626: '(⌊5.5+(5**5)⌋/5)',\n",
" 627: '⌊5*(5!+5.55)⌋',\n",
" 628: '⌈5*(5!+5.55)⌉',\n",
@@ -2407,35 +2434,35 @@
" 632: '⌊5.5*⌈5!-5.5⌉⌋',\n",
" 633: '⌈5.5*⌈5!-5.5⌉⌉',\n",
" 634: '⌊5!*√⌈5*5.55⌉⌋',\n",
- " 635: '(5*⌊5!+√55.5⌋)',\n",
+ " 635: '(5+(5*⌈5!+5.5⌉))',\n",
" 636: '(((5**5)+55)/5)',\n",
- " 637: '⌊5*(5!+√55.5)⌋',\n",
+ " 637: '(5+⌊5.5*(5!-5)⌋)',\n",
" 638: '⌊(5!-5)*5.55⌋',\n",
" 639: '⌈(5!-5)*5.55⌉',\n",
- " 640: '(5*⌊55*√5.5⌋)',\n",
- " 641: '⌈.5+(5*⌈5!+√55⌉)⌉',\n",
+ " 640: '(5*⌊√5.5*55⌋)',\n",
+ " 641: '⌈5*(5!+√(5!-55))⌉',\n",
" 642: '(5+⌊5*(5!+√55)⌋)',\n",
- " 643: '⌊5.5*⌊5!-√5.5⌋⌋',\n",
- " 644: '⌊5*(55*√5.5)⌋',\n",
- " 645: '(5*⌈55*√5.5⌉)',\n",
+ " 643: '(5+⌈5*(5!+√55)⌉)',\n",
+ " 644: '⌊√5.5*(5*55)⌋',\n",
+ " 645: '(5*⌈√5.5*55⌉)',\n",
" 646: '⌈5*(5!+(5/.55))⌉',\n",
- " 647: '⌊5.5*(5!-√5.5)⌋',\n",
+ " 647: '⌈5.5*(5!-(.5*5))⌉',\n",
" 648: '(5!*(⌊.5*55⌋/5))',\n",
" 649: '⌊⌊5!-√5⌋*5.55⌋',\n",
" 650: '((5+5)*(5!-55))',\n",
" 651: '(⌈√5⌉*⌈5!/.555⌉)',\n",
- " 652: '⌊(5!*5.5)-√55⌋',\n",
- " 653: '⌊(5!-√5)*5.55⌋',\n",
+ " 652: '(55+⌊5*(5!-.5)⌋)',\n",
+ " 653: '(55+⌈5*(5!-.5)⌉)',\n",
" 654: '⌊5.5*⌊5!-.55⌋⌋',\n",
" 655: '⌊(5*5!)+55.5⌋',\n",
" 656: '⌈(5*5!)+55.5⌉',\n",
" 657: '⌈5.5*(5!-.55)⌉',\n",
- " 658: '⌈5!*√⌊.55*55⌋⌉',\n",
+ " 658: '(55+⌈5*(.5+5!)⌉)',\n",
" 659: '⌊(5!*5.5)-.55⌋',\n",
- " 660: '(5.5*⌊5.55⌋!)',\n",
+ " 660: '(55*⌊5+√55⌋)',\n",
" 661: '((5!*5.55)-5)',\n",
- " 662: '⌊(5!-√.5)*5.55⌋',\n",
- " 663: '⌊5.5*(5!+.55)⌋',\n",
+ " 662: '⌊5*(5+(5!+√55))⌋',\n",
+ " 663: '⌊(5!-.5)*5.55⌋',\n",
" 664: '⌊⌈5.5⌉!-55.5⌋',\n",
" 665: '(⌈5.55⌉!-55)',\n",
" 666: '⌊5!*5.555⌋',\n",
@@ -2456,20 +2483,20 @@
" 681: '⌈5!*(5+(5/√55))⌉',\n",
" 682: '⌊55*(5+√55)⌋',\n",
" 683: '⌈55*(5+√55)⌉',\n",
- " 684: '(⌈5.5⌉*⌊5!-5.5⌋)',\n",
+ " 684: '((5!/5)+(5!*5.5))',\n",
" 685: '(5*⌊.5*(5*55)⌋)',\n",
" 686: '⌊(√5-⌈.5⌉)*555⌋',\n",
- " 687: '⌊5.5*⌊5!+5.5⌋⌋',\n",
- " 688: '⌈5.5*⌊5!+5.5⌋⌉',\n",
+ " 687: '⌊.5*(5*(5*55))⌋',\n",
+ " 688: '⌈.5*(5*(5*55))⌉',\n",
" 689: '(5!+⌈(5**5)/5.5⌉)',\n",
- " 690: '⌊5.5*(5!+5.5)⌋',\n",
+ " 690: '(5*⌈.5*(5*55)⌉)',\n",
" 691: '⌈5.5*(5!+5.5)⌉',\n",
" 692: '(5+⌊5.5*(5+5!)⌋)',\n",
" 693: '⌊(5+5!)*5.55⌋',\n",
" 694: '⌈(5+5!)*5.55⌉',\n",
" 695: '(⌈5.55⌉!-(5*5))',\n",
" 696: '(⌈5.55⌉!-(5!/5))',\n",
- " 697: '(⌈(.5*√55)**5⌉-5)',\n",
+ " 697: '(⌈5.5⌉!-((5!-5)/5))',\n",
" 698: '⌊5.5*⌊5!+√55⌋⌋',\n",
" 699: '⌈5.5*⌊5!+√55⌋⌉',\n",
" 700: '(5*(5*⌈.5*55⌉))',\n",
@@ -2501,95 +2528,95 @@
" 726: '⌈5.5+⌈5.55⌉!⌉',\n",
" 727: '⌊√55+⌈5.55⌉!⌋',\n",
" 728: '⌈√55+⌈5.55⌉!⌉',\n",
- " 729: '(⌈√5⌉**⌈5.555⌉)',\n",
+ " 729: '(⌈5!/55⌉**⌈5.5⌉)',\n",
" 730: '(5+(5+⌈5.55⌉!))',\n",
" 731: '(⌈5.5⌉!+(55/5))',\n",
" 732: '(5!*(5+(5.5/5)))',\n",
" 733: '(5+⌈⌈5.5⌉!+√55⌉)',\n",
- " 734: '(5!+⌊√5*(5*55)⌋)',\n",
+ " 734: '(5!+⌊5*(√5*55)⌋)',\n",
" 735: '(5*(5!+⌊.5*55⌋))',\n",
- " 736: '⌊√5.5**√(5+55)⌋',\n",
+ " 736: '(⌈5.5⌉!+⌊5!/√55⌋)',\n",
" 737: '⌊5*(5!+(.5*55))⌋',\n",
- " 738: '(⌈5.5⌉*⌈√5*55⌉)',\n",
- " 739: '⌊5!*√⌈5*√55.5⌉⌋',\n",
+ " 738: '⌈5*(5!+(.5*55))⌉',\n",
+ " 739: '((5!/5)+(⌈5.5⌉!-5))',\n",
" 740: '(5*(5!+⌈.5*55⌉))',\n",
" 741: '(⌈5.5⌉!+⌊5!/5.5⌋)',\n",
" 742: '(⌈5.5⌉!+⌈5!/5.5⌉)',\n",
- " 743: '⌊⌊5!**√5⌋/(5+55)⌋',\n",
+ " 743: '⌊(5!**√5)/(5+55)⌋',\n",
" 744: '((5!/5)+⌈5.55⌉!)',\n",
" 745: '((5*5)+⌈5.55⌉!)',\n",
" 746: '(5!+((5+(5**5))/5))',\n",
- " 747: '(⌈5.5⌉!+⌊.5*55⌋)',\n",
- " 748: '(⌈5.5⌉!+⌈.5*55⌉)',\n",
- " 749: '⌈5!*(√5+⌊5-.55⌋)⌉',\n",
+ " 747: '(5!+⌊5*(5!+5.5)⌋)',\n",
+ " 748: '(5!+⌈5*(5!+5.5)⌉)',\n",
+ " 749: '(5+((5!/5)+⌈5.5⌉!))',\n",
" 750: '((5+5!)*⌈5.55⌉)',\n",
" 751: '⌈5!*(√.5+5.55)⌉',\n",
" 752: '(5!+⌊5.5*(5!-5)⌋)',\n",
- " 753: '(⌈5.5⌉*(5!+5.5))',\n",
+ " 753: '(5!+⌈5.5*(5!-5)⌉)',\n",
" 754: '(5!+⌊5!*√⌈.5*55⌉⌋)',\n",
" 755: '((5*(5!+55))-5!)',\n",
" 756: '(⌈5.5⌉*⌈5!+5.5⌉)',\n",
- " 757: '(⌈5.5⌉!+⌊5*√55⌋)',\n",
- " 758: '(⌈5.5⌉!+⌈5*√55⌉)',\n",
- " 759: '⌈5!*√⌊5.5*√55⌋⌉',\n",
+ " 757: '(5!+⌊5*(5!+√55)⌋)',\n",
+ " 758: '(5!+⌈5*(5!+√55)⌉)',\n",
+ " 759: '⌈5!*√(5!/⌈5!/55⌉)⌉',\n",
" 760: '(5*⌊55*(5-√5)⌋)',\n",
" 761: '⌈5*(55*(5-√5))⌉',\n",
" 762: '(⌈5.5⌉*⌊5!+√55⌋)',\n",
" 763: '⌈5*(5!**(.5+.55))⌉',\n",
- " 764: '⌊⌈5.5⌉*(5!+√55)⌋',\n",
+ " 764: '(⌊5!*√55⌋-(5+5!))',\n",
" 765: '(5*⌈55*(5-√5)⌉)',\n",
- " 766: '⌈(⌈√5⌉**5.5)/.55⌉',\n",
+ " 766: '⌊((5*5)-5.5)**√5⌋',\n",
" 767: '⌈((5*5)-5.5)**√5⌉',\n",
- " 768: '⌊√⌈5.55⌉**√55⌋',\n",
+ " 768: '(⌈5.5⌉*⌈5!+√55⌉)',\n",
" 769: '⌊55**√(5*.55)⌋',\n",
- " 770: '(55*⌊√55/.5⌋)',\n",
+ " 770: '(⌈5.5⌉!+(55-5))',\n",
" 771: '⌈(5*5.55)**⌊√5⌋⌉',\n",
- " 772: '(55+⌊⌈5.5⌉!-√5⌋)',\n",
+ " 772: '(⌈5.5⌉!+⌊55-√5⌋)',\n",
" 773: '(⌊5!*√55.5⌋-5!)',\n",
- " 774: '(55+⌊⌈5.5⌉!-.5⌋)',\n",
+ " 774: '(⌈5.5⌉!+⌊55-.5⌋)',\n",
" 775: '(55+⌈5.55⌉!)',\n",
" 776: '⌈⌈5.5⌉!+55.5⌉',\n",
" 777: '⌊(555-5)/√.5⌋',\n",
" 778: '⌈(555-5)/√.5⌉',\n",
" 779: '(⌊555/√.5⌋-5)',\n",
- " 780: '(⌈555/√.5⌉-5)',\n",
+ " 780: '(5+(⌈5.5⌉!+55))',\n",
" 781: '⌊(5**5)/⌊5-.55⌋⌋',\n",
" 782: '⌈(5**5)/⌊5-.55⌋⌉',\n",
" 783: '⌊⌊555/√.5⌋-.5⌋',\n",
" 784: '⌊√⌊.5*5⌋*555⌋',\n",
" 785: '⌊555.5/√.5⌋',\n",
- " 786: '⌈555.5/√.5⌉',\n",
- " 787: '⌈⌈555.5⌉/√.5⌉',\n",
+ " 786: '(5!+(5!*5.55))',\n",
+ " 787: '⌊(5-.5)*(5!+55)⌋',\n",
" 788: '⌈(5-.5)*(5!+55)⌉',\n",
" 789: '(5+⌊555/√.5⌋)',\n",
" 790: '(5+⌈555/√.5⌉)',\n",
" 791: '⌊(5+555)/√.5⌋',\n",
" 792: '⌈(5+555)/√.5⌉',\n",
" 793: '⌈⌈5.5⌉!*(5.5/5)⌉',\n",
- " 794: '(⌈.55*⌈5.5⌉!⌉/.5)',\n",
+ " 794: '(⌊55*(√5+5)⌋/.5)',\n",
" 795: '(5!+(5!+555))',\n",
" 796: '⌈55**(5/⌈.5*5⌉)⌉',\n",
" 797: '⌊5.5*(5!+(5*5))⌋',\n",
" 798: '((⌈√5⌉**5)+555)',\n",
- " 799: '⌈5!*(5+√(5*.55))⌉',\n",
+ " 799: '⌈⌊5!**√⌈5!/55⌉⌋/5⌉',\n",
" 800: '(5*((⌈√5⌉*55)-5))',\n",
" 801: '⌊⌊√55⌋*(5!-5.5)⌋',\n",
" 802: '⌈⌊√55⌋*(5!-5.5)⌉',\n",
" 803: '⌊⌊5!**√5⌋/55.5⌋',\n",
" 804: '⌈⌊5!**√5⌋/55.5⌉',\n",
- " 805: '((5!-5)*⌊√55.5⌋)',\n",
- " 806: '⌊(5-.5)**(5-.55)⌋',\n",
+ " 805: '⌈5!*√(55-(5+5))⌉',\n",
+ " 806: '(⌈⌊5!**√5⌋/55⌉-5)',\n",
" 807: '(5!+⌊5.5*(5+5!)⌋)',\n",
" 808: '(5!+⌈5.5*(5+5!)⌉)',\n",
" 809: '(⌊5!*√(5+55)⌋-5!)',\n",
" 810: '(⌈√5⌉*((5*55)-5))',\n",
- " 811: '⌈(5+(5!**√5))/55⌉',\n",
- " 812: '⌈(5*⌊5-.55⌋)**√5⌉',\n",
+ " 811: '⌈(⌈5!**√5⌉-5)/55⌉',\n",
+ " 812: '⌈5!*(⌊5/.55⌋-√5)⌉',\n",
" 813: '(⌊5!*(√5+5)⌋-55)',\n",
" 814: '(⌊55*√55⌋/.5)',\n",
" 815: '⌊55/(.5/√55)⌋',\n",
" 816: '(⌈55*√55⌉/.5)',\n",
- " 817: '⌊5**(5/(⌈5.5⌉/5))⌋',\n",
+ " 817: '⌊5**(5*(5/⌈5.5⌉))⌋',\n",
" 818: '((5*5!)+⌊5!/.55⌋)',\n",
" 819: '((5*5!)+⌈5!/.55⌉)',\n",
" 820: '((⌈√5⌉*(5*55))-5)',\n",
@@ -2600,8 +2627,8 @@
" 825: '(55*(5+(5+5)))',\n",
" 826: '⌊(5*5!)**(.5+.55)⌋',\n",
" 827: '⌊(5-.55)**(5-.5)⌋',\n",
- " 828: '⌈(5-.55)**(5-.5)⌉',\n",
- " 829: '⌈(√5+5)*(5!-5.5)⌉',\n",
+ " 828: '(⌊((5+5)**5)/5!⌋-5)',\n",
+ " 829: '(⌈((5+5)**5)/5!⌉-5)',\n",
" 830: '(5*⌊⌈√5⌉*55.5⌋)',\n",
" 831: '(⌈√5⌉*⌊.5*555⌋)',\n",
" 832: '⌊(.5+⌈.5⌉)*555⌋',\n",
@@ -2610,16 +2637,16 @@
" 835: '(⌈5!*√55⌉-55)',\n",
" 836: '⌊⌊√55⌋*(5!-.55)⌋',\n",
" 837: '⌈⌊√55⌋*(5!-.55)⌉',\n",
- " 838: '⌊(5.5**5)/⌈5.5⌉⌋',\n",
- " 839: '⌈(5.5**5)/⌈5.5⌉⌉',\n",
+ " 838: '⌊√55*⌈5!-√55⌉⌋',\n",
+ " 839: '⌈√55*⌈5!-√55⌉⌉',\n",
" 840: '(5!+⌈5.555⌉!)',\n",
" 841: '(5!+⌈.5+⌈5.55⌉!⌉)',\n",
" 842: '(⌈5.5⌉!+⌊√5*55⌋)',\n",
- " 843: '(⌈5.5⌉!+⌈√5*55⌉)',\n",
+ " 843: '(⌊5!*√(55-5)⌋-5)',\n",
" 844: '⌊5!*√(55-5.5)⌋',\n",
- " 845: '⌊√55*⌊5!-5.5⌋⌋',\n",
+ " 845: '(5+(5!+⌈5.55⌉!))',\n",
" 846: '⌈√55*⌊5!-5.5⌋⌉',\n",
- " 847: '(⌊√55⌋*⌈5!+.55⌉)',\n",
+ " 847: '(⌊(5!-5)*√55⌋-5)',\n",
" 848: '⌊5!*√⌊55.5-5⌋⌋',\n",
" 849: '⌊√55*(5!-5.5)⌋',\n",
" 850: '(5*(5!+(55-5)))',\n",
@@ -2628,20 +2655,20 @@
" 853: '⌈5!*√(55.5-5)⌉',\n",
" 854: '(5+⌈5!*√(55-5)⌉)',\n",
" 855: '(5*⌈5.55**⌈√5⌉⌉)',\n",
- " 856: '⌊(5!-5)*√55.5⌋',\n",
- " 857: '⌈(5!-5)*√55.5⌉',\n",
+ " 856: '⌊5!*√⌈55.5-5⌉⌋',\n",
+ " 857: '⌈5!*√⌈55.5-5⌉⌉',\n",
" 858: '(5+⌈(5!-5)*√55⌉)',\n",
" 859: '⌊55**(√5-.55)⌋',\n",
" 860: '⌈55**(√5-.55)⌉',\n",
" 861: '⌊5!*(5+(5!/55))⌋',\n",
" 862: '⌈5!*(5+(5!/55))⌉',\n",
- " 863: '⌈5**(⌊5!/5.5⌋/5)⌉',\n",
- " 864: '(⌊.5*55⌋/(.5**5))',\n",
- " 865: '(5*⌊55*√(5+5)⌋)',\n",
- " 866: '⌈5!*√⌊55-√5.5⌋⌉',\n",
- " 867: '⌊√55*⌊5!-√5.5⌋⌋',\n",
- " 868: '⌈√55*⌊5!-√5.5⌋⌉',\n",
- " 869: '⌊5*(55*√(5+5))⌋',\n",
+ " 863: '⌊5*(5!+(55-√5))⌋',\n",
+ " 864: '(⌊5!*√55⌋-(5*5))',\n",
+ " 865: '(5*⌊√(5+5)*55⌋)',\n",
+ " 866: '(⌈5!*√55⌉-(5!/5))',\n",
+ " 867: '(⌈5!**√⌊5!/55⌋⌉-5)',\n",
+ " 868: '⌊5!*(√5+⌊5.55⌋)⌋',\n",
+ " 869: '⌊5*(√(5+5)*55)⌋',\n",
" 870: '((555-5!)/.5)',\n",
" 871: '⌊5!**√⌈5.55/5⌉⌋',\n",
" 872: '⌊5*(5!+(55-.5))⌋',\n",
@@ -2651,23 +2678,23 @@
" 876: '⌈.5+(5*(5!+55))⌉',\n",
" 877: '⌊5*(5!+55.5)⌋',\n",
" 878: '⌈5*(5!+55.5)⌉',\n",
- " 879: '⌈√5*⌈√.5*555⌉⌉',\n",
+ " 879: '(⌊5!*√55⌋-(5+5))',\n",
" 880: '(5*⌈5!+55.5⌉)',\n",
" 881: '⌊5!*√⌊55-.55⌋⌋',\n",
- " 882: '⌊√55*⌊5!-.55⌋⌋',\n",
+ " 882: '⌈5!*√⌊55-.55⌋⌉',\n",
" 883: '⌊⌊5!*√55⌋-5.5⌋',\n",
" 884: '⌊⌈5!*√55⌉-5.5⌋',\n",
" 885: '⌈⌈5!*√55⌉-5.5⌉',\n",
" 886: '⌈√55*(5!-.55)⌉',\n",
- " 887: '⌈⌊5!-.5⌋*√55.5⌉',\n",
+ " 887: '(⌈(5.5**5)/5⌉-5!)',\n",
" 888: '(⌊5!*√55.5⌋-5)',\n",
" 889: '⌊5!*(55/√55)⌋',\n",
" 890: '⌈5!*(55/√55)⌉',\n",
" 891: '⌈.55+(5!*√55)⌉',\n",
- " 892: '⌊⌊5!*√55.5⌋-.5⌋',\n",
+ " 892: '(⌊5!*√⌈55.5⌉⌋-5)',\n",
" 893: '⌊⌊5.5⌋!*√55.5⌋',\n",
" 894: '⌊5.5+⌊5!*√55⌋⌋',\n",
- " 895: '⌈5.5+⌊5!*√55⌋⌉',\n",
+ " 895: '(5!+(⌈5.5⌉!+55))',\n",
" 896: '⌈5.5+⌈5!*√55⌉⌉',\n",
" 897: '⌊5!*√⌈55.55⌉⌋',\n",
" 898: '⌈5!*√⌈55.55⌉⌉',\n",
@@ -2690,28 +2717,28 @@
" 915: '⌊5.5**⌊5-.55⌋⌋',\n",
" 916: '⌈5.5**⌊5-.55⌋⌉',\n",
" 917: '⌈⌈√5+5!⌉*√55.5⌉',\n",
- " 918: '⌊5.5*⌈5.5**⌈√5⌉⌉⌋',\n",
- " 919: '⌈5.5*⌈5.5**⌈√5⌉⌉⌉',\n",
+ " 918: '⌊(5+5!)*√⌊55-.5⌋⌋',\n",
+ " 919: '⌈(5+5!)*√⌊55-.5⌋⌉',\n",
" 920: '(5+⌊5.5**⌊5-.5⌋⌋)',\n",
- " 921: '⌊(.5*5)**√55.5⌋',\n",
- " 922: '⌈(.5*5)**√55.5⌉',\n",
+ " 921: '(5+⌈5.5**⌊5-.5⌋⌉)',\n",
+ " 922: '(⌊(5+5!)*√55⌋-5)',\n",
" 923: '(55+⌊5!*(√5+5)⌋)',\n",
" 924: '(55+⌈5!*(√5+5)⌉)',\n",
- " 925: '(5*(555/⌈√5⌉))',\n",
+ " 925: '(5*(5!+(5!-55)))',\n",
" 926: '⌊⌊(5+5!)*√55⌋-.5⌋',\n",
- " 927: '⌊√55*⌊5!+5.5⌋⌋',\n",
- " 928: '⌈√55*⌊5!+5.5⌋⌉',\n",
+ " 927: '⌊5*(5*(5*√55))⌋',\n",
+ " 928: '⌈5*(5*(5*√55))⌉',\n",
" 929: '⌊5!*√⌊5+55.5⌋⌋',\n",
- " 930: '⌈5!*√⌊5+55.5⌋⌉',\n",
+ " 930: '(5*⌈5*(5*√55)⌉)',\n",
" 931: '⌊(5+5!)*√55.5⌋',\n",
" 932: '⌈(5+5!)*√55.5⌉',\n",
" 933: '⌊5!*√(5+55.5)⌋',\n",
- " 934: '⌈5!*√(5+55.5)⌉',\n",
+ " 934: '⌊5!*(√5+5.55)⌋',\n",
" 935: '(55*⌈5!/√55⌉)',\n",
" 936: '⌈(5+5!)*√⌈55.5⌉⌉',\n",
" 937: '⌊5!*√⌈5+55.5⌉⌋',\n",
" 938: '⌈5!*√⌈5+55.5⌉⌉',\n",
- " 939: '⌊5.5/(.5**√55)⌋',\n",
+ " 939: '(⌈5.5⌉!+⌈5!/.55⌉)',\n",
" 940: '⌈5.5/(.5**√55)⌉',\n",
" 941: '⌊√55*⌊5!+√55⌋⌋',\n",
" 942: '⌊⌊5**5.5⌋/√55⌋',\n",
@@ -2719,7 +2746,7 @@
" 944: '(55+⌊5!*√55⌋)',\n",
" 945: '(55+⌈5!*√55⌉)',\n",
" 946: '(5.5*⌊(5+5)**√5⌋)',\n",
- " 947: '⌊(√.5+⌈.5⌉)*555⌋',\n",
+ " 947: '(⌈5**(5-√.5)⌉-55)',\n",
" 948: '⌊5.55**⌊5-.5⌋⌋',\n",
" 949: '⌈5.55**⌊5-.5⌋⌉',\n",
" 950: '(5*(5*⌈5*√55⌉))',\n",
@@ -2729,53 +2756,53 @@
" 954: '⌊(5!+555)/√.5⌋',\n",
" 955: '⌊5!*(.55+√55)⌋',\n",
" 956: '⌈5!*(.55+√55)⌉',\n",
- " 957: '⌊5!*(.5+√⌈55.5⌉)⌋',\n",
- " 958: '⌈5!*(.5+√⌈55.5⌉)⌉',\n",
+ " 957: '⌊(5**5)/(5.5-√5)⌋',\n",
+ " 958: '⌈(5**5)/(5.5-√5)⌉',\n",
" 959: '⌊(5!*⌈√55⌉)-.55⌋',\n",
" 960: '(5!*⌈55/√55⌉)',\n",
" 961: '⌊√⌈.5*5⌉*555⌋',\n",
" 962: '⌊5.5*(5!+55)⌋',\n",
" 963: '⌈5.5*(5!+55)⌉',\n",
" 964: '⌈(√5-.5)*555⌉',\n",
- " 965: '⌊(5!/5.55)**√5⌋',\n",
+ " 965: '(5*⌊5!**(5.5/5)⌋)',\n",
" 966: '⌈(5!/5.55)**√5⌉',\n",
- " 967: '⌊5!*√⌈5!-55.5⌉⌋',\n",
- " 968: '⌈5!*√⌈5!-55.5⌉⌉',\n",
+ " 967: '⌊5!*√(5+(5+55))⌋',\n",
+ " 968: '⌊(5+5!)*√(5+55)⌋',\n",
" 969: '((⌊5-.5⌋**5)-55)',\n",
" 970: '(5*⌈5!**(5.5/5)⌉)',\n",
" 971: '(⌈5*(5!/.55)⌉-5!)',\n",
" 972: '⌊√5*(555-5!)⌋',\n",
" 973: '⌈√5*(555-5!)⌉',\n",
" 974: '⌊5!*√⌊5!*.555⌋⌋',\n",
- " 975: '⌈5!*√⌊5!*.555⌋⌉',\n",
+ " 975: '((5*⌈5!/.55⌉)-5!)',\n",
" 976: '(⌈√55⌉*⌊√5*55⌋)',\n",
" 977: '⌈(5+5)*((.5*5)**5)⌉',\n",
- " 978: '⌊5!*(√.5+√55.5)⌋',\n",
+ " 978: '⌈√5*⌈(5!+5!)/.55⌉⌉',\n",
" 979: '⌊5!*(5+√⌊5+5.5⌋)⌋',\n",
- " 980: '⌈5!*(5+√⌊5+5.5⌋)⌉',\n",
+ " 980: '((5+5)*⌈(.5*5)**5⌉)',\n",
" 981: '((5-.5)*⌊5!/.55⌋)',\n",
" 982: '⌊5!*√⌈5!*.555⌉⌋',\n",
" 983: '⌈5!*√⌈5!*.555⌉⌉',\n",
" 984: '(⌈√55⌉*⌈√5*55⌉)',\n",
" 985: '⌊(5-.5)*⌈5!/.55⌉⌋',\n",
" 986: '⌈(5-.5)*⌈5!/.55⌉⌉',\n",
- " 987: '⌊√⌈√5*5⌉**5.55⌋',\n",
+ " 987: '(⌈(5**5)/⌈√5⌉⌉-55)',\n",
" 988: '⌊5!*(√5+⌈5.55⌉)⌋',\n",
- " 989: '⌈5!*(√5+⌈5.55⌉)⌉',\n",
+ " 989: '⌊5**(5!/⌈.5*55⌉)⌋',\n",
" 990: '((555/.5)-5!)',\n",
" 991: '⌊5!*(5-(√5-5.5))⌋',\n",
" 992: '⌈5!*(5-(√5-5.5))⌉',\n",
- " 993: '⌈√5*⌊⌈√5⌉**5.55⌋⌉',\n",
+ " 993: '(5+⌊(5**5)/√(5+5)⌋)',\n",
" 994: '⌊5!*(5*√(5*.55))⌋',\n",
- " 995: '(⌈5.5⌉!+(5*55))',\n",
- " 996: '⌊⌈5**(5-√.5)⌉-5.5⌋',\n",
+ " 995: '(5!+(5*(5!+55)))',\n",
+ " 996: '⌊5!*√⌈.55*(5+5!)⌉⌋',\n",
" 997: '⌊5!*(5+√(55/5))⌋',\n",
- " 998: '⌊⌊5**5.5⌋/⌊√55⌋⌋',\n",
+ " 998: '⌈5!*(5+√(55/5))⌉',\n",
" 999: '⌈⌊5**5.5⌋/⌊√55⌋⌉',\n",
" ...}"
]
},
- "execution_count": 32,
+ "execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
@@ -2801,7 +2828,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 72,
"metadata": {
"button": false,
"new_sheet": false,
@@ -2816,7 +2843,7 @@
"23308"
]
},
- "execution_count": 33,
+ "execution_count": 72,
"metadata": {},
"output_type": "execute_result"
}
@@ -2835,11 +2862,86 @@
}
},
"source": [
- "I think we've conquered the five 5s problem.\n",
+ "I think we've conquered the five 5s problem!\n",
"\n",
- "# Conclusion\n",
"\n",
- "We were able to solve the puzzles, and we now have some tools to explore new puzzles. What can you discover?"
+ "# Countdown to 2018\n",
+ "\n",
+ "On January 1 2018, [Michael Littman](http://cs.brown.edu/~mlittman/) posted this:\n",
+ "\n",
+ "> `2+0+1x8, 2+0-1+8, (2+0-1)x8, |2-0-1-8|, -2-0+1x8, -(2+0+1-8), sqrt(|2+0-18|), 2+0+1^8, 20-18, 2^(0x18), 2x0x1x8`... Happy New Year!\n",
+ "\n",
+ "Can we replicate that countdown, using the four digits of the year, in order, with operators and parens to evaluate each of the numbers from 10 to 1? I'm assuming Michael is disallowing floor and ceil, but allowing our other operators."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 75,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'2.0+(1*8), 2.0-(1-8), (2.0-1)*8, (2*0)-(1-8), √(2.0*18), -2.0-(1-8), √(-2.0+18), 2.0+(1^8), 20-18, 2.0-(1^8)'"
+ ]
+ },
+ "execution_count": 75,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "clear()\n",
+ "floor_ceil_allowed = False\n",
+ "\n",
+ "def littman_countdown(year):\n",
+ " \"Return a Littman countdown for the year.\"\n",
+ " return ', '.join(littman(year, i) for i in range(10, 0, -1))\n",
+ "\n",
+ "def littman(year, i):\n",
+ " \"Return a string that makes i with the digits of year.\"\n",
+ " digits = tuple(map(int, str(year)))\n",
+ " return unbracket(expressions(digits).get(i, '???').replace('**', '^'))\n",
+ "\n",
+ "littman_countdown(2018)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Similar results, with some alternatives for some numbers.\n",
+ "\n",
+ "Let's look at the decade:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 76,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "{2011: '20/(1+1), 20-11, -2.0+(1/.1), (2.0+1)!+1, √(20-11)!, (2.0+1)!-1, 2.0*(1+1), √(20-11), 2+(0/11), 2.0/(1+1)',\n",
+ " 2012: '20/(1*2), (2.0+1)^2, 20-12, 2.0+(1/.2), 2.0*(1+2), 2.0+(1+2), 2.0*(1*2), 2.0-(1-2), 2+(0/12), -.20+1.2',\n",
+ " 2013: '20/(-1+3), (2.0+1)*3, 2.0*(1+3), 20-13, 2.0+(1+3), 20/(1+3), 2.0-(1-3), (2.0-1)*3, 2+(0/13), (2.0+1)/3',\n",
+ " 2014: '2.0*(1+4), (2.0+1)^√4, 2.0/(1/4), 2.0+(1+4), 20-14, 20*(1/4), 20/(1+4), -20-(1-4!), 2+(0/14), .20*(1+4)',\n",
+ " 2015: '2.0*(1*5), √(201-5!), 2.0+(1+5), 2.0+(1*5), (.20*15)!, 20-15, 20/(1*5), .20*15, 2+(0/15), 2*(0.1*5)',\n",
+ " 2016: '2*(0-(1-6)), 2.0+(1+6), 2.0*√16, 2.0-(1-6), √(20+16), 20/√16, 20-16, 2.0+(1^6), 2+(0/16), .20*(-1+6)',\n",
+ " 2017: '2.0+(1+7), 2.0+(1*7), 2.0-(1-7), (2.0-1)*7, (20-17)!, -2.0+(1*7), -2.0-(1-7), 20-17, 2+(0/17), 2.0-(1^7)',\n",
+ " 2018: '2.0+(1*8), 2.0-(1-8), (2.0-1)*8, (2*0)-(1-8), √(2.0*18), -2.0-(1-8), √(-2.0+18), 2.0+(1^8), 20-18, 2.0-(1^8)',\n",
+ " 2019: '20-(1+9), (2.0-1)*9, (2*0)-(1-9), -2.0+(1*9), -2.0-(1-9), 20/(1+√9), 2.0-(1-√9), 2.0+(1^9), 2+(0/19), 20-19'}"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "{y: littman_countdown(y) \n",
+ " for y in range(2011, 2020)}"
]
}
],