Descobrindo o polinômio

Tenho um polinômio P, com coeficientes inteiros e não-negativos. Você pode me perguntar o valor de P(x) para qualquer número x algébrico. Quantas perguntas são suficientes para que você seja capaz de descobrir os coeficientes de P? Como proceder?

Edição: note que você não sabe qual é o grau do polinômio.

(Baseado no post A puzzle about polynomials (God Plays Dice))

6 respostas para Descobrindo o polinômio

  1. Pietro disse:

    Bacana o problema. Lembra que estávamos conversando sobre se daria pra descobrir o polinômio sabendo só que seus coeficientes são inteiros; estabelecemos que se puderem ser racionais ou reais não dá pra descobrir nada, graças à interpolação de Lagrange.

    Porém, depois vi que era simples adaptar nosso raciocínio pro caso inteiro. Para qualquer número finito N de perguntas, vc pode me dizer

    P(a1) = … = P(aN) = 0

    e eu ainda não tenho como saber se P é o polinômio nulo ou simplesmente (X-a1)*…*(X-aN). Então a positividade é fundamental.

    Resta saber se conseguiríamos descobrir P caso seus coeficientes fossem racioanis (ou reais) positivos. Basta descobrir o grau do polinômio, que daí o resto sai por álgebra linear com um número finito de perguntas.

  2. Pietro disse:

    Ah! Se os coeficientes de P forem reais positivos, acho que dá pra descobrir o grau de P com 3 perguntas!

  3. André disse:

    Hum, legal! Vou tentar provar!

  4. Pietro disse:

    Ops, na verdade o jeito que pensei não dá certo. Ainda não sei se é possível descobrir o polinômio com um número finito de perguntas, mas por enquanto apostaria que sim.

  5. Pietro disse:

    Consegui por outra linha de argumentação. Minha idéia errada era a seguinte, excessivamente simples (e na verdade “precisava” de duas perguntas):

    Quanto é P(1)? Quanto é P(G)? Aqui G é um número muito grande “comparado com P”, em algum sentido. Inicialmente tomei como P(1)+1. Aí calcularíamos a fração

    P(x)/x^k

    nos pontos 1 e G (juro que isso não foi intencional, G era de “grande”), para k variando de 0 em diante.

    A idéia é que, quando k é maior ou igual ao grau de P, P(x)/x^k é estritamente decrescente — aqui usamos que os coeficientes são positivos. O meu erro foi achar que, para k *menor* que o grau de P, P(x)/x^k seria crescente.

    Então bastaria ver qual o primeiro k pro qual P(x)/x^k é decrescente, e teríamos o grau.

    O problema é que a segunda parte não é verdade. De fato, se k<grau(P) então P(x)/x^k é crescente a partir de certo ponto; mas pra estimar esse ponto (pra escolhermos G), é necessário estimar não só o "tamanho geral" de P (por exemplo a soma de seus coeficientes), mas a razão entre o seu coeficiente líder e o "resto" (digamos, a soma dos outros coeficientes).

    Não consegui levar esse approach adiante, e no final consegui um método que, pra um polinômio de grau d, faz d+2 perguntas e determina os coeficientes. (Desde que sejam reais positivos.)

    O algoritmo em si é simples, mas a prova de que funciona tem um passo bonitinho.

  6. Narf disse:

    En el caso de coeficientes enteros es posible conocerlo con tantas preguntas como el grado ´d´.

    La solución:

    tras preguntar P(1) buscamos un primo q > P(1).
    Preguntamos P(1/q) lo cual permite conocer el grado.
    Continuamos haciendo d-2 preguntas para interpolar

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.