Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];
ВнизФункция возведения в степень Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.031 c