Швидке піднесення до степеня — алгоритм піднесення числа x до натурального степеня n шляхом повторюваного зведення в квадрат та множення. Потребує суттєво меншої кількості множень — —, ніж виконання цієї операції за безпосереднім визначенням степеня — .
Опис
Нехай — двійкове представлення степеня n, тобто,
де . Тоді
Таким чином, алгоритм повторюваного піднесення до квадрата зводиться до мультиплікативного аналогу схеми Горнера:
Приклад
Розглянемо обчислення . Двійкове представлення 13 — , отже .
Для обчислення кожного рядка починаючи з другого потрібне одне множення (загалом — три операції множення).
Ще дві операції множення потрібні для обчислення остаточного результату:
Загалом виходить п'ять множень (замість дванадцяти множень за безпосереднім визначенням степеня).
Обчислювальна складність
Кількість множень, необхідна для піднесення числа x до степеня n алгоритмом, визначається за формулою: , де H — кількість нулів, а E — кількість одиниць у двійковому записі числа n. Таким чином, кількість множень становить .
Наприклад, для піднесення до сотого степеня за цим алгоритмом потрібно лише 8 множень.
Оптимальність
Алгоритм не завжди найоптимальніший за кількістю множень: наприклад, піднесення до степеня n = 15 повторюваним піднесенням до квадрата потребує 6 множень, хоча результату можна досягти за 5:
Однак найоптимальніший шлях має таку ж оцінку складності, як і повторюване піднесення до квадрата (), а ефективного алгоритму побудови найкоротшої послідовності обчислень у загальному випадку відомо не було.
Узагальнення
Нехай пара (S, *) — напівгрупа, тобто є S — довільна множина, на якій завдана двомісна операція * така, що:
- Для будь-яких елементів a і b з S справедливо: (a * b) так же з S. (замкнутість)
- Для будь-яких елементів a, b і c з S справедливо: ((a * b) * c) = (a * (b * c)). (асоціативність)
Ми можемо назвати операцію * множенням і визначити піднесення до натурального степеня:
Для обчислення значень an можна застосовувати алгоритм повторюваного піднесення до квадрата.
Джерела
- Гашков, 2011, с. 142.
Посилання
- Repeated Squaring [ 20 листопада 2015 у Wayback Machine.] (англ.)
- Гашков, С. Б. . Задача об аддитивных цепочках и ее обобщения // Математическое просвещение. — 2011. — Вип. 15. — С. 138-153. — .
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Shvidke pidnesennya do stepenya algoritm pidnesennya chisla x do naturalnogo stepenya n shlyahom povtoryuvanogo zvedennya v kvadrat ta mnozhennya Potrebuye suttyevo menshoyi kilkosti mnozhen O log n displaystyle O log n nizh vikonannya ciyeyi operaciyi za bezposerednim viznachennyam stepenya O n displaystyle O n OpisNehaj n mkmk 1 m1m0 2 displaystyle n overline m k m k 1 m 1 m 0 2 dvijkove predstavlennya stepenya n tobto n mk 2k mk 1 2k 1 m1 2 m0 displaystyle n m k cdot 2 k m k 1 cdot 2 k 1 dots m 1 cdot 2 m 0 de mk 1 mi 0 1 displaystyle m k 1 m i in 0 1 Todi xn x mk 2 mk 1 2 mk 2 2 2 m1 2 m0 xmk 2 xmk 1 2 2 xm1 2 xm0 displaystyle x n x dots m k cdot 2 m k 1 cdot 2 m k 2 cdot 2 dots cdot 2 m 1 cdot 2 m 0 dots x m k 2 cdot x m k 1 2 dots 2 cdot x m 1 2 cdot x m 0 Takim chinom algoritm povtoryuvanogo pidnesennya do kvadrata zvoditsya do multiplikativnogo analogu shemi Gornera s1 xsi 1 si2 xmk ii 1 2 k displaystyle begin Bmatrix s 1 x s i 1 s i 2 cdot x m k i i 1 2 dots k end Bmatrix PrikladRozglyanemo obchislennya 313 displaystyle 3 13 Dvijkove predstavlennya 13 1101 2 displaystyle 1101 2 otzhe 8 4 1 13 displaystyle 8 4 1 13 31 displaystyle 3 1 3 displaystyle 3 32 displaystyle 3 2 9 3 3 displaystyle 9 3 times 3 34 displaystyle 3 4 81 9 9 displaystyle 81 9 times 9 38 displaystyle 3 8 6561 81 81 displaystyle 6561 81 times 81 Dlya obchislennya kozhnogo ryadka pochinayuchi z drugogo potribne odne mnozhennya zagalom tri operaciyi mnozhennya She dvi operaciyi mnozhennya potribni dlya obchislennya ostatochnogo rezultatu 31 34 38 313 1594323 displaystyle 3 1 times 3 4 times 3 8 3 13 1594323 Zagalom vihodit p yat mnozhen zamist dvanadcyati mnozhen za bezposerednim viznachennyam stepenya Obchislyuvalna skladnistKilkist mnozhen neobhidna dlya pidnesennya chisla x do stepenya n algoritmom viznachayetsya za formuloyu H 2 E 1 displaystyle H 2 E 1 de H kilkist nuliv a E kilkist odinic u dvijkovomu zapisi chisla n Takim chinom kilkist mnozhen stanovit O log n displaystyle O log n Napriklad dlya pidnesennya do sotogo stepenya za cim algoritmom potribno lishe 8 mnozhen OptimalnistAlgoritm ne zavzhdi najoptimalnishij za kilkistyu mnozhen napriklad pidnesennya do stepenya n 15 povtoryuvanim pidnesennyam do kvadrata potrebuye 6 mnozhen hocha rezultatu mozhna dosyagti za 5 x2 x x displaystyle x 2 x times x x3 x2 x displaystyle x 3 x 2 times x x6 x3 x3 displaystyle x 6 x 3 times x 3 x12 x6 x6 displaystyle x 12 x 6 times x 6 x15 x12 x3 displaystyle x 15 x 12 times x 3 Odnak najoptimalnishij shlyah maye taku zh ocinku skladnosti yak i povtoryuvane pidnesennya do kvadrata O log n displaystyle O log n a efektivnogo algoritmu pobudovi najkorotshoyi poslidovnosti obchislen u zagalnomu vipadku vidomo ne bulo UzagalnennyaNehaj para S napivgrupa tobto ye S dovilna mnozhina na yakij zavdana dvomisna operaciya taka sho Dlya bud yakih elementiv a i b z S spravedlivo a b tak zhe z S zamknutist Dlya bud yakih elementiv a b i c z S spravedlivo a b c a b c asociativnist Mi mozhemo nazvati operaciyu mnozhennyam i viznachiti pidnesennya do naturalnogo stepenya an an 1a an 1 n gt 1 displaystyle a n left begin array ll a amp n 1 a left a n 1 right amp n gt 1 end array right Dlya obchislennya znachen an mozhna zastosovuvati algoritm povtoryuvanogo pidnesennya do kvadrata DzherelaGashkov 2011 s 142 PosilannyaRepeated Squaring 20 listopada 2015 u Wayback Machine angl Gashkov S B Zadacha ob additivnyh cepochkah i ee obobsheniya Matematicheskoe prosveshenie 2011 Vip 15 S 138 153 ISBN 978 5 94057 741 6