Scrivi un programma che esegue l' interpolazione polinomiale usando numeri razionali di precisione arbitraria reale. L'input è simile al seguente:
f (1) = 2/3 f (2) = 4/5 f (3) = 6/7 ...
Si può presumere che ci sia esattamente uno spazio bianco prima e dopo il =
segno, tutti i numeri sono frazioni o numeri interi. Si può anche supporre che tutta la frazione nell'input sia già irriducibile.
Non è necessario il controllo degli errori, si può presumere che l'input sia valido e che nessuna x sia raddoppiata in f (x).
L'output dovrebbe essere in una forma compatibile LaTeX, il codice LaTeX emesso dovrebbe produrre la stessa rappresentazione grafica dell'output qui fornito.
f (x) = 123x ^ 2 + \ frac {45} {2} x + \ frac {7} {4}
La frazione deve essere ridotta il più possibile, ad es. qualcosa del genere \frac{2}{4}
non è permesso. Se il numero è intero, non utilizzare una frazione.
Regole speciali:
Il tuo programma dovrebbe ...
- lavorare per polinomi fino al grado 12
- completare in meno di 1 minuto per un input ragionevole
- non utilizzare alcuna funzione che esegua l'intero calcolo per te
- emette il polinomio del più piccolo grado possibile
Casi test:
I test dati forniti sono solo per chiarimenti. Il tuo programma dovrebbe produrre risultati corretti per tutti gli input corretti.
Ingresso
f (1) = 2/3 f (2) = 4/5 f (3) = 6/7
Produzione
f (x) = - \ frac {4} {105} x ^ 2 + \ frac {26} {105} x + \ frac {16} {35}
Ingresso
f (-12) = 13/2 f (5/3) = 3/5 f (13) = -6 f (1/5) = -3/4
Produzione
f (x) = - \ frac {2186133} {239455744} x ^ 3 + \ frac {2741731} {149659840} x ^ 2 + \ frac {26720517} {29201920} x - \ frac {279464297} {299319680}
Ingresso
f (4/3) = 617/81 f (2) = 20/3 f (-8/3) = 6749/81 f (-5) = 7367/12 f (0) = 23/3
Produzione
f (x) = \ frac {1} {2} x ^ 4 - 2x ^ 3 + \ frac {7} {4} x ^ 2 + \ frac {23} {3}
Ingresso
f (0) = 5 f (1) = 7 f (2) = 9 f (3) = 11 f (4) = 13
Produzione
f (x) = 2x + 5
Ingresso
f (1/2) = -1/2 f (-25) = -1/2 f (-54/12) = -1/2
Produzione
f (x) = - \ frac {1} {2}
...
) fanno davvero parte dell'input?
-\frac{37745}{14592}x^4 - \frac{853249}{43776}x^3 + \frac{57809}{7296}x^2 + \frac{225205}{2736}x + \frac{23}{3}
. Ho il sospetto che l'input avrebbe dovuto essere qualcosa di diverso :)