Корректная функция возведения в степеньDelphi , Синтаксис , Математика
Автор: Mikel function power(Base, Exponent: Extended): Extended; var ex: extended; begin power := 0; if (exponent <> 0) and (frac(trunc((1 / exponent) * 1000000) / 1000000) = 0) and (base < 0) then begin if round(1 / exponent) mod 2 = 0 then exit; ex := Exp(Exponent * Ln(-Base)); power := -ex; end else begin if Exponent = 0.0 then power := 1.0 else if (Base = 0.0) and (Exponent > 0.0) then power := 0.0 else if (Frac(Exponent) = 0.0) and (Abs(Exponent) <= MaxInt) then power := IntPower(Base, Integer(Trunc(Exponent))) else power := Exp(Exponent * Ln(Base)) end; end; Теперь можем вычислить нечетный корень из отрицательного числа Приведенный код на Delphi определяет функцию Вот разбивка функции:
Комментарии предполагают, что эта функция может использоваться для вычисления нечетной корневой отрицательного числа. Альтернативное решение:
Эта функция проще и более эффективна, чем оригинальная. Она использует функции Обратите внимание, что это альтернативное решение не обрабатывает специальный случай, когда основа отрицательна и экспонента целочисленная, так как не ясно, какой поведение ожидается в этом случае. Оригинальная функция обрабатывает этот случай с помощью другой формулы, но альтернативное решение просто возвращает результат на основе абсолютного значения основы. В статье описана функция возведения в степень, которая может обрабатывать различные случаи, включая возведение в отрицательную степень и получение нечетных корней из отрицательных чисел. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Математика ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |