Алгоритмы быстрого возведения в степень

Алгоритмы быстрого возведения в степень (дихотомический алгоритм возведения в степень, бинарный алгоритм возведения в степень) — алгоритмы, предназначенные для возведения числа в натуральную степень за меньшее число умножений, чем это требуется в определении степени[1]. Многие из этих алгоритмов основаны на том, что для возведения числа в степень не обязательно перемножать число на само себя раз, а можно перемножать уже вычисленные степени. В частности, если степень двойки, то для возведения в степень достаточно число возвести в квадрат раз, затратив при этом умножений вместо . Например, чтобы возвести число в восьмую степень, вместо выполнения семи умножений можно возвести число в квадрат (), потом результат возвести ещё раз в квадрат и получить четвёртую степень (), и наконец результат ещё раз возвести в квадрат и получить ответ ().

Кроме того, некоторые алгоритмы для дальнейшей оптимизации используют тот факт, что операция возведения в квадрат быстрее операции умножения за счёт того, что при возведении в квадрат цифры в сомножителе повторяются[2].

Бинарный алгоритм возведения в степень был впервые предложен в XV веке персидским математиком Аль-Каши[3].

Данные алгоритмы не всегда оптимальны. Например, при использовании схемы «слева направо» быстрое возведение в степень n = 15 потребует выполнения трёх операций умножения и трёх операций возведения в квадрат, хотя возведение в 15-ю степень можно выполнить и за 3 умножения и 2 возведения в квадрат[4]. Оптимальное возведение в степень соответствует построению кратчайшей аддитивной цепочки.

Описание

Основным алгоритмом быстрого возведения в степень является схема «слева направо». Она получила своё название вследствие того, что биты показателя степени просматриваются слева направо, то есть от старшего к младшему[5].

Пусть

 — двоичное представление степени n, то есть,

где . Тогда

[5].

Последовательность действий при использовании данной схемы можно описать так:

  1. Представить показатель степени n в двоичном виде
  2. Если = 1, то текущий результат возводится в квадрат и затем умножается на x. Если = 0, то текущий результат просто возводится в квадрат[6]. Индекс i изменяется от k-1 до 0[7].

Таким образом, алгоритм быстрого возведения в степень сводится к мультипликативному аналогу схемы Горнера[6]:

Обобщения

Пусть пара (S, *) — полугруппа, тогда мы можем назвать операцию * умножением и определить операцию возведения в натуральную степень:

Тогда для вычисления значений an в любой полугруппе (в абелевой группе в частности) можно использовать алгоритмы быстрого возведения в степень[8].

Примеры решения задач

Применяя алгоритм, вычислим 2113:

Схема «справа налево»

В данной схеме, в отличие от схемы «слева направо», биты показателя степени просматриваются от младшего к старшему[5].

Последовательность действий при реализации данного алгоритма.

  1. Представить показатель степени n в двоичном виде.
  2. Положить вспомогательную переменную z равной числу x.
    1. Если , то текущий результат умножается на z, а само число z возводится в квадрат. Если = 0, то требуется только возвести z в квадрат[6]. При этом индекс i, в отличие от схемы слева направо, изменяется от 0 до k-1 включительно[7].

Данная схема содержит столько же умножений и возведений в квадрат, сколько и схема «слева направо». Однако несмотря на это, схема «слева направо» выгоднее схемы «справа налево», особенно в случае, если показатель степени содержит много единиц. Дело в том, что в схеме слева направо в операции result = result · x содержится постоянный множитель x. А для небольших x (что нередко бывает в тестах простоты) умножение будет быстрым. К примеру, для x = 2 мы можем операцию умножения заменить операцией сложения[7].

Математическое обоснование работы данного алгоритма можно представить следующей формулой:

[9].

Пример. Посчитаем с помощью схемы возведения в степень «справа налево» значение 2113.

i 0 1 2 3
21 441 194 481 37 822 859 361
1 0 1 1
  1. 21 · 194 481 = 4084 101
  2. 4084 101 · 37 822 859 361 = 154 472 377 739 119 461

Вычислительная сложность

И для схемы «слева направо», и для схемы «справа налево» количество операций возведения в квадрат одинаково и равно k, где k — длина показателя степени n в битах, . Количество же требуемых операций умножения равно весу Хэмминга, то есть количеству ненулевых элементов в двоичной записи числа n. В среднем требуется операций умножения[6].

