X-Git-Url: https://git.njae.me.uk/?a=blobdiff_plain;f=hangman-better.ipynb;h=eaf16654fb1129b1893e262c262c6bb78aef6a2a;hb=e9dc0617257c291664c41f2583aafaf6035217da;hp=7691ed14b7530fbf1cf00f6c45c88c0b9fbd6f6d;hpb=dbcf4c0acaf308c6147b6ed34852136c78cecbea;p=cas-master-teacher-training.git diff --git a/hangman-better.ipynb b/hangman-better.ipynb index 7691ed1..eaf1665 100644 --- a/hangman-better.ipynb +++ b/hangman-better.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:07f366ec645d178071697c25c43d438fd80cf3a676ad9bd8d7613f5bfa36adf5" + "signature": "sha256:545958b09bd5e8fa505a87efb9adac0a47f5192bcc21e705711935beec6eb83c" }, "nbformat": 3, "nbformat_minor": 0, @@ -73,14 +73,7 @@ " self.game_lost = False\n", " \n", " def find_all(self, letter):\n", - " locations = []\n", - " starting=0\n", - " location = self.target.find(letter)\n", - " while location > -1:\n", - " locations += [location]\n", - " starting = location + 1\n", - " location = self.target.find(letter, starting)\n", - " return locations\n", + " return [p for p, l in enumerate(self.target) if l == letter]\n", " \n", " def update_discovered_word(self, guessed_letter):\n", " locations = self.find_all(guessed_letter)\n", @@ -142,14 +135,7 @@ " \n", " def guess(self, discovered, missed, lives):\n", " guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n", - " self.ordered_subtract(guessed_letters)\n", - " return self.ordered_letters[0]\n", - "\n", - " def ordered_subtract(self, to_remove):\n", - " for r in to_remove:\n", - " if r in self.ordered_letters:\n", - " ri = self.ordered_letters.index(r)\n", - " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]" + " return [l for l in self.ordered_letters if l not in guessed_letters][0]" ], "language": "python", "metadata": {}, @@ -177,6 +163,8 @@ "cell_type": "code", "collapsed": false, "input": [ + "%%timeit\n", + "\n", "wins = 0\n", "for _ in range(1000):\n", " g = Game(random.choice(WORDS), player=PlayerAlphabetical())\n", @@ -192,61 +180,1028 @@ "output_type": "stream", "stream": "stdout", "text": [ - "43\n" + "50\n", + "59" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "33" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "53" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "49" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "42" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "43" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "54" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "49" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "54" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "45" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "46" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "44" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "45" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "48" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "51" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "46" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "54" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "49" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "44" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "42" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "44" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "48" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "39" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "46" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "43" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "50" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "47" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "52" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "46" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "55" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "47" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "39" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "55" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "40" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "46" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "53" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "43" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "40" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "53" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "41" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "10 loops, best of 3: 64.2 ms per loop\n" + ] + } + ], + "prompt_number": 54 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%%timeit\n", + "\n", + "wins = 0\n", + "for _ in range(1000):\n", + " g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n", + " g.play_game()\n", + " if g.game_won:\n", + " wins += 1\n", + "print(wins)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "334\n", + "342" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "318" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "313" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "353" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "304" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "332" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "313" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "335" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "339" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "328" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "334" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "322" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "347" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "334" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "340" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "319" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "365" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "315" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "307" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "314" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "317" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "310" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "324" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "313" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "318" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "314" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "324" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "297" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "335" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "335" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "343" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "342" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "318" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "306" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "353" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "332" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "330" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "334" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "307" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "306" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "10 loops, best of 3: 96.2 ms per loop\n" + ] + } + ], + "prompt_number": 56 + }, + { + "cell_type": "code", + "collapsed": false, + "input": [ + "%%timeit\n", + "\n", + "wins = 0\n", + "for _ in range(1000):\n", + " g = Game(random.choice(WORDS), player=PlayerFixedOrder(list(reversed(string.ascii_lowercase))))\n", + " g.play_game()\n", + " if g.game_won:\n", + " wins += 1\n", + "print(wins)" + ], + "language": "python", + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "7\n", + "5" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "6" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "7" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "7" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "10" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "8" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "5" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "5" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "5" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "9" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "3" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "8" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "13" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "8" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "10" ] - } - ], - "prompt_number": 8 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "wins = 0\n", - "for _ in range(1000):\n", - " g = Game(random.choice(WORDS), player=PlayerFreqOrdered())\n", - " g.play_game()\n", - " if g.game_won:\n", - " wins += 1\n", - "print(wins)" - ], - "language": "python", - "metadata": {}, - "outputs": [ + }, { "output_type": "stream", "stream": "stdout", "text": [ - "316\n" + "\n", + "9" ] - } - ], - "prompt_number": 9 - }, - { - "cell_type": "code", - "collapsed": false, - "input": [ - "wins = 0\n", - "for _ in range(1000):\n", - " g = Game(random.choice(WORDS), player=PlayerFixedOrder(list(reversed(string.ascii_lowercase))))\n", - " g.play_game()\n", - " if g.game_won:\n", - " wins += 1\n", - "print(wins)" - ], - "language": "python", - "metadata": {}, - "outputs": [ + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "9" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "12" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "6" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "6" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "14" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "9" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "1" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "8" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "8" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "7" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "9" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "10" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "6" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "7" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "6" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "4" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "6" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "3" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "7" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "7" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "10" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "11" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "6" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + "\n", + "4" + ] + }, { "output_type": "stream", "stream": "stdout", "text": [ - "5\n" + "\n", + "10 loops, best of 3: 74.6 ms per loop\n" ] } ], - "prompt_number": 10 + "prompt_number": 57 }, { "cell_type": "code", @@ -320,7 +1275,7 @@ "output_type": "stream", "stream": "stdout", "text": [ - "473\n" + "440\n" ] } ], @@ -339,14 +1294,7 @@ " if not self.candidate_words:\n", " self.set_ordered_letters(len(discovered))\n", " guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n", - " self.ordered_subtract(guessed_letters)\n", - " return self.ordered_letters[0]\n", - "\n", - " def ordered_subtract(self, to_remove):\n", - " for r in to_remove:\n", - " if r in self.ordered_letters:\n", - " ri = self.ordered_letters.index(r)\n", - " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\n", + " return [l for l in self.ordered_letters if l not in guessed_letters][0]\n", " \n", " def set_ordered_letters(self, word_len):\n", " self.candidate_words = [w for w in self.all_words if len(w) == word_len]\n", @@ -356,7 +1304,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 15 + "prompt_number": 33 }, { "cell_type": "code", @@ -377,11 +1325,11 @@ "output_type": "stream", "stream": "stdout", "text": [ - "489\n" + "474\n" ] } ], - "prompt_number": 16 + "prompt_number": 34 }, { "cell_type": "code", @@ -395,14 +1343,7 @@ " self.filter_candidate_words(discovered)\n", " self.set_ordered_letters()\n", " guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n", - " self.ordered_subtract(guessed_letters)\n", - " return self.ordered_letters[0]\n", - "\n", - " def ordered_subtract(self, to_remove):\n", - " for r in to_remove:\n", - " if r in self.ordered_letters:\n", - " ri = self.ordered_letters.index(r)\n", - " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\n", + " return [l for l in self.ordered_letters if l not in guessed_letters][0]\n", " \n", " def filter_candidate_words(self, discovered):\n", " exp = re.compile('^' + ''.join(discovered).replace('_', '.') + '$')\n", @@ -415,7 +1356,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 17 + "prompt_number": 35 }, { "cell_type": "code", @@ -436,11 +1377,11 @@ "output_type": "stream", "stream": "stdout", "text": [ - "979\n" + "982\n" ] } ], - "prompt_number": 18 + "prompt_number": 36 }, { "cell_type": "code", @@ -451,7 +1392,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 19 + "prompt_number": 37 }, { "cell_type": "code", @@ -465,14 +1406,7 @@ " self.filter_candidate_words(missed)\n", " self.set_ordered_letters()\n", " guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n", - " self.ordered_subtract(guessed_letters)\n", - " return self.ordered_letters[0]\n", - "\n", - " def ordered_subtract(self, to_remove):\n", - " for r in to_remove:\n", - " if r in self.ordered_letters:\n", - " ri = self.ordered_letters.index(r)\n", - " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\n", + " return [l for l in self.ordered_letters if l not in guessed_letters][0]\n", " \n", " def filter_candidate_words(self, missed):\n", " if missed:\n", @@ -486,7 +1420,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 20 + "prompt_number": 38 }, { "cell_type": "code", @@ -507,11 +1441,11 @@ "output_type": "stream", "stream": "stdout", "text": [ - "512\n" + "502\n" ] } ], - "prompt_number": 21 + "prompt_number": 39 }, { "cell_type": "code", @@ -525,14 +1459,7 @@ " self.filter_candidate_words(discovered, missed)\n", " self.set_ordered_letters()\n", " guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n", - " self.ordered_subtract(guessed_letters)\n", - " return self.ordered_letters[0]\n", - "\n", - " def ordered_subtract(self, to_remove):\n", - " for r in to_remove:\n", - " if r in self.ordered_letters:\n", - " ri = self.ordered_letters.index(r)\n", - " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\n", + " return [l for l in self.ordered_letters if l not in guessed_letters][0]\n", " \n", " def filter_candidate_words(self, discovered, missed):\n", " attempted_letters = list(set(l.lower() for l in discovered + missed if l in string.ascii_letters))\n", @@ -550,7 +1477,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 22 + "prompt_number": 40 }, { "cell_type": "code", @@ -571,11 +1498,11 @@ "output_type": "stream", "stream": "stdout", "text": [ - "990\n" + "993\n" ] } ], - "prompt_number": 23 + "prompt_number": 41 }, { "cell_type": "code", @@ -598,8 +1525,8 @@ "output_type": "stream", "stream": "stdout", "text": [ - "986\n", - "996" + "994\n", + "993" ] }, { @@ -607,7 +1534,7 @@ "stream": "stdout", "text": [ "\n", - "991" + "987" ] }, { @@ -615,7 +1542,7 @@ "stream": "stdout", "text": [ "\n", - "990" + "993" ] }, { @@ -623,11 +1550,11 @@ "stream": "stdout", "text": [ "\n", - "1 loops, best of 3: 57.2 s per loop\n" + "1 loops, best of 3: 30.6 s per loop\n" ] } ], - "prompt_number": 24 + "prompt_number": 42 }, { "cell_type": "code", @@ -641,14 +1568,7 @@ " self.filter_candidate_words(discovered, missed)\n", " self.set_ordered_letters()\n", " guessed_letters = [l.lower() for l in discovered + missed if l in string.ascii_letters]\n", - " self.ordered_subtract(guessed_letters)\n", - " return self.ordered_letters[0]\n", - "\n", - " def ordered_subtract(self, to_remove):\n", - " for r in to_remove:\n", - " if r in self.ordered_letters:\n", - " ri = self.ordered_letters.index(r)\n", - " self.ordered_letters = self.ordered_letters[:ri] + self.ordered_letters[ri+1:]\n", + " return [l for l in self.ordered_letters if l not in guessed_letters][0]\n", " \n", " def filter_candidate_words(self, discovered, missed):\n", " pass\n", @@ -662,7 +1582,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 25 + "prompt_number": 43 }, { "cell_type": "code", @@ -686,7 +1606,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 26 + "prompt_number": 44 }, { "cell_type": "code", @@ -700,7 +1620,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 27 + "prompt_number": 45 }, { "cell_type": "code", @@ -715,7 +1635,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 28 + "prompt_number": 46 }, { "cell_type": "code", @@ -734,7 +1654,7 @@ "language": "python", "metadata": {}, "outputs": [], - "prompt_number": 29 + "prompt_number": 47 }, { "cell_type": "code", @@ -757,8 +1677,8 @@ "output_type": "stream", "stream": "stdout", "text": [ - "463\n", - "492" + "479\n", + "455" ] }, { @@ -766,7 +1686,7 @@ "stream": "stdout", "text": [ "\n", - "451" + "460" ] }, { @@ -774,7 +1694,7 @@ "stream": "stdout", "text": [ "\n", - "448" + "498" ] }, { @@ -782,11 +1702,11 @@ "stream": "stdout", "text": [ "\n", - "1 loops, best of 3: 30.9 s per loop\n" + "1 loops, best of 3: 15.9 s per loop\n" ] } ], - "prompt_number": 30 + "prompt_number": 48 }, { "cell_type": "code", @@ -809,8 +1729,8 @@ "output_type": "stream", "stream": "stdout", "text": [ - "985\n", - "972" + "981\n", + "983" ] }, { @@ -818,7 +1738,7 @@ "stream": "stdout", "text": [ "\n", - "976" + "980" ] }, { @@ -826,7 +1746,7 @@ "stream": "stdout", "text": [ "\n", - "986" + "980" ] }, { @@ -834,11 +1754,11 @@ "stream": "stdout", "text": [ "\n", - "1 loops, best of 3: 1min 8s per loop\n" + "1 loops, best of 3: 36.9 s per loop\n" ] } ], - "prompt_number": 31 + "prompt_number": 49 }, { "cell_type": "code", @@ -861,8 +1781,8 @@ "output_type": "stream", "stream": "stdout", "text": [ - "502\n", - "491" + "521\n", + "484" ] }, { @@ -870,7 +1790,7 @@ "stream": "stdout", "text": [ "\n", - "537" + "491" ] }, { @@ -878,7 +1798,7 @@ "stream": "stdout", "text": [ "\n", - "524" + "518" ] }, { @@ -886,11 +1806,11 @@ "stream": "stdout", "text": [ "\n", - "1 loops, best of 3: 13min 6s per loop\n" + "1 loops, best of 3: 7min 18s per loop\n" ] } ], - "prompt_number": 32 + "prompt_number": 50 }, { "cell_type": "code", @@ -913,8 +1833,8 @@ "output_type": "stream", "stream": "stdout", "text": [ - "993\n", - "991" + "987\n", + "988" ] }, { @@ -922,7 +1842,7 @@ "stream": "stdout", "text": [ "\n", - "994" + "996" ] }, { @@ -930,7 +1850,7 @@ "stream": "stdout", "text": [ "\n", - "989" + "995" ] }, { @@ -938,11 +1858,11 @@ "stream": "stdout", "text": [ "\n", - "1 loops, best of 3: 56.6 s per loop\n" + "1 loops, best of 3: 31.1 s per loop\n" ] } ], - "prompt_number": 33 + "prompt_number": 51 }, { "cell_type": "code", @@ -961,59 +1881,99 @@ "output_type": "stream", "stream": "stdout", "text": [ - "jutting ['_', 'u', 't', 't', 'i', 'n', 'g'] ['e', 'a', 'o', 'l', 's', 'f', 'p', 'b', 'c', 'r']\n", - "faze" + "naked ['_', 'a', '_', 'e', 'd'] ['s', 'r', 'w', 'c', 't', 'g', 'l', 'f', 'p', 'm']\n", + "wound" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " ['_', 'o', 'u', 'n', 'd'] ['s', 'e', 'a', 'y', 'p', 'm', 'f', 'h', 'b', 'r']\n", + "hut" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " ['_', 'u', 't'] ['a', 'o', 'e', 'i', 'b', 'g', 'n', 'p', 'm', 'c']\n", + "fucker" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " ['_', 'u', '_', '_', 'e', 'r'] ['d', 's', 'i', 'a', 'o', 't', 'b', 'n', 'm', 'l']\n", + "fox" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " ['_', 'o', '_'] ['a', 't', 'b', 'd', 'w', 'p', 'n', 's', 'g', 'y']\n", + "wills" + ] + }, + { + "output_type": "stream", + "stream": "stdout", + "text": [ + " ['_', 'i', 'l', 'l', 's'] ['e', 'o', 'a', 'g', 'p', 'm', 'k', 'f', 'h', 'd']\n", + "bunny" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - " ['_', 'a', '_', 'e'] ['r', 'l', 'm', 'p', 's', 'g', 'b', 'd', 'v', 'k']\n", - "fate" + " ['_', 'u', 'n', 'n', 'y'] ['s', 'e', 'a', 'o', 'i', 'm', 'l', 'g', 'f', 't']\n", + "curving" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - " ['_', 'a', '_', 'e'] ['r', 'l', 'm', 'p', 's', 'g', 'b', 'd', 'v', 'k']\n", - "dunk" + " ['c', 'u', '_', '_', 'i', 'n', 'g'] ['e', 'a', 'o', 'l', 's', 'f', 'p', 'b', 't', 'm']\n", + "hoe" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - " ['_', 'u', 'n', 'k'] ['e', 's', 'o', 'a', 'i', 'l', 'f', 'r', 'j', 'p']\n", - "loons" + " ['_', 'o', '_'] ['a', 't', 'b', 'd', 'w', 'p', 'n', 's', 'g', 'y']\n", + "butt" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - " ['_', 'o', 'o', 'n', 's'] ['e', 't', 'k', 'm', 'p', 'd', 'f', 'c', 'b', 'g']\n", - "lab" + " ['_', 'u', '_', '_'] ['e', 's', 'o', 'a', 'i', 'l', 'f', 'r', 'n', 'm']\n", + "mucked" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - " ['_', 'a', 'b'] ['t', 'p', 'g', 'w', 'm', 'd', 'y', 'r', 'c', 'n']\n", - "joked" + " ['_', 'u', '_', '_', 'e', 'd'] ['a', 'o', 'i', 'l', 's', 't', 'f', 'p', 'g', 'b']\n", + "flaw" ] }, { "output_type": "stream", "stream": "stdout", "text": [ - " ['_', 'o', 'k', 'e', 'd'] ['s', 'a', 'w', 'p', 't', 'r', 'h', 'b', 'y', 'c']\n" + " ['f', 'l', 'a', '_'] ['e', 's', 'o', 'r', 'y', 'g', 'k', 'x', 'p', 'n']\n" ] } ], - "prompt_number": 34 + "prompt_number": 52 }, { "cell_type": "code", @@ -1035,11 +1995,11 @@ "output_type": "stream", "stream": "stdout", "text": [ - "0.9923\n" + "0.9936\n" ] } ], - "prompt_number": 35 + "prompt_number": 53 }, { "cell_type": "code", @@ -1047,7 +2007,8 @@ "input": [], "language": "python", "metadata": {}, - "outputs": [] + "outputs": [], + "prompt_number": 53 } ], "metadata": {}