Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Evgenij Masherov                     2:5020/175.2   16 Nov 2002  14:35:06
 To : Alexander Lunkov
 Subject : возведение в степень
 -------------------------------------------------------------------------------- 
 
 Fri Nov 01 2002 21:18, Alexander Lunkov wrote to All:
 
  AL>     Ищу алгоритм "быстрого" возведения в степень. Без +, *, exp. Сказали,
  AL> что существует такой алгоритм.
 
 Если требуется вовсе обойтись без названных операций - то придется
 эмулировать, используя только битовые операции, какой-либо процессор. Ввиду
 явной бесполезности такой задачи осмелюсь предположить, что + вполне дозволенЮ
 экспонента - напротив, запрещена, а * использовать можно, но следует
 минимизировать, что обычно и понимается под "быстрым возведением в степень".
 Простой и понятный алгоритм для этого - двоичный. 
 Если мы возводим a^b, причем b=b(k)*2^k+b(k-1)*2^(k-1)+...+b(1)*2+b(0)
 b(i) ноль или один,
  то
 a^b=a^(b(k)*2^k)*a^(b(k-1)*2^(k-1))*...*a^b(0)=(a^(2^k))^b(k)*...*a^b(0)=
 (((..(a^2)^2...)^2)^b(k)*...*a*b(0)
 Возведение в степень b(i) не представляет особых трудностей, поскольку
 сводится либо к тождественной операции, если единица, либо к пропуску оной,
 если ноль.
 Возведение же в степень, равную степени двойки, производится последовательным
 возведением в квадрат.
 Следует отметить, что числа возрастают здесь весьма быстро, так что либо
 операции делаются по модулю (т.е. после каждого умножения берется остаток от
 деления на выбранный модуль), либо надо озаботиться длинной арифметикой
 (длинное умножение - вещь не вполне тривиальная...). В ряде практических задач
 (криптографии, скажем) нужно и то, и другое.
 Подробное описание алгоритма можно найти во втором томе Кнута, там же есть и
 конкурирующий с ним, основанный на разложении чисел на множители, несколько
 более сложный. Возможны и схемы, привязанные к определенному показателю
 степени.
 Алгоритм может быть обобщен на отличный от двух показатель степени, возможно,
 ценой увеличения затрат памяти. В частности, интересно было бы, ввиду падения
 относительной стоимости деления, обобщить на троично-симметричное
 представление, упомянутое ранее в этой же ветке.
 
 Евгений Машеров АКА СанитарЖеня
 
 --- ifmail v.2.15dev5
  * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 возведение в степень   Alexander Lunkov   01 Nov 2002 22:18:43 
 возведение в степень   Stanislav Shwartsman   02 Nov 2002 10:01:42 
 возведение в степень   €«мп Љ ­в®а   02 Nov 2002 17:33:00 
 RE: возведение в степень   Kropov Valentine   06 Nov 2002 08:24:34 
 возведение в степень   Stanislav Shwartsman   08 Nov 2002 12:24:32 
 возведение в степень   Evgenij Masherov   08 Nov 2002 20:09:16 
 RE: возведение в степень   Kropov Valentine   09 Nov 2002 15:58:04 
 Re: возведение в степень   Andrew Ezhguroff   10 Nov 2002 05:54:10 
 Re: возведение в степень   Kropov Valentine   12 Nov 2003 17:05:05 
 RE: возведение в степень   Evgenij Masherov   10 Nov 2002 12:35:38 
 Re: возведение в степень   Kropov Valentine   12 Nov 2003 17:17:13 
 Re: возведение в степень   Andrew Starsh   10 Nov 2002 20:27:35 
 Re: возведение в степень   Andrew Ezhguroff   11 Nov 2002 03:53:12 
 Re^2: возведение в степень   Andrew Starsh   11 Nov 2002 12:41:55 
 Re: возведение в степень   Evgenij Masherov   11 Nov 2002 10:24:43 
 Re^2: возведение в степень   Andrew Starsh   12 Nov 2002 01:49:48 
 Re^2: возведение в степень   Evgenij Masherov   13 Nov 2002 13:58:56 
 Re^3: возведение в степень   Andrew Starsh   20 Nov 2002 01:10:12 
 Re^3: возведение в степень   Evgenij Masherov   20 Nov 2002 11:02:19 
 Re: Re^2: возведение в степень   Valentin Davydov   19 Nov 2002 10:31:18 
 Re: возведение в степень   Roman =KRoN= Karshiev   19 Nov 2002 14:59:54 
 Re^2: Re^2: возведение в степень   Andrew Starsh   20 Nov 2002 07:09:54 
 Re: Re^2: Re^2: возведение в степень   Igor Zakhrebetkov   20 Nov 2002 08:28:28 
 Re^2: Re^2: Re^2: возведение в степень   Andrew Starsh   21 Nov 2002 09:17:15 
 возведение в степень   Nickita A Startcev   22 Nov 2002 17:47:54 
 возведение в степень   Comoderator Of Ru Algorithms   11 Nov 2002 16:18:01 
 возведение в степень   Evgenij Masherov   11 Nov 2002 21:15:44 
 возведение в степень   Serg Belyaev   12 Nov 2002 01:29:54 
 Re: возведение в степень   Andrew Starsh   09 Nov 2002 09:25:18 
 возведение в степень   Dmitry Novikov   10 Nov 2002 19:52:10 
 возведение в степень   Alexandr Litvinov   11 Nov 2002 19:10:26 
 возведение в степень   Dmitry Novikov   12 Nov 2002 19:37:01 
 возведение в степень   Evgenij Masherov   02 Nov 2002 18:54:24 
 Re: возведение в степень   Yuri Kostylev   28 Jan 2003 19:44:21 
 возведение в степень   Evgenij Masherov   16 Nov 2002 14:35:06 
Архивное /ru.algorithms/33007587d689.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional