возведение в степень

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
ilyagoo
Сообщения: 3
Зарегистрирован: 22 окт 2007, 17:11

24 окт 2007, 09:48

каким образом можно возвести рациональное число в рациональную степень с большой тосностью на Си? встроенная pow дает не более 7 знаков после запятой, остальное округляет (теряется смысл использование типа long double)
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

24 окт 2007, 10:10

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

x = a^b
Логарифмируем:
ln (x) = ln (a^b) = b * ln (a)

Обратно, возводим е в степень:

e^ (ln (x)) = e^ (b * ln (a))

В итоге получаем формулу:
x = e^ (b * ln (a))

Насчет точности - не знаю. смотри сам.
ilyagoo
Сообщения: 3
Зарегистрирован: 22 окт 2007, 17:11

24 окт 2007, 10:15

так и логарифм урежет знаки
например, хотелось ба получить точныйрезультат pow(0.1e-20,0.1e-20
Ответить