Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

Функция возведения в степень   Найти похожие ветки 

 
ilnarab   (2004-05-27 13:28) [0]

Подскажите пожалуйста функцию возводящую число А в степень В. Пробовал Ехр(В * Ln(A)) - не понравилось.


 
Prohodil Mimo ©   (2004-05-27 13:33) [1]

A "Power" chem ne ustraivajet?


 
Ega23 ©   (2004-05-27 13:33) [2]

uses Math

function Power.

Только чем тебе Ехр(В * Ln(A)) - не понравилось?


 
MBo ©   (2004-05-27 13:34) [3]

>Пробовал Ехр(В * Ln(A)) - не понравилось
Ну тогда тебе не понравятся и наши четверги ;) (© анекдот )

Power


 
ilnarab   (2004-05-27 13:34) [4]

А что за функция "Power"?


 
Ega23 ©   (2004-05-27 13:35) [5]

Ну тогда тебе не понравятся и наши четверги ;) (© анекдот )

Что за анекдот?


 
Prohodil Mimo ©   (2004-05-27 13:35) [6]

Eto takaja knopka na sistemnom bloke... nazhal i uzhe v stepeni :o)


 
ilnarab   (2004-05-27 13:38) [7]

А если серьёзно?


 
Vlad ©   (2004-05-27 13:39) [8]


> ilnarab   (27.05.04 13:38) [7]

Raises Base to any power.

Unit

Math

Category

Arithmetic routines

function Power(Base, Exponent: Extended): Extended;

Description

Power raises Base to any power. For fractional exponents or exponents greater than MaxInt, Base must be greater than 0.


 
Ega23 ©   (2004-05-27 13:39) [9]

А если серьёзно?

Если серьёзно, то Power + F1.


 
Prohodil Mimo ©   (2004-05-27 13:41) [10]

ti [2] vnimatel"no prochital?
Jesli etogo malo to Power+F1, nu a jesli i etogo malo to [6] stol"ko raz, v kakuju stepen" vozvesti nado :o)


 
MBo ©   (2004-05-27 13:48) [11]

>Ega23 ©   (27.05.04 13:35) [5]
google по этой фразе


 
Ega23 ©   (2004-05-27 13:58) [12]

google по этой фразе
:о)


 
Глеб ©   (2004-05-27 13:58) [13]

Можно использовать функцию POWER из unit math.
Exp(ln(a)*b) тем плохо, что отрицатеьлные числа нельзя возводить в степень.

Предлагаю хороший алгоритм возведения в степень:

function Pow(a, b: extended): extended;
 var
   k1, k2: extended;
   l: longint;
 begin
   if a > 0 then
     Pow := Exp(b * Ln(a))
   else
   begin
     if b > 0 then
     begin
       l := trunc(b);
       k1 := 1;
       k2 := a;
       while l > 1 do
       begin
         if l mod 2 <> 0 then
         begin
           dec(l);
           k1 := k2 * k1;
         end;
         l := l div 2;
         k2 := k2*k2;
       end;
       Pow := k1*k2;
     end
     else if b = 0 then Pow := 1
     else
     begin
       b := -b;
       l := trunc(b);
       k1 := 1;
       k2 := a;
       while l > 1 do
       begin
         if l mod 2 <> 0 then
         begin
           dec(l);
           k1 := k2 * k1;
         end;
         l := l div 2;
         k2 := k2*k2;
       end;
       Pow := 1/(k1*k2);
     end;
   end;
 end;


Желаю удачи.



Страницы: 1 вся ветка

Текущий архив: 2004.06.06;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.077 c
8-1080628998
MasterA
2004-03-30 10:43
2004.06.06
Голосовой чат


4-1083503715
RainKM
2004-05-02 17:15
2004.06.06
SHBrowseForFolder


1-1085290858
trix
2004-05-23 09:40
2004.06.06
Как склеить файлы ?


3-1084646167
SeregaC
2004-05-15 22:36
2004.06.06
Сохранение БД


1-1085399864
Basilio
2004-05-24 15:57
2004.06.06
Отладчик в дельфи не останавливается на breakpoints