Сколько программистов нужно, чтобы возвести число A в степень B

12 January, 2008 (22:54) | Разное

В решении упражнения 1.45 я записал процедуру power, возводящую вещественное число a в вещественную степень b:

(define (power a b)
  (exp (* b (log a))))

Любопытно, что практически ни в одном старом языке программирования этой процедуры нет среди средств стандартной библиотеки (хотя каждый порядочный калькулятор эту функцию содержит). Таким образом, программистам, сталкивающимся с необходимостью возводить числа в произвольные степени, приходится несладко.

Жизнь здорово упрощается для тех разработчиков, которым знакомы (и которыми еще не забыты) логарифмические тождества. А именно тождество:

ab = eb ln a,

где ln – это натуральный логарифм (уж функция для его вычисления есть в любом языке программирования), а e – его основание. Именно это тождество и использует записанная мной выше процедура.

Доказательство тождества вполне элементарно и доступно даже школьнику. Опыт показывает, что программисты плохо запоминают то, чего не понимают, потому привожу доказательство целиком.

По определению, ln a – это такое число x, что ex = a.

Тогда ab = (ex)b = (eb)x = eb ln a.Что и требовалось доказать.

Как видите, проще не придумаешь.

Comments

Comment from meduza
Date: October 22, 2008, 4:09 pm

> проще не придумаешь
можно еще проще 😉 e^(b*lna) = (e^lna)^b = a^b (по основному лог. тождеству)

Write a comment