Started on brainfuck soluiton
[ou-summer-of-code-2017.git] / 02-lifts / lifts-solution.ipynb
index 281eb44f2400f2a061adc2012c8a7a30d812c494..bf60b786c5e53139c522d1c5370d08d1b7e915ef 100644 (file)
@@ -34,7 +34,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 2,
    "metadata": {
     "collapsed": true
    },
@@ -51,7 +51,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 3,
    "metadata": {
     "collapsed": true
    },
@@ -66,7 +66,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 4,
    "metadata": {},
    "outputs": [
     {
@@ -75,7 +75,7 @@
        "209"
       ]
      },
-     "execution_count": 3,
+     "execution_count": 4,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -89,7 +89,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 5,
    "metadata": {
     "collapsed": true
    },
   },
   {
    "cell_type": "code",
-   "execution_count": 16,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "(10000, 216, -6)"
+       "(10002, 216, -6)"
       ]
      },
-     "execution_count": 16,
+     "execution_count": 6,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [
     {
        "209"
       ]
      },
-     "execution_count": 4,
+     "execution_count": 7,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 8,
    "metadata": {
     "collapsed": true
    },
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 9,
    "metadata": {},
    "outputs": [
     {
        "215"
       ]
      },
-     "execution_count": 8,
+     "execution_count": 9,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 17,
+   "execution_count": 10,
    "metadata": {},
    "outputs": [
     {
        "-5"
       ]
      },
-     "execution_count": 17,
+     "execution_count": 10,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 18,
+   "execution_count": 11,
    "metadata": {},
    "outputs": [
     {
        "209"
       ]
      },
-     "execution_count": 18,
+     "execution_count": 11,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 12,
    "metadata": {},
    "outputs": [
     {
        "-2"
       ]
      },
-     "execution_count": 19,
+     "execution_count": 12,
      "metadata": {},
      "output_type": "execute_result"
     }
   },
   {
    "cell_type": "code",
-   "execution_count": 21,
+   "execution_count": 13,
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/plain": [
-       "1257"
+       "1259"
       ]
      },
-     "execution_count": 21,
+     "execution_count": 13,
      "metadata": {},
      "output_type": "execute_result"
     }
     "len(exits(instructions))"
    ]
   },
