Программируем

Пожалуйста, зарегистрируйтесь или войдите под уже созданным логином. Вы получите полный доступ ко всем статьям форума.

Join the forum, it's quick and easy

Программируем

Пожалуйста, зарегистрируйтесь или войдите под уже созданным логином. Вы получите полный доступ ко всем статьям форума.

Программируем

Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.
Программируем

На нашем форуме программистов вы сможете найти софт для программирования и другие программы. На форуме обсуждаются многие языки программирования, задачи и их решения. Используются языки: C, Assembler, Pascal, Delphi, Flash и другие.

Последние темы

» Арена искусственных интеллектов Gridwars
Быстрое возведение в степень. Pascal, Delphi. EmptyСр Окт 12, 2016 2:43 am автор SeriousPasha

» требуется несколько JS разработчиков
Быстрое возведение в степень. Pascal, Delphi. EmptyПт Окт 07, 2016 10:19 pm автор mrktwn1

» Защита приложения от взлома
Быстрое возведение в степень. Pascal, Delphi. EmptyЧт Июн 18, 2015 10:28 pm автор stradi

» Ищите программиста или дизайнера?
Быстрое возведение в степень. Pascal, Delphi. EmptyПт Мар 27, 2015 6:25 am автор фриланс

» Создание и продвижение сайтов, их развитие.
Быстрое возведение в степень. Pascal, Delphi. EmptyСр Мар 25, 2015 12:40 am автор asdfghhgfdsa

» Исходники для студентов + скайп-консультации,помощь в написании программ
Быстрое возведение в степень. Pascal, Delphi. EmptyВт Окт 07, 2014 11:25 pm автор Horpion

» IT- технологии для развития бизнеса
Быстрое возведение в степень. Pascal, Delphi. EmptyПн Июн 23, 2014 6:11 pm автор dvos12

» Стенли Кубрик "С Широко закрытыми Глазами"
Быстрое возведение в степень. Pascal, Delphi. EmptyЧт Июн 12, 2014 2:01 am автор Vertuozzz

» Каталог популярных хостинг компаний
Быстрое возведение в степень. Pascal, Delphi. EmptyСб Май 10, 2014 7:18 pm автор naik

Самые активные пользователи

Aster (142)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
Exkalibur (89)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
Чебурашка (63)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
Administrator (34)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
ak95 (8)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
Пушкин (7)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
K4_ (7)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
LuDa (7)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
Goldcoding (6)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 
Admin (6)
Быстрое возведение в степень. Pascal, Delphi. Bar_leftБыстрое возведение в степень. Pascal, Delphi. BarБыстрое возведение в степень. Pascal, Delphi. Bar_right 

Партнеры

Быстрое возведение в степень. Pascal, Delphi. Top100 Rambler's Top100

