Числовое приближение 2^x
Я программирую библиотеку для арифметики произвольной точности. Последняя проблема, с которой я сталкиваюсь - это функция питания. Я решил вычислить 2 ^ (y log2(x))
вместо x ^ y
и остается одна подзадача: как я могу эффективно вычислить 2 ^ x
с x
В диапазоне (0,1)
(ноль и один исключены).
Так как я все равно храню рациональные вещи, x
имеет форму p/q
(p < q
). Поэтому я мог рассчитать q
корень 2
(N-й корневой алгоритм Википедии https://en.wikipedia.org/wiki/Nth_root_algorithm), а затем возвести в степень результат путем p
,
Однако это кажется очень неэффективным. Есть ли лучший алгоритм? Спасибо за вашу помощь.
1 ответ
Поскольку 2 ^ x = e ^ (x ln 2)
а также e ^ x = 1 + x + x^2/2! + x^3/3! + ...
это может быть путь. Расширение серии для e ^ x
быстро сходится для ограниченного х (как в вашем случае).