pb1a38a600

Exploring fast exponentiation

Nov 10th, 2026
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. Exploring fast exponentiation
  2.  
  3. Разберём задачу, которая встречается практически в каждом учебнике по программированию.
  4.  
  5. Задача
  6.  
  7. Вычислить base ** exp двумя способами: простым умножением и алгоритмом быстрого возведения в степень.
  8.  
  9. Решение
  10.  
  11. ``python
  12. def power(base: int, exp: int) -> int:
  13. result = 1
  14. for _ in range(exp):
  15. result *= base
  16. return result
  17.  
  18. def fast_power(base: int, exp: int) -> int:
  19. result = 1
  20. while exp > 0:
  21. if exp % 2 == 1:
  22. result *= base
  23. base *= base
  24. exp //= 2
  25. return result
  26.  
  27. print(power(2, 10), fast_power(2, 10))
  28. `
  29.  
  30. Как это работает
  31.  
  32. Быстрый метод использует двоичное представление показателя: показатель делится на два, а основание возводится в квадрат. Число умножений падает с exp до log2(exp).
  33.  
  34. Пример работы
  35.  
  36. `text
  37. 1024 1024
  38. ``
  39.  
  40. Сложность
  41.  
  42. O(exp) против O(log exp).
  43.  
  44. Это решение удобно как отправная точка для экспериментов: попробуйте изменить входные данные и проследить за поведением кода.
  45.  
  46. View Full Gallery → https://go.cbrop.com/prse
  47.  
  48. Related:
  49.  
  50. https://sway.cloud.microsoft/4LCCBKYPElEVQyuh
  51. https://ymcatexasyg.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/yogahotwife-7b6ee7.pdf
  52. https://duboismaria0.wixsite.com/my-site-1/post/wnba-%E5%9D%8E%E8%B4%9D%E5%A5%87
  53. https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/u-15-idol-c4ddd3.pdf
  54. https://pastebin.com/vWBDxdmT
  55.  
Advertisement
Add Comment
Please, Sign In to add comment