Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

степень числа


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?


Наверх

Титульная страница Поиск, карта сайта Написать письмо