|
267 | 267 | }, |
268 | 268 | { |
269 | 269 | "cell_type": "code", |
270 | | - "execution_count": null, |
| 270 | + "execution_count": 8, |
271 | 271 | "metadata": {}, |
272 | 272 | "outputs": [], |
273 | 273 | "source": [ |
274 | 274 | "# Finding Fibonacci number in series\n", |
275 | | - "# count = 0\n", |
| 275 | + "count = 0\n", |
276 | 276 | "def fib(n):\n", |
277 | | - " #global count\n", |
278 | | - " #count += 1\n", |
| 277 | + " global count\n", |
| 278 | + " count += 1\n", |
279 | 279 | " if n <= 1:\n", |
280 | 280 | " return n\n", |
281 | 281 | " f = fib(n-1) + fib(n-2)\n", |
|
284 | 284 | }, |
285 | 285 | { |
286 | 286 | "cell_type": "code", |
287 | | - "execution_count": null, |
| 287 | + "execution_count": 9, |
288 | 288 | "metadata": {}, |
289 | | - "outputs": [], |
| 289 | + "outputs": [ |
| 290 | + { |
| 291 | + "name": "stdout", |
| 292 | + "output_type": "stream", |
| 293 | + "text": [ |
| 294 | + "fib was called 7049155 times.\n" |
| 295 | + ] |
| 296 | + } |
| 297 | + ], |
290 | 298 | "source": [ |
291 | 299 | "fib(32)\n", |
292 | | - "#print(count)\n", |
293 | | - "#assert fib(8) == 21\n", |
294 | | - "#assert fib(10) == 55" |
| 300 | + "print(f'fib was called {count} times.')\n", |
| 301 | + "assert fib(8) == 21\n", |
| 302 | + "assert fib(10) == 55" |
295 | 303 | ] |
296 | 304 | }, |
297 | 305 | { |
|
301 | 309 | "<img src=\"./resources/recursion-fib.svg\" width=\"50%\">\n", |
302 | 310 | "\n", |
303 | 311 | "### visualize fib(4) using pythontutor.com\n", |
304 | | - "- https://goo.gl/YNizhH" |
| 312 | + "- https://goo.gl/YNizhH\n", |
| 313 | + "\n", |
| 314 | + "### You can timeit\n", |
| 315 | + "\n", |
| 316 | + "- use timeit function to see how long fib(n) takes" |
305 | 317 | ] |
306 | 318 | }, |
307 | 319 | { |
308 | 320 | "cell_type": "code", |
309 | | - "execution_count": null, |
| 321 | + "execution_count": 10, |
310 | 322 | "metadata": {}, |
311 | 323 | "outputs": [], |
| 324 | + "source": [ |
| 325 | + "from timeit import timeit" |
| 326 | + ] |
| 327 | + }, |
| 328 | + { |
| 329 | + "cell_type": "code", |
| 330 | + "execution_count": 11, |
| 331 | + "metadata": {}, |
| 332 | + "outputs": [ |
| 333 | + { |
| 334 | + "data": { |
| 335 | + "text/plain": [ |
| 336 | + "1.1521884420071729" |
| 337 | + ] |
| 338 | + }, |
| 339 | + "execution_count": 11, |
| 340 | + "metadata": {}, |
| 341 | + "output_type": "execute_result" |
| 342 | + } |
| 343 | + ], |
312 | 344 | "source": [ |
313 | 345 | "timeit(\"fib(32)\", globals=globals(), number=1)" |
314 | 346 | ] |
|
325 | 357 | }, |
326 | 358 | { |
327 | 359 | "cell_type": "code", |
328 | | - "execution_count": null, |
| 360 | + "execution_count": 12, |
329 | 361 | "metadata": {}, |
330 | 362 | "outputs": [], |
331 | 363 | "source": [ |
|
339 | 371 | }, |
340 | 372 | { |
341 | 373 | "cell_type": "code", |
342 | | - "execution_count": null, |
| 374 | + "execution_count": 13, |
343 | 375 | "metadata": {}, |
344 | | - "outputs": [], |
| 376 | + "outputs": [ |
| 377 | + { |
| 378 | + "name": "stdout", |
| 379 | + "output_type": "stream", |
| 380 | + "text": [ |
| 381 | + "2178309\n" |
| 382 | + ] |
| 383 | + } |
| 384 | + ], |
345 | 385 | "source": [ |
346 | 386 | "print(fib_tail(32, 0, 1))" |
347 | 387 | ] |
348 | 388 | }, |
349 | 389 | { |
350 | 390 | "cell_type": "code", |
351 | | - "execution_count": null, |
| 391 | + "execution_count": 14, |
352 | 392 | "metadata": {}, |
353 | | - "outputs": [], |
| 393 | + "outputs": [ |
| 394 | + { |
| 395 | + "data": { |
| 396 | + "text/plain": [ |
| 397 | + "1.3885000953450799e-05" |
| 398 | + ] |
| 399 | + }, |
| 400 | + "execution_count": 14, |
| 401 | + "metadata": {}, |
| 402 | + "output_type": "execute_result" |
| 403 | + } |
| 404 | + ], |
354 | 405 | "source": [ |
355 | 406 | "timeit(\"fib_tail(32, 0, 1)\", globals=globals(), number=1)" |
356 | 407 | ] |
|
0 commit comments