Encontre um polinômio em duas ou três consultas

17

A caixa preta de f(x) significa que posso avaliar o polinômio a qualquer momento.f(x)

  • Entrada : Uma caixa preta do polinômio monônico de grau .df(x)Z+[x]d

  • Saída: Os coeficientes do polinômio .f ( x )df(x)

Meu algoritmo: deixe

f(x)=xd+ad1xd1++a1x+a0

Avalie polinomial em muitos pontos usando a caixa preta e obtenha um sistema de equações lineares. Agora eu posso resolver o sistema de equações lineares para obter os coeficientes desejados. df(x)d

No entanto, nesse caso, preciso de muitas consultas na caixa preta. Eu quero minimizar o número de consultas . Existe alguma maneira de reduzir o número de consultas para apenas duas ou três?O(d)

Complexidade
fonte
2
Você continua mudando a questão. Talvez você deva primeiro decidir sua pergunta e só então perguntar. Caso contrário, pode ser um pouco frustrante para o atendedor.
Yuval Filmus 13/10
2
O que significa ? Z+
Md5 #
1
conjunto de números inteiros positivos
Complexidade
1
BTW para o seu algoritmo, os coeficientes podem ser calculados em vez de O ( n 3 ) com a fórmula fechada de Lagrange. O(n2)O(n3)
Md5 #
2
Exatamente a mesma pergunta, com a seguinte redação
Nayuki 14/17

Respostas:

29

Você pode determinar o polinômio usando duas consultas. Primeiro, consulte o polinômio em para obter um limite superior M no valor dos coeficientes. Agora consulte o polinômio em x > M de sua escolha e leia os coeficientes da expansão base x .x=1Mx>Mx

Curiosamente, se você permitir que os coeficientes sejam negativos, não poderá fazer melhor que consultas. Na verdade, eu sempre posso responder às suas consultas d - 1 x 1 , , x d - 1 por zero, e isso não fixa o valor do polinômio, pois todos os polinômios da forma ( x - x 1 ) ( x - x d - 1 ) ( x - x d ) são consistentes com minhas respostas.dd1x1,,xd1(xx1)(xxd1)(xxd)

Yuval Filmus
fonte
Para os negativos, acho que o truque do complemento do 2 pode funcionar.
Complexidade
4
Não sem um limite superior na magnitude dos coeficientes. Isto é o que minha prova mostra.
Yuval Filmus 13/10
Desculpe eu não tive esta parte "Eu sempre posso responder a sua consultas x 1 , ... , x d - 1 por zero"d1x1,,xd1
Complexidade
6
Este é um argumento adversário. Seu algoritmo pede à caixa preta o valor de em d - 1 lugares e sempre responde a zero. Eu mostro que isso não é suficiente para você deduzir o valor de f . fd1f
Yuval Filmus 13/10