+  {
+   "cell_type": "code",
+   "execution_count": 14,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Counter({-5: 1,\n",
+       "         -4: 1,\n",
+       "         -2: 2,\n",
+       "         1: 1,\n",
+       "         3: 1,\n",
+       "         6: 1,\n",
+       "         11: 1,\n",
+       "         12: 1,\n",
+       "         18: 1,\n",
+       "         19: 2,\n",
+       "         20: 3,\n",
+       "         21: 3,\n",
+       "         22: 4,\n",
+       "         23: 4,\n",
+       "         24: 6,\n",
+       "         25: 4,\n",
+       "         26: 4,\n",
+       "         27: 6,\n",
+       "         28: 4,\n",
+       "         29: 4,\n",
+       "         30: 2,\n",
+       "         31: 1,\n",
+       "         32: 7,\n",
+       "         33: 3,\n",
+       "         34: 5,\n",
+       "         35: 2,\n",
+       "         36: 2,\n",
+       "         37: 2,\n",
+       "         38: 3,\n",
+       "         39: 5,\n",
+       "         40: 9,\n",
+       "         41: 4,\n",
+       "         42: 7,\n",
+       "         43: 11,\n",
+       "         44: 15,\n",
+       "         45: 19,\n",
+       "         46: 22,\n",
+       "         47: 12,\n",
+       "         48: 23,\n",
+       "         49: 24,\n",
+       "         50: 27,\n",
+       "         51: 25,\n",
+       "         52: 27,\n",
+       "         53: 25,\n",
+       "         54: 16,\n",
+       "         55: 21,\n",
+       "         56: 21,\n",
+       "         57: 15,\n",
+       "         58: 13,\n",
+       "         59: 18,\n",
+       "         60: 19,\n",
+       "         61: 13,\n",
+       "         62: 21,\n",
+       "         63: 15,\n",
+       "         64: 19,\n",
+       "         65: 18,\n",
+       "         66: 17,\n",
+       "         67: 17,\n",
+       "         68: 8,\n",
+       "         69: 8,\n",
+       "         70: 12,\n",
+       "         71: 6,\n",
+       "         72: 5,\n",
+       "         73: 3,\n",
+       "         74: 6,\n",
+       "         75: 5,\n",
+       "         76: 3,\n",
+       "         77: 2,\n",
+       "         78: 1,\n",
+       "         79: 4,\n",
+       "         80: 2,\n",
+       "         81: 1,\n",
+       "         83: 1,\n",
+       "         84: 4,\n",
+       "         87: 3,\n",
+       "         88: 4,\n",
+       "         89: 2,\n",
+       "         90: 2,\n",
+       "         91: 3,\n",
+       "         92: 1,\n",
+       "         93: 5,\n",
+       "         94: 2,\n",
+       "         95: 6,\n",
+       "         96: 5,\n",
+       "         97: 11,\n",
+       "         98: 10,\n",
+       "         99: 15,\n",
+       "         100: 10,\n",
+       "         101: 17,\n",
+       "         102: 15,\n",
+       "         103: 6,\n",
+       "         104: 9,\n",
+       "         105: 6,\n",
+       "         106: 8,\n",
+       "         107: 13,\n",
+       "         108: 12,\n",
+       "         109: 9,\n",
+       "         110: 10,\n",
+       "         111: 7,\n",
+       "         112: 4,\n",
+       "         113: 8,\n",
+       "         114: 13,\n",
+       "         115: 6,\n",
+       "         116: 6,\n",
+       "         117: 6,\n",
+       "         118: 6,\n",
+       "         119: 7,\n",
+       "         120: 4,\n",
+       "         121: 3,\n",
+       "         122: 5,\n",
+       "         123: 8,\n",
+       "         124: 6,\n",
+       "         125: 7,\n",
+       "         126: 6,\n",
+       "         127: 4,\n",
+       "         128: 3,\n",
+       "         129: 5,\n",
+       "         130: 6,\n",
+       "         131: 6,\n",
+       "         132: 8,\n",
+       "         133: 5,\n",
+       "         134: 13,\n",
+       "         135: 13,\n",
+       "         136: 14,\n",
+       "         137: 9,\n",
+       "         138: 16,\n",
+       "         139: 12,\n",
+       "         140: 12,\n",
+       "         141: 11,\n",
+       "         142: 15,\n",
+       "         143: 16,\n",
+       "         144: 3,\n",
+       "         145: 5,\n",
+       "         146: 10,\n",
+       "         147: 3,\n",
+       "         148: 3,\n",
+       "         149: 2,\n",
+       "         150: 3,\n",
+       "         151: 6,\n",
+       "         152: 7,\n",
+       "         153: 5,\n",
+       "         154: 7,\n",
+       "         155: 5,\n",
+       "         156: 5,\n",
+       "         157: 1,\n",
+       "         158: 5,\n",
+       "         159: 5,\n",
+       "         160: 6,\n",
+       "         161: 2,\n",
+       "         162: 2,\n",
+       "         164: 7,\n",
+       "         165: 2,\n",
+       "         166: 2,\n",
+       "         167: 3,\n",
+       "         168: 1,\n",
+       "         169: 4,\n",
+       "         170: 3,\n",
+       "         171: 1,\n",
+       "         173: 1,\n",
+       "         178: 1,\n",
+       "         179: 1,\n",
+       "         181: 1,\n",
+       "         185: 1,\n",
+       "         187: 1,\n",
+       "         188: 1,\n",
+       "         189: 1,\n",
+       "         192: 2,\n",
+       "         193: 1,\n",
+       "         194: 3,\n",
+       "         195: 1,\n",
+       "         196: 2,\n",
+       "         199: 1,\n",
+       "         200: 2,\n",
+       "         201: 1,\n",
+       "         204: 1,\n",
+       "         205: 1,\n",
+       "         207: 2,\n",
+       "         208: 3,\n",
+       "         209: 11,\n",
+       "         210: 2,\n",
+       "         211: 1,\n",
+       "         212: 1,\n",
+       "         213: 2,\n",
+       "         215: 2})"
+      ]
+     },
+     "execution_count": 14,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "import collections\n",
+    "collections.Counter(exits(instructions))"
+   ]
+  },
   {
    "cell_type": "code",
    "execution_count": null,