Removing files from data analysis directory
[ou-summer-of-code-2017.git] / 01-ticket-prices / day1-ruby.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 1,
6 "metadata": {
7 "scrolled": true
8 },
9 "outputs": [
10 {
11 "data": {
12 "text/plain": [
13 "[[\"dda7d369\", \"1546\", \"Uzupis\", \"21\"], [\"68022753\", \"1239\", \"Mamula\", \"21\"], [\"b261dbd1cef\", \"996\", \"Holmegaard\", \"21\"], [\"5b23fa704734\", \"1194\", \"Giessenmestia\", \"14\"], [\"7b049264\", \"1077\", \"Hajnowski\", \"10\"], [\"ce8b3fcd44b1\", \"849\", \"Sofia\", \"14\"], [\"68660362\", \"1568\", \"Morgantown\", \"21\"], [\"ea6c84938e2\", \"1310\", \"Nullarbor\", \"7\"], [\"1385d067d40b\", \"1365\", \"Zhangye-Shi\", \"7\"], [\"4ebc5e0b\", \"1227\", \"Uzupis\", \"7\"], [\"ee064e1e2ea\", \"785\", \"Nullarbor\", \"14\"], [\"34f7247adaf\", \"1413\", \"Nordkapp\", \"10\"], [\"ec5f5691\", \"1150\", \"Luoyang\", \"14\"], [\"b1aa6c5d8a\", \"821\", \"Estacada\", \"21\"], [\"71573a6513\", \"1259\", \"Giessenmestia\", \"7\"], [\"a87ad38a7\", \"879\", \"Aalborg\", \"21\"], [\"67985d6aa\", \"1525\", \"Stonington-Island\", \"14\"], [\"303db888d\", \"1316\", \"Tubakuba\", \"7\"], [\"6f2f9ff6b7bd\", \"903\", \"Zhangye-Shi\", \"3\"], [\"54670c3136d\", \"1254\", \"Luoyang\", \"7\"], [\"e1f3bd201\", \"1379\", \"Uzupis\", \"14\"], [\"a2dd4aec\", \"1160\", \"Nullarbor\", \"3\"], [\"398d3e972f49\", \"1194\", \"Estacada\", \"14\"], [\"cd227c32d4e\", \"984\", \"Estacada\", \"14\"], [\"16935ed587bf\", \"1312\", \"Grimsey-Island\", \"14\"], [\"ceb26b792\", \"1352\", \"Sofia\", \"21\"], [\"952801ceb36\", \"1126\", \"Stonington-Island\", \"7\"], [\"7f1a85bc\", \"1140\", \"Luoyang\", \"7\"], [\"d6b03403\", \"1207\", \"Morgantown\", \"14\"], [\"3251b683b9f\", \"1466\", \"Zhangye-Shi\", \"21\"], [\"134d5f5b3f\", \"1399\", \"Tambon-Pa-Fa\", \"14\"], [\"732cbc2c276b\", \"947\", \"Sukhumi\", \"14\"], [\"60fdf85cf570\", \"1002\", \"Almaty\", \"14\"], [\"303965365c4\", \"1594\", \"Sofia\", \"14\"], [\"1fc012fcb7c5\", \"1081\", \"Jayuya\", \"21\"], [\"579302498bdc\", \"1076\", \"Parowan\", \"14\"], [\"27861346\", \"1046\", \"Grimsey-Island\", \"14\"], [\"9a226b7b33c\", \"906\", \"Hajnowski\", \"7\"], [\"943fa28d\", \"1541\", \"Karlukovo\", \"7\"], [\"c3cac7d3bc\", \"813\", \"Ijsseloog\", \"7\"], [\"41c837263600\", \"1083\", \"Puente-Laguna-Garzonkuala-Penyu\", \"14\"], [\"4a642c384ea\", \"1146\", \"Sukhumi\", \"14\"], [\"9997e977978\", \"1170\", \"Geoje-Si\", \"14\"], [\"eaa91671\", \"943\", \"Stonington-Island\", \"14\"], [\"26ae2d0b7\", \"1188\", \"Aalborg\", \"7\"], [\"1634fe98c256\", \"1058\", \"Jayuya\", \"7\"], [\"1892f12d6\", \"948\", \"Stonington-Island\", \"14\"], [\"2407d5e3\", \"1234\", \"Sofia\", \"7\"], [\"49e8530b61a0\", \"1061\", \"Nullarbor\", \"3\"], [\"c1254c8fc9a\", \"909\", \"Puente-Laguna-Garzonkuala-Penyu\", \"7\"], [\"a3fec18095\", \"1256\", \"Geoje-Si\", \"7\"], [\"650a2b292e5c\", \"1623\", \"Puente-Laguna-Garzonkuala-Penyu\", \"14\"], [\"bf75e25a6b8\", \"1448\", \"Puente-Laguna-Garzonkuala-Penyu\", \"7\"], [\"44dadca0cd9\", \"1345\", \"Aalborg\", \"7\"], [\"4caefcacded0\", \"1644\", \"Gorongosa\", \"21\"], [\"de5d04b2c3a\", \"867\", \"Tubakuba\", \"7\"], [\"aea2a458023\", \"727\", \"Brorfelde\", \"21\"], [\"c5f99dca95e\", \"1727\", \"Morgantown\", \"14\"], [\"2ee77108\", \"1549\", \"Mora\", \"7\"], [\"4809881ff7\", \"1380\", \"Holmegaard\", \"7\"], [\"5d2c9d24\", \"1263\", \"Giessenmestia\", \"21\"], [\"67c14f2635\", \"1157\", \"Stonington-Island\", \"7\"], [\"3962815e6\", \"1497\", \"Ijsseloog\", \"7\"], [\"757f3c9f5\", \"1208\", \"Hajnowski\", \"14\"], [\"e1cd5acf5\", \"1044\", \"Stonington-Island\", \"14\"], [\"0ee0ff115\", \"1181\", \"Jayuya\", \"21\"], [\"06af8642ff\", \"1389\", \"Sofia\", \"7\"], [\"46c6b6fa76\", \"1184\", \"Hajnowski\", \"14\"], [\"435b4e82\", \"1429\", \"Morgantown\", \"21\"], [\"35ea596f\", \"1613\", \"Tubakuba\", \"7\"], [\"f7cbb3da7e6\", \"731\", \"Aalborg\", \"14\"], [\"e1df7ea96302\", \"1483\", \"Almaty\", \"7\"], [\"6fb97c1a3\", \"993\", \"Almaty\", \"7\"], [\"c86e2e5826\", \"1331\", \"Morgantown\", \"21\"], [\"995f57877aac\", \"1155\", \"Tambon-Pa-Fa\", \"14\"], [\"6ffab38e7b\", \"1228\", \"Mamula\", \"14\"], [\"f60e203aaaf9\", \"623\", \"Lemnos\", \"21\"], [\"1942931f2\", \"1219\", \"Parowan\", \"14\"], [\"da926535df\", \"1383\", \"Jayuya\", \"7\"], [\"b1dc6df3240\", \"1261\", \"Holmegaard\", \"7\"], [\"df7bd3ee5\", \"1209\", \"Parowan\", \"7\"], [\"b4e498b9ed\", \"1060\", \"Geoje-Si\", \"14\"], [\"bce7bdf7c\", \"878\", \"Lemnos\", \"10\"], [\"1ab9eb3d5422\", \"1376\", \"Tambon-Pa-Fa\", \"14\"], [\"839240114\", \"1546\", \"Tubakuba\", \"7\"], [\"04feb63602\", \"1050\", \"Ijsseloog\", \"14\"], [\"cb89673b727\", \"1681\", \"Ijsseloog\", \"14\"], [\"1e38291d\", \"1438\", \"Luoyang\", \"14\"], [\"f806fc9d\", \"1553\", \"Nordkapp\", \"21\"], [\"a1342d1ec\", \"1368\", \"Ijsseloog\", \"7\"], [\"4a67a59a\", \"1055\", \"Almaty\", \"7\"], [\"c11e991e22ea\", \"1453\", \"Nullarbor\", \"3\"], [\"d168673f959\", \"1330\", \"Karlukovo\", \"7\"], [\"3b1a78218bb5\", \"1083\", \"Tambon-Pa-Fa\", \"10\"], [\"4435ea0d0c5d\", \"1205\", \"Tambon-Pa-Fa\", \"7\"], [\"7a9b44f3bcc\", \"1277\", \"Mora\", \"14\"], [\"0ba9dcee27f3\", \"1261\", \"Karlukovo\", \"14\"], [\"705baebce\", \"1287\", \"Tubakuba\", \"3\"], [\"353e6dc9\", \"1039\", \"Sukhumi\", \"10\"], [\"c9c6d041\", \"1194\", \"Mora\", \"14\"], [\"33123a00\", \"1438\", \"Grimsey-Island\", \"14\"], [\"83f28647\", \"973\", \"Jayuya\", \"7\"], [\"b8521145\", \"1338\", \"Ijsseloog\", \"7\"], [\"b70e605889\", \"834\", \"Puente-Laguna-Garzonkuala-Penyu\", \"10\"], [\"11896bedc4\", \"999\", \"Morgantown\", \"7\"], [\"6ed9a88972\", \"1295\", \"Holmegaard\", \"14\"], [\"166b77df\", \"979\", \"Zhangye-Shi\", \"14\"], [\"fc05fce8d\", \"1551\", \"Lemnos\", \"14\"], [\"4ce3111c66\", \"1106\", \"Karlukovo\", \"10\"], [\"b96caebcfd6\", \"1155\", \"Geoje-Si\", \"21\"], [\"17d3decd842\", \"1041\", \"Ijsseloog\", \"7\"], [\"b6d482b92\", \"1497\", \"Estacada\", \"14\"], [\"1fb40d6b\", \"1568\", \"Stonington-Island\", \"7\"], [\"b4db7910\", \"1300\", \"Ijsseloog\", \"10\"], [\"153da27bcb75\", \"1030\", \"Ijsseloog\", \"3\"], [\"1afd05d3ea88\", \"1072\", \"Parowan\", \"7\"], [\"1541ba11\", \"1047\", \"Almaty\", \"7\"], [\"38b01883fd\", \"1309\", \"Mamula\", \"10\"], [\"f22b8e717c\", \"1401\", \"Tambon-Pa-Fa\", \"21\"], [\"4ad6523f\", \"1085\", \"Luoyang\", \"7\"], [\"38b9690d981\", \"1204\", \"Jayuya\", \"14\"], [\"bfc72b962\", \"1153\", \"Tambon-Pa-Fa\", \"14\"], [\"b116bf9bd\", \"1307\", \"Zhangye-Shi\", \"21\"], [\"7b1c64c74\", \"1361\", \"Tambon-Pa-Fa\", \"10\"]]"
14 ]
15 },
16 "execution_count": 1,
17 "metadata": {},
18 "output_type": "execute_result"
19 }
20 ],
21 "source": [
22 "holidays = File.readlines('01-holidays.txt').map {|l| l.chomp.split}\n",
23 "holidays"
24 ]
25 },
26 {
27 "cell_type": "code",
28 "execution_count": 2,
29 "metadata": {},
30 "outputs": [
31 {
32 "data": {
33 "text/plain": [
34 ":affordable_holidays"
35 ]
36 },
37 "execution_count": 2,
38 "metadata": {},
39 "output_type": "execute_result"
40 }
41 ],
42 "source": [
43 "def affordable_holidays(hs)\n",
44 " hs.select {|h| h[1].to_i < 1200}\n",
45 "end"
46 ]
47 },
48 {
49 "cell_type": "code",
50 "execution_count": 3,
51 "metadata": {},
52 "outputs": [
53 {
54 "data": {
55 "text/plain": [
56 "59"
57 ]
58 },
59 "execution_count": 3,
60 "metadata": {},
61 "output_type": "execute_result"
62 }
63 ],
64 "source": [
65 "affordable_holidays(holidays).length"
66 ]
67 },
68 {
69 "cell_type": "code",
70 "execution_count": 4,
71 "metadata": {},
72 "outputs": [
73 {
74 "data": {
75 "text/plain": [
76 "59"
77 ]
78 },
79 "execution_count": 4,
80 "metadata": {},
81 "output_type": "execute_result"
82 }
83 ],
84 "source": [
85 "File.readlines('01-holidays.txt').select {|l| l.split[1].to_i <= 1200}.length"
86 ]
87 },
88 {
89 "cell_type": "code",
90 "execution_count": 5,
91 "metadata": {},
92 "outputs": [
93 {
94 "data": {
95 "text/plain": [
96 "1.0"
97 ]
98 },
99 "execution_count": 5,
100 "metadata": {},
101 "output_type": "execute_result"
102 }
103 ],
104 "source": [
105 "$destination_values = {'Almaty' => 2.0, 'Brorfelde' => 0.9, 'Estacada' => 0.4, \n",
106 " 'Jayuya' => 0.6, 'Karlukovo' => 2.2, \n",
107 " 'Morgantown' => 2.9,'Nordkapp' => 1.5, 'Nullarbor' => 2.2, \n",
108 " 'Puente-Laguna-Garzonkuala-Penyu' => 0.4, 'Uzupis' => 0.9}\n",
109 "$destination_values.default = 1.0"
110 ]
111 },
112 {
113 "cell_type": "code",
114 "execution_count": 6,
115 "metadata": {},
116 "outputs": [
117 {
118 "data": {
119 "text/plain": [
120 "2.0"
121 ]
122 },
123 "execution_count": 6,
124 "metadata": {},
125 "output_type": "execute_result"
126 }
127 ],
128 "source": [
129 "$destination_values['Almaty']"
130 ]
131 },
132 {
133 "cell_type": "code",
134 "execution_count": 7,
135 "metadata": {},
136 "outputs": [
137 {
138 "data": {
139 "text/plain": [
140 "1.0"
141 ]
142 },
143 "execution_count": 7,
144 "metadata": {},
145 "output_type": "execute_result"
146 }
147 ],
148 "source": [
149 "$destination_values['Aardvark']"
150 ]
151 },
152 {
153 "cell_type": "code",
154 "execution_count": 8,
155 "metadata": {},
156 "outputs": [
157 {
158 "data": {
159 "text/plain": [
160 ":value"
161 ]
162 },
163 "execution_count": 8,
164 "metadata": {},
165 "output_type": "execute_result"
166 }
167 ],
168 "source": [
169 "def value(holiday)\n",
170 " $destination_values[holiday[2]] * holiday[3].to_f / holiday[1].to_i \n",
171 "end"
172 ]
173 },
174 {
175 "cell_type": "code",
176 "execution_count": 9,
177 "metadata": {},
178 "outputs": [
179 {
180 "data": {
181 "text/plain": [
182 "0.012225097024579561"
183 ]
184 },
185 "execution_count": 9,
186 "metadata": {},
187 "output_type": "execute_result"
188 }
189 ],
190 "source": [
191 "value(holidays[0])"
192 ]
193 },
194 {
195 "cell_type": "code",
196 "execution_count": 10,
197 "metadata": {},
198 "outputs": [
199 {
200 "data": {
201 "text/plain": [
202 "\"ee064e1e2ea\""
203 ]
204 },
205 "execution_count": 10,
206 "metadata": {},
207 "output_type": "execute_result"
208 }
209 ],
210 "source": [
211 "affordable_holidays(holidays).max_by {|h| value h}.first"
212 ]
213 },
214 {
215 "cell_type": "code",
216 "execution_count": null,
217 "metadata": {
218 "collapsed": true
219 },
220 "outputs": [],
221 "source": []
222 }
223 ],
224 "metadata": {
225 "kernelspec": {
226 "display_name": "Ruby 2.4.0",
227 "language": "ruby",
228 "name": "ruby"
229 },
230 "language_info": {
231 "file_extension": ".rb",
232 "mimetype": "application/x-ruby",
233 "name": "ruby",
234 "version": "2.4.0"
235 }
236 },
237 "nbformat": 4,
238 "nbformat_minor": 2
239 }