Осваиваем задачу: возведение в степень
Разберём задачу, которая встречается практически в каждом учебнике по программированию.
Задача
Вычислить base ** exp двумя способами: простым умножением и алгоритмом быстрого возведения в степень.
Решение
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).
Пример работы
1024 1024
Сложность
O(exp) против O(log exp).
Такой пример хорошо закрепляется практикой — перепишите решение руками и прогоните на своих тестах.
Related:
- Desi Blowjob in Car – Hot Indian Girl Sucks Boyfriend's Cock
- Understanding fast exponentiation
- Два способа решения: переворот строки
- Частые ошибки при решении: сортировка пузырьком
- عکس جنده ایرانی، گالری عکسهای سکسی ایرانی ۱۴۰۰ و ویدیوهای جدید
- Проверяем решение тестами: решето Эратосфена
- Adik Kakak Viral 16 Menit - Video Dewasa HD
- Медленно и подробно: проверка анаграмм
- Maid Mana Leaked OnlyFans Videos and Nude Photos
- Медленно и подробно: решето Эратосфена
- Два подхода: максимум и минимум списка
- gv 男
- 壮熊 gv
- Типичные ошибки при решении: быстрая сортировка
- livu ifşa
- karina orlova
- نكاح مصري - زواج بالشريعة والعرف المصري الأصيل
- Nudismus: Freie Körperkultur am Strand und in der Natur
- Gojo and Geto fantasy 480p, adult anime fan art gallery
- Veronica Silesto Nude OnlyFans Leaked Photos & Pics Gallery
- Типичные ошибки при решении: возведение в степень
- monroe katerina kozlova
- xnxx مترجم محارم - افلام سكس مترجمة ومحرمة عربية
- Решаем и тестируем: удаление дубликатов из списка
- A step-by-step look at the Caesar cipher
- vicineko 原神
- allison angel of leaks