Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Exploring fast exponentiation
- Разберём задачу, которая встречается практически в каждом учебнике по программированию.
- Задача
- Вычислить base ** exp двумя способами: простым умножением и алгоритмом быстрого возведения в степень.
- Решение
- ``python
- def power(base: int, exp: int) -> int:
- result = 1
- for _ in range(exp):
- result *= base
- return result
- def fast_power(base: int, exp: int) -> int:
- result = 1
- while exp > 0:
- if exp % 2 == 1:
- result *= base
- base *= base
- exp //= 2
- return result
- print(power(2, 10), fast_power(2, 10))
- `
- Как это работает
- Быстрый метод использует двоичное представление показателя: показатель делится на два, а основание возводится в квадрат. Число умножений падает с exp до log2(exp).
- Пример работы
- `text
- 1024 1024
- ``
- Сложность
- O(exp) против O(log exp).
- Это решение удобно как отправная точка для экспериментов: попробуйте изменить входные данные и проследить за поведением кода.
- View Full Gallery → https://go.cbrop.com/prse
- Related:
- https://sway.cloud.microsoft/4LCCBKYPElEVQyuh
- https://ymcatexasyg.org/wp-content/uploads/event-manager-uploads/event_banner/2026/11/yogahotwife-7b6ee7.pdf
- https://duboismaria0.wixsite.com/my-site-1/post/wnba-%E5%9D%8E%E8%B4%9D%E5%A5%87
- https://cultmtl.com/wp-content/uploads/event-manager-uploads/event_banner/2026/11/u-15-idol-c4ddd3.pdf
- https://pastebin.com/vWBDxdmT
Advertisement
Add Comment
Please, Sign In to add comment