возведение в степень
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
каким образом можно возвести рациональное число в рациональную степень с большой тосностью на Си? встроенная pow дает не более 7 знаков после запятой, остальное округляет (теряется смысл использование типа long double)
В принципе, степень можно считать через логарифмы (по крайней мере, для положительных чисел).
Используя следующие преобразования:
x = a^b
Логарифмируем:
ln (x) = ln (a^b) = b * ln (a)
Обратно, возводим е в степень:
e^ (ln (x)) = e^ (b * ln (a))
В итоге получаем формулу:
x = e^ (b * ln (a))
Насчет точности - не знаю. смотри сам.
Используя следующие преобразования:
x = a^b
Логарифмируем:
ln (x) = ln (a^b) = b * ln (a)
Обратно, возводим е в степень:
e^ (ln (x)) = e^ (b * ln (a))
В итоге получаем формулу:
x = e^ (b * ln (a))
Насчет точности - не знаю. смотри сам.
так и логарифм урежет знаки
например, хотелось ба получить точныйрезультат pow(0.1e-20,0.1e-20
например, хотелось ба получить точныйрезультат pow(0.1e-20,0.1e-20