Dado un polinomio secreto con coeficientes enteros posiblemente negativos, y la capacidad de consultar el valor del polinomio en cualquier número entero, ¿qué tan eficientemente se puede calcular el polinomio exacto?

Buena pregunta, pero te decepcionará la respuesta, creo 🙂

1) ¡No puedes estar seguro de que tal polinomio existe!
Simplemente use el hecho de que [math] ab \ mid f (a) -f (b) [/ math] (que es una propiedad bien conocida y fácil de polinomio con coeficientes enteros).
No puede estar seguro de que todas sus parejas [matemáticas] (k, f (k)) [/ matemáticas] verifiquen esta restricción si son aleatorias.
Por lo tanto, debe suponer que existe un polinomio con coeficientes enteros si desea resolver el problema.
EDITAR: Como dijo Jeremy Kun, ese no es el punto aquí, porque sabemos que existe un polinomio.

2) Si existe tal polinomio, ¡entonces existe una infinidad de tales polinomios!
Asumamos que tienes
[matemáticas] P (x_1) = y_1 [/ matemáticas]
[matemáticas] P (x_2) = y_2 [/ matemáticas]
[matemáticas] \ ldots [/ matemáticas]
[matemáticas] P (x_n) = y_n [/ matemáticas]
y que [math] P [/ math] tiene coeficientes enteros (todos los [math] x_i [/ ​​math] son ​​distintos, [math] x_i [/ ​​math] y [math] y_i [/ ​​math] son ​​enteros para todos [math] ] i \ en [1, n] [/ matemáticas])

Consideremos [math] Q (x) = K (x-x_1) (x-x_2) \ ldots (x-x_n) [/ math], con [math] K \ in \ mathbb {Z} [/ math].

Entonces, [matemáticas] P + Q [/ matemáticas] verifica [matemáticas] (P + Q) (x_i) = P (x_i) + Q (x_i) = y_i + 0 = y_i [/ ​​matemáticas] para todas [matemáticas] i \ en [1, n] [/ matemáticas]

Entonces, todos los polinomios [matemática] P + Q [/ matemática] verifican las restricciones que tiene (pasan por los puntos que conoce y tienen coeficientes enteros).
Como [math] K [/ math] puede ser cualquier número entero, concluimos que existe una infinidad de polinomios [math] Q [/ math] y, por lo tanto, una infinidad de [math] P + Q [/ math].

Entonces, o no hay ningún polinomio con coeficientes enteros, o hay un infinito.

Concluimos que necesitamos saber el grado del polinomio si queremos determinarlo.
Para hacer esto, verifique el polinomio de Lagrange

Para ver la discusión original y la solución con coeficientes no negativos, vea la respuesta de Jeremy Kun.

Di una prueba en un comentario sobre la publicación original en http://jeremykun.com/2014/11/18/

Aquí hay una instantánea de la parte relevante del comentario. La respuesta es que es imposible aprender el polinomio; No existe un algoritmo que pueda garantizar una respuesta correcta para cada polinomio secreto.

Ciertamente es imposible con un número limitado de consultas. Considere el caso cuando todas sus consultas [matemáticas] x_1, x_2, \ puntos, x_n [/ matemáticas] devuelven 0. Siempre habrá un número infinito de polinomios que satisfacen esta restricción, a saber, las de la forma [matemáticas] f (x ) = (x – x_1) (x – x_2) \ cdots (x – x_n) g (x) [/ math].