Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.022 c
1-1085640097
Александр
2004-05-27 10:41
2004.06.06
TCanvas


4-1083080101
DoG
2004-04-27 19:35
2004.06.06
Pipe s


6-1080821244
a3a3ello
2004-04-01 16:07
2004.06.06
Как отправить по e-mail прицепленный файл ?


1-1085314326
GanibalLector
2004-05-23 16:12
2004.06.06
Битовый образ букв...


1-1085424083
ГудБой
2004-05-24 22:41
2004.06.06
Как зделать чтобы, самопальный шел быстро стартовал?




   Наверх