pb1a38a600

Step-by-step: fast exponentiation

Nov 3rd, 2026
5
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. Step-by-step: 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. 1. Шаг 1. Входные данные. Проверяем, что приходит в функцию, и какие значения считаются корректными.
  47. 2. Шаг 2. Основной цикл. Именно здесь происходит вся работа; следим за изменениями переменных на каждой итерации.
  48. 3. Шаг 3. Результат. Убеждаемся, что возвращаемое значение соответствует условию задачи, включая крайние случаи.
  49.  
  50. Когда каждый шаг понятен, доработка решения перестаёт быть лотереей.
  51.  
  52. View Full Gallery → https://go.cbrop.com/prse
  53.  
  54. Related:
  55.  
  56. https://vit.ac.in/wp-content/uploads/event-manager-uploads/event_banner/2026/11/katkyle-4642fd.pdf
  57. https://news-ctl-posts.hashnode.dev/a-step-by-step-look-at-fast-exponentiation-part-5819
  58. https://pastebin.com/TbcA8zAS
  59. https://gitlab.com/chuongnhuhoa/trusrewre/-/blob/main/articles/digit-sum-tests-mw09wxf5.md
  60. https://mycommunitycalendars.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/dogday-r34-c88ad9.pdf
  61.  
Advertisement
Add Comment
Please, Sign In to add comment