Числовое приближение 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быстро сходится для ограниченного х (как в вашем случае).

Другие вопросы по тегам