Например, для возведения числа в сотую степень этим алгоритмом потребуется всего лишь 8 операций умножения и возведения в квадрат[5].

Для сравнения, при стандартном способе возведения в степень требуется операция умножения, то есть количество операций может быть оценено как [10].

Оптимизация алгоритма

Как правило, операция возведения в квадрат выполняется быстрее операции умножения. Метод окон позволяет сократить количество операций умножения и, следовательно, сделать алгоритм возведения в степень более оптимальным[8].

Окно фактически представляет собой основание системы счисления[7]. Пусть w — ширина окна, то есть за один раз учитывается w знаков показателя.

Рассмотрим метод окна.

  1. Для заранее вычисляется xi
  2. Показатель степени представляется в следующем виде: , где
  3. Пусть y — переменная, в которой будет вычислен конечный результат. Положим .
  4. Для всех i = k/w — 1, k/w — 2, …, 0 выполнить следующие действия:
    1. [8].

В данном алгоритме требуется k возведений в квадрат, но число умножений в среднем сокращается до k/w[8].

Ещё более эффективным является метод скользящего окна. Он заключается в том, что ширина окна во время выполнения процесса может изменяться:

  1. Показатель степени представляется в виде , где , а ei+1 — eiw.
  2. Для вычисляется xi. Далее будем обозначать xi как xi.
  3. Пусть y — переменная, в которой будет вычислен конечный результат. Положим .
  4. Для всех i = l — 1, l — 2, …, 0 выполнить следующие действия:
    1. Для всех j от 0 до ei+1 — ei — 1 y возвести в квадрат
  5. Для всех j от 0 до e0 — 1 y возвести в квадрат[8].

Количество операций возведения в степень в данном алгоритме такое же, как и в методе окна, а вот количество операций умножений сократилось до l, то есть до в среднем[8].

Для примера возведём методом скользящего окна число x в степень 215. Ширина окна w = 3.

  1. 215 = 27 + 5 · 24 + 7
  2. y = 1
  3. y = y · x = x
  4. y 3 раза возводится в квадрат, так как на данном шаге e2 — e1 −1 = 7 — 4 — 1 = 2, а отсчёт ведётся с нуля, то есть y = y8 = x8
  5. y = y · x5 = x13
  6. y 4 раза возводится в квадрат, так как на данном шаге e1 — e0 −1 = 4 — 0 — 1 = 3, то есть y = y16= x208
  7. y = y · x7 = x215

Применение

Алгоритм быстрого возведения в степень получил широкое распространение в криптосистемах с открытым ключом. В частности, алгоритм применяется в протоколе RSA, схеме Эль-Гамаля и других криптографических алгоритмах[11].

См. также

Примечания

Литература

Read other articles:

Peta menunjukkan lokasi Candelaria Candelaria adalah munisipalitas yang terletak di provinsi Quezon, Filipina. Pada tahun 2010, munisipalitas ini memiliki populasi sebesar 113.514 jiwa dan 23.227 rumah tangga. Pembagian wilayah Secara administratif Candelaria terbagi menjadi 25 barangay, yaitu: Bukal Norte Bukal Sur Buenavista East Buenavista West Kinatihan I Kinatihan II Malabanban Norte Malabanban Sur Mangilag Norte Mangilag Sur Masalukot I Masalukot II Masalukot III Masalukot IV Masalukot ...

 

 

Keuskupan AvezzanoDioecesis MarsorumKatolik Katedral AvezzanoLokasiNegara ItaliaProvinsi gerejawiL'AquilaStatistikLuas1.700 km2 (660 sq mi)Populasi- Total- Katolik(per 2006)115.137109,000 (94.7%)Paroki95InformasiDenominasiGereja KatolikRitusRitus RomaPendirianAbad ke-9KatedralKatedral Santo Bartolomeus Rasul (Avezzano)KonkatedralKonkatedral Santa Maria Bunda Rahmat (Pescina)Kepemimpinan kiniPausFransiskusUskupPietro SantoroPetaSitus webwww.diocesidiavez...

 

 

University in Kenya This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Moi University – news · newspapers · books · scholar · JSTOR (June 2017) (Learn how and when to remove this template message) Moi UniversityMottoFoundation of knowledgeTypePublic UniversityEstablished1984; 40 years ago (1984)FounderDaniel arap MoiBudget6.93 Billion KSH...

Pamflet Perdjoeangan Rakjat di Yogyakarta Pamflet atau Sebaran Lipat (atau dapat juga disebut selebaran, sebaran, risalah, tebaran[1]) adalah tulisan yang dapat disertai dengan gambar atau tidak, tanpa penyampulan maupun penjilidan, yang dicantumkan pada selembar kertas di satu sisi atau kedua sisinya, lalu dilipat atau dipotong setengah, sepertiga, atau bahkan seperempatnya, sehingga terlihat lebih kecil. Pamflet dapat pula terdiri dari beberapa lembar kertas yang dilipat atau disatu...

 

 

Ini adalah nama Batak Toba, marganya adalah Panjaitan. Trimedya PanjaitanS.H., M.H. Anggota Dewan Perwakilan Rakyat Republik IndonesiaPetahanaMulai menjabat 28 Mei 2002[1]Pengganti Antar Waktu hingga 30 September 2004 PendahuluGusti Basan BurniaPenggantiPetahanaDaerah pemilihanSumatera Utara II Informasi pribadiLahir6 Juni 1966 (umur 57)Medan, Sumatera Utara, IndonesiaKebangsaanIndonesiaPartai politikPDI-PSuami/istriJovita Eva Sasantie SiwiAnak3Alma materUniversitas Pancasila...

 

 

Artikel atau sebagian dari artikel ini mungkin diterjemahkan dari Rapid transit di en.wikipedia.org. Isinya masih belum akurat, karena bagian yang diterjemahkan masih perlu diperhalus dan disempurnakan. Jika Anda menguasai bahasa aslinya, harap pertimbangkan untuk menelusuri referensinya dan menyempurnakan terjemahan ini. Anda juga dapat ikut bergotong royong pada ProyekWiki Perbaikan Terjemahan. (Pesan ini dapat dihapus jika terjemahan dirasa sudah cukup tepat. Lihat pula: panduan penerjemah...

Apartment building in Manhattan, New York United States historic place360 Central Park WestU.S. Historic districtContributing property Show map of New York CityShow map of New YorkShow map of the United StatesLocationManhattan, New York City, New York  United StatesCoordinates40°47′30″N 73°57′55″W / 40.791605°N 73.965199°W / 40.791605; -73.965199Built1928 (1928)ArchitectRosario CandelaArchitectural styleNeo-RenaissancePart ofCentral Park West...

 

 

Посольство Японии в Российской Федерациияп. 在ロシア日本国大使館 Япония Россия Местоположение Басманный район, Москва Адрес Грохольский пер., 27 Посол Акира Муто Сайт ru.emb-japan.go.jp  Медиафайлы на Викискладе Посольство Японии в Москве (яп. 在ロシア日本国大使館) — дипломатическа�...

 

 

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

Confederations CupSport Calcio TipoNazionali CategoriaMaschile OrganizzatoreFIFA CadenzaQuadriennale AperturaGiugno ChiusuraLuglio Partecipanti8 FormulaGironi + play-off StoriaFondazione1992 Soppressione2017 Numero edizioni10 Ultimo vincitore Germania Record vittorie Brasile (4) Trofeo o riconoscimento Modifica dati su Wikidata · Manuale La Confederations Cup è stata una competizione calcistica per nazionali maschili organizzata dalla FIFA tra il 1992 e il 2017.[1] Tenutasi sto...

 

 

此條目需要补充更多来源。 (2021年7月4日)请协助補充多方面可靠来源以改善这篇条目,无法查证的内容可能會因為异议提出而被移除。致使用者:请搜索一下条目的标题(来源搜索:美国众议院 — 网页、新闻、书籍、学术、图像),以检查网络上是否存在该主题的更多可靠来源(判定指引)。 美國眾議院 United States House of Representatives第118届美国国会众议院徽章 众议院旗...

 

 

American author (1927–2020) For the Michigan politician, see Roger Kahn (politician). For the American musician and composer, see Roger Wolfe Kahn. Not to be confused with Roger Angell. Roger KahnBorn(1927-10-31)October 31, 1927New York City, U.S.DiedFebruary 6, 2020(2020-02-06) (aged 92)Mamaroneck, New York, U.S.OccupationAuthorNationalityAmericanNotable worksThe Boys of Summer Roger Kahn (October 31, 1927 – February 6, 2020) was an American author, best known for his 1972 baseball ...

SMK Negeri 3 DepokInformasiDidirikan04 Juni 2012JenisNegeriAkreditasiA[1]Nomor Statistik Sekolah32102761016Nomor Pokok Sekolah Nasional20276188Kepala SekolahSamsuri S.Pd, MMJumlah kelasX: 10, XI: 10, XII: 10Jurusan atau peminatan6 JurusanRentang kelasX, XI, XIIKurikulumKurikulum 2013StatusSekolah Standar NasionalAlamatLokasi Gedung A: Jalan H. Tabroni №74, Kalimulya, Kec. Cilodong, Depok, Jawa Barat, Indonesia Gedung B: Jalan Merdeka №128, Abadi Jaya, Kec. Sukmajaya, Dep...

 

 

The Right HonourableThe Lord TweedsmuirCBE CD FRSE FRSABaron TweedsmuirIn office11 February 1940 – 20 June 1996Preceded byJohn BuchanSucceeded byWilliam Buchan Personal detailsBorn25 November 1911Died20 June 1996(1996-06-20) (aged 84)Spouse(s)Priscilla Grant (died 1978) Lady Jean Grant ​(m. 1980)​Parent(s)John Buchan, 1st Baron Tweedsmuir Susan Charlotte GrosvenorAlma materEton College Brasenose College, Oxford John Norman Stuart Buchan, 2nd Baron...

 

 

British diver Chris Mears MBEChris Mears at the 2016 Olympics in RioPersonal informationFull nameChristopher James MearsNicknameChrisBorn (1993-02-07) 7 February 1993 (age 31)Reading, BerkshireHeight1.74 m (5 ft 9 in)SportCountry Great Britain EnglandSportDivingEvent(s)1m, 3m, 3m SynchroClubCity of Leeds Diving Club Medal record Representing  Great Britain Olympic Games 2016 Rio de Janeiro 3 m synchro World Championships 2015 Kazan 3 m synchro European ...

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Maret 2016. Artikel ini perlu dikembangkan agar dapat memenuhi kriteria sebagai entri Wikipedia.Bantulah untuk mengembangkan artikel ini. Jika tidak dikembangkan, artikel ini akan dihapus. Makam di Odel pada tahun 1915-1926 Odel adalah sebuah desa di Kota Serang, pr...

 

 

This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Layang-Layang, Johor – news · newspapers · books · scholar · JSTOR (January 2021) (Learn how and when to remove this message) Layang-Layang is a town in Kluang District, Johor, Malaysia. It is situated within the parliamentary constituency of Simpang Renggam. It is located appro...

 

 

« Bataille de Saint-Aubin-du-Cormier » redirige ici. Pour les autres significations, voir Bataille de Saint-Aubin-du-Cormier (homonymie). Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Certaines informations figurant dans cet article ou cette section devraient être mieux reliées aux sources mentionnées dans les sections « Bibliographie », « Sources » ou « Liens externes » (décembre 2008). Vous pouvez améli...

Type of volcanic arc occurring along a continental margin A continental arc is a type of volcanic arc occurring as an arc-shape topographic high region along a continental margin. The continental arc is formed at an active continental margin where two tectonic plates meet, and where one plate has continental crust and the other oceanic crust along the line of plate convergence, and a subduction zone develops. The magmatism and petrogenesis of continental crust are complicated: in essence, con...

 

 

2004 European Parliament election in Poland 13 June 2004 2009 → 54 seats to the European ParliamentTurnout20.87%   First party Second party Third party   Leader Jerzy Buzek Mirosław Piotrowski Anna Fotyga Party PO LPR PiS Alliance EPP IND/DEM AEN Seats won 15 seats 10 seats 7 seats Popular vote 1,467,775 969 689 771 858 Percentage 24.1% 15.92% 12.67%   Fourth party Fifth party Sixth party   Leader Ryszard Czarnecki Lidia Geringer de Oedenberg Władys...