Напишите программу, которая выполняет полиномиальную интерполяцию с использованием истинных рациональных чисел произвольной точности. Вход выглядит так:
f (1) = 2/3 f (2) = 4/5 f (3) = 6/7 ...
Вы можете предположить, что есть ровно один пробел до и после =
знака, все числа либо дробные, либо целые. Вы также можете предположить, что все дроби на входе уже неприводимы.
Проверка ошибок не требуется, вы можете предположить, что ввод действителен, и ни один x не удваивается в f (x).
Выходные данные должны быть в LaTeX-совместимой форме, а испускаемый код LaTeX должен давать то же графическое представление, что и выходные данные, приведенные здесь.
f (x) = 123x ^ 2 + \ frac {45} {2} x + \ frac {7} {4}
Фракция должна быть максимально уменьшена, например. что-то подобное \frac{2}{4}
не допускается. Если число целое, не используйте дробь.
Особые правила:
Ваша программа должна ...
- работа для полиномов до степени 12
- завершить менее чем за 1 минуту для разумного ввода
- не используйте функции, которые делают весь расчет за вас
- вывести многочлен наименьшей возможной степени
Testcases:
Данные тесты приведены только для пояснения. Ваша программа должна давать правильный результат для всех правильных входных данных.
вход
f (1) = 2/3 f (2) = 4/5 f (3) = 6/7
Выход
f (x) = - \ frac {4} {105} x ^ 2 + \ frac {26} {105} x + \ frac {16} {35}
вход
f (-12) = 13/2 f (5/3) = 3/5 f (13) = -6 f (1/5) = -3/4
Выход
f (x) = - \ frac {2186133} {239455744} x ^ 3 + \ frac {2741731} {149659840} x ^ 2 + \ frac {26720517} {29201920} x - \ frac {279464297} {299319680}
вход
f (4/3) = 617/81 f (2) = 20/3 f (-8/3) = 6749/81 f (-5) = 7367/12 f (0) = 23/3
Выход
f (x) = \ frac {1} {2} x ^ 4 - 2х ^ 3 + \ frac {7} {4} x ^ 2 + \ frac {23} {3}
вход
f (0) = 5 f (1) = 7 f (2) = 9 f (3) = 11 f (4) = 13
Выход
f (x) = 2x + 5
вход
f (1/2) = -1/2 f (-25) = -1/2 f (-54/12) = -1/2
Выход
f (x) = - \ frac {1} {2}
...
) действительно являются частью ввода?
-\frac{37745}{14592}x^4 - \frac{853249}{43776}x^3 + \frac{57809}{7296}x^2 + \frac{225205}{2736}x + \frac{23}{3}
. Я подозреваю, что ввод был предназначен для чего-то другого :)