Guest User

Untitled

a guest
Oct 19th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. #
  4. # フィボナッチ数列 第30項を計算する関数に
  5. # lru_cacheを使って関数の呼び出し回数を比較
  6. #
  7.  
  8. from functools import lru_cache
  9.  
  10. exec_counter = 0
  11.  
  12. @lru_cache(maxsize=None)
  13.  
  14. def fibonacci(n):
  15. global exec_counter
  16.  
  17. exec_counter += 1
  18. if n == 0:
  19. return 0
  20. if n == 1:
  21. return 1
  22.  
  23. return fibonacci(n - 1) + fibonacci(n - 2)
  24.  
  25. print(fibonacci(30))
  26. print(f"exec_count : {exec_counter}")
  27.  
  28. # キャッシュなし
  29. # 832040
  30. # exec_count: 2692537
  31.  
  32. # キャッシュあり
  33. # 832040
  34. # exec_count: 31
Add Comment
Please, Sign In to add comment