Загадка :)

Discussion in 'Болталка' started by crawen_s, 3 Sep 2009.

  1. crawen_s

    crawen_s New Member

    Joined:
    19 Jul 2009
    Messages:
    16
    Likes Received:
    0
    Reputations:
    0
    как запрограмировать вычисление функции z = x16 (x в 16 степени), с использованием наименшего количества операций умножения ??? :)
     
  2. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    Не сюда пришёл! :(
     
  3. REBUUS

    REBUUS Active Member

    Joined:
    6 Apr 2009
    Messages:
    314
    Likes Received:
    111
    Reputations:
    9
    использовать циклы :)
    или что то типа этого:

    (x+x+x+x+x+x+x+x+x+x+x+x+x+x+x+x)(x^16) :D
     
  4. Ponchik

    Ponchik Хлебо-булочное изделие

    Joined:
    30 Aug 2005
    Messages:
    687
    Likes Received:
    807
    Reputations:
    311
    Ему скорей всего для паскаля =\
    ня http://programmersforum.ru/showthread.php?t=4192
    гугол наше фсё
     
  5. geezer.code

    geezer.code Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    552
    Likes Received:
    358
    Reputations:
    90
    побитовый сдвиг, не ?
     
  6. flacs

    flacs Member

    Joined:
    28 Jan 2009
    Messages:
    81
    Likes Received:
    31
    Reputations:
    6
    [Delphi, PASCAL]
    Если произвести анализ системной функции Power, в результате мы придем к исходнику функции IntPower

    Как видно из листинга команда умножения вызывается 2 раза, я думаю это оптимальный вариант, т.к. все системные функции библиотеки math, оптимизированы.
     
  7. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Ну вообще задачка больше математическая... Если условие таково, что можно юзать только операцию умножения, то первое что приходит на ум, реализуется с помощью 4-х операций умножения...

    $x = число;
    for ($i = 1; $i <= 4; $i++)
    $x = $x*$x;