编写一个 使用真正的任意精度有理数执行多项式插值的程序。输入看起来像这样:
f(1)= 2/3 f(2)= 4/5 f(3)= 6/7 ...
您可以假设=
符号前后只有一个空格,所有数字都是小数或整数。您可能还假设输入中的所有分数都是不可约的。
您可以假设不需要进行错误检查,即输入是有效的,并且f(x)中没有x被加倍。
输出应采用兼容LaTeX的形式,发出的LaTeX代码应产生与此处给出的输出相同的图形表示。
f(x)= 123x ^ 2 + \ frac {45} {2} x + \ frac {7} {4}
例如,必须尽可能减少分数。\frac{2}{4}
不允许这样的事情。如果数字是整数,请不要使用小数。
特殊规则:
您的程序应该...
- 适用于12级以下的多项式
- 不到1分钟即可完成输入
- 不使用任何为您完成整个计算的函数
- 输出最小可能次数的多项式
测试用例:
给定的测试用例只是为了澄清。您的程序应为所有正确的输入产生正确的结果。
输入值
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 -2x ^ 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}
如果您只使用有理数,为什么还要谈论实数?
—
乔伊(Joey)
抱歉。我的英语很差。是的,只能使用有理数。结果必须准确。
—
FUZxxl 2011年
在第一个测试用例中,点(
—
Eelvex
...
)是否真的是输入的一部分?
@Eelvex:不。固定。
—
FUZxxl 2011年
第三个测试用例的输出错误。正确的答案是
—
Timwi
-\frac{37745}{14592}x^4 - \frac{853249}{43776}x^3 + \frac{57809}{7296}x^2 + \frac{225205}{2736}x + \frac{23}{3}
。我怀疑输入的意图是不同的:)