![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
степень числа
lely © (2002-04-04 08:34:00)Функция возвращающая степень числа
pasha676 (2002-04-08 11:24:00) [1]Вообщем из фразы Base must be greater than 0. В описании power можно сделать вывод, что похоже там внутрях все те же логарифмы и экспоненты. Теперь лезим в Math и видим
function Power(Base, Exponent: Extended): Extended;
begin
if Exponent = 0.0 then
Result := 1.0 { n**0 = 1 }
else if (Base = 0.0) and (Exponent > 0.0) then
Result := 0.0 { 0**n = 0, n > 0 }
else if (Frac(Exponent) = 0.0) and (Abs(Exponent) <= MaxInt) then
Result := IntPower(Base, Integer(Trunc(Exponent)))
else
Result := Exp(Exponent * Ln(Base)) => ОПАЧКИ. Старый друг.
end;
То есть по сути абсолютно тоже самое exp(y*ln(x)).
KSergey (2002-04-08 09:28:00) [2]>Rooman
А вы пробовали? ;) Так попробуйте
Alx2 (2002-04-08 09:19:00) [3]Rooman © (08.04.02 08:42)
^ - указатель?
Rooman (2002-04-08 08:42:00) [4]а z:=x^y не пробовали?
REA (2002-04-04 11:36:00) [5]Насчет степеней. Будьте аккуратнее с большими числами (где-то от 10 в 9ой) - иногда на AMD процессоре функция Power работает хуже, чем простое перемножение (возвращает неверное число). Intel впрочем ведет себя еще хуже - простое перемножение тоже возвращает не то. Хотя результат должен быть в пределах нормы. Сам не видел, но рассказывали.
Alx2 (2002-04-04 11:04:00) [6]Курсор ставим на power и жмем F1. В результате появляется окошко с помощью, где видим примерно следующее:
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.
Из чего можно сделать вывод, что для возведения 2 в степень 1/3 необходимо написать: нечто := Power(2,1/3);
lely (2002-04-04 10:59:00) [7]Так, понятно.А что с power? Т.е. коротенький пример
pasha676 (2002-04-04 10:51:00) [8]Если мне не изменяет память - функция ln(x) - не очень универсальное решение (в чистом виде), т.к. область определения э
той функции x>0; То есть придеться дописывать.
Виктор Щербаков (2002-04-04 10:24:00) [9]в модуле Math
Alx2 (2002-04-04 10:21:00) [10]еще есть power
lely (2002-04-04 10:14:00) [11]Ну, нужно написать простенькую прогр-ку, в которой с кл-ры вводится число и степень и рез-т выводится в некое окошко. Подозреваю, что есть функция для вычисления этого...
Это и есть exp(y*ln(x)) ?
SerVS - S (2002-04-04 10:05:00) [12]Тебе нужно х^y?
Если да, то: exp(y*ln(x))
Song (2002-04-04 08:45:00) [13]Power?