Участников: 2

    Быстрое возведение в степень. Pascal, Delphi.

    Aster
    Aster
    Admin
    Admin


    Сообщения : 142
    Очки : 274
    Репутация : 11
    Дата регистрации : 2010-01-07

    Быстрое возведение в степень. Pascal, Delphi. Empty Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор Aster Вт Май 25, 2010 5:01 pm

    итак, данный алгоритм основан на том, что:
    a^p = a^p-1 * a;
    a^p = (a^p/2)^2, если p = 2;
    Собственно тогда все очень просто
    Код:

    Function Power(a, p: integer): integer;
    Begin
      if p = 0 then
      begin
        power := 1;
        exit;
      end;
      if p mod 2 = 0 then
        power := sqr(power(a, p div 2))
      else
        power := power(a, p - 1) * a;
    end;

    Также эту функцию можно использовать для возведения очень больших чисел в степень, но тогда необходимо немного изменить код.
    марина9491
    марина9491
    Новичек
    Новичек


    Сообщения : 4
    Очки : 4
    Репутация : 0
    Дата регистрации : 2011-01-01

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор марина9491 Пн Янв 03, 2011 1:18 am

    HELP!!!! Голову сломала...Помогите, пожалуйста! На вводе а,N:integer. Вычислить степень числа для 1<a<1000, 1<N<1000 (паскаль). Понимаю, что длинная арифметика, но момент преобразования результата не могу поймать. Если есть возможность - помогите. С уважением.
    Aster
    Aster
    Admin
    Admin


    Сообщения : 142
    Очки : 274
    Репутация : 11
    Дата регистрации : 2010-01-07

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор Aster Пн Янв 03, 2011 3:25 am

    В принципе, можно использовать произведение длинных чисел в цикле...
    https://progaem.forum2x2.ru/t93-topic

    Попробую поискать что-нибудь более оптимальное)
    марина9491
    марина9491
    Новичек
    Новичек


    Сообщения : 4
    Очки : 4
    Репутация : 0
    Дата регистрации : 2011-01-01

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор марина9491 Вт Янв 04, 2011 2:56 am

    Спасибо за надежду. Я уже подумывала об умножении длинных...Но в условии входные - INTEGER! И всё тут...На компромиссы рассчитывать не приходится. Буду ждать с нетерпением bounce С уважением.
    Aster
    Aster
    Admin
    Admin


    Сообщения : 142
    Очки : 274
    Репутация : 11
    Дата регистрации : 2010-01-07

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор Aster Вт Янв 04, 2011 4:29 pm

    Везде, где ни искал, есть только такая же статья, как у нас(
    Видимо придется все-таки работать с длинным умножением...
    марина9491
    марина9491
    Новичек
    Новичек


    Сообщения : 4
    Очки : 4
    Репутация : 0
    Дата регистрации : 2011-01-01

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор марина9491 Вт Янв 04, 2011 11:33 pm

    Я нашла умножение длинного на короткое... но не могу сообразить куда промежуточный результат засунуть, чтобы применить этот код...столько всего в голове крутится, а как только за комп - в кучу собрать не могу...
    Procedure Mul(Const A: TLong;Const К: Longlnt;Var С: TLong) ;
    Var i: Integer;
    {результат - значение переменной С}
    Begin
    FillChar (С, SizeOf (С), 0) ;
    If K=0 Then Inc(С[0]){умножение на ноль}
    Else Begin
    For i:==l To A[0] Do Begin
    C[i+l]:=(LongInt(A[i])*K+C[i]) Div Osn;
    C[i]:=(LongInt(A[i])*K +C[i]) Mod Osn;
    End;
    If C[A[0]+1]>0 Then C[0]:=A[0]+1
    Else C[0]:=A[0] ;
    {определяем длину результата}
    End;
    End;
    Может Вы поможете?
    Aster
    Aster
    Admin
    Admin


    Сообщения : 142
    Очки : 274
    Репутация : 11
    Дата регистрации : 2010-01-07

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор Aster Ср Янв 05, 2011 1:33 am

    Я не очень понимаю, что ты имеешь ввиду под промежуточным результатом...
    А на форуме у нас уже есть произведение длинного на короткое. Посмотри, может там попонятнее будет.
    https://progaem.forum2x2.ru/t93-topic (функция scalmul).
    Aster
    Aster
    Admin
    Admin


    Сообщения : 142
    Очки : 274
    Репутация : 11
    Дата регистрации : 2010-01-07

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор Aster Ср Янв 05, 2011 1:35 am

    Но вот зачем тебе длинное на короткое, если ты хочешь большое число в степень возвести...
    марина9491
    марина9491
    Новичек
    Новичек


    Сообщения : 4
    Очки : 4
    Репутация : 0
    Дата регистрации : 2011-01-01

    Быстрое возведение в степень. Pascal, Delphi. Empty Re: Быстрое возведение в степень. Pascal, Delphi.

    Сообщение автор марина9491 Ср Янв 05, 2011 3:34 am

    Так говорю в голове - каша! Shocked

      Текущее время Пн Апр 29, 2024 7:54 pm