Найти многочлен в двух или трех запросах

17

Черный ящик с f(x) означает, что я могу оценить многочлен в любой точке.f(x)

  • Вход : черный ящик монического полинома степени .f(x)Z+[x]d

  • Вывод: В коэффициенты многочлена .df(x)

Мой алгоритм: пусть

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

Оцените полином в многих точках, используя черный ящик, и получите систему линейных уравнений. Теперь я могу решить систему линейных уравнений, чтобы получить нужные коэффициенты.f(x)d

Однако в этом случае мне нужно много запросов к черному ящику. Я хочу минимизировать количество запросов . Есть ли способ уменьшить количество запросов до двух или трех?O(d)

сложность
источник
2
Вы продолжаете менять вопрос. Возможно, вам следует сначала определиться с вопросом и только потом задавать его. В противном случае это может быть несколько неприятно для ответчика.
Юваль
2
Что означает ? Z+
md5
1
набор натуральных чисел
Сложность
1
Кстати, для вашего алгоритма коэффициенты могут быть вычислены в вместо O ( n 3 ) с помощью закрытой формулы Лагранжа. O(n2)O(n3)
md5
2
Точно такой же вопрос, сформулированный по-другому: math.stackexchange.com/questions/446130/…
Наюки,

Ответы:

29

Вы можете определить многочлен, используя два запроса. Сначала запросите многочлен при чтобы получить верхнюю границу M для значения коэффициентов. Теперь запросите многочлен в x > M по вашему выбору и считайте коэффициенты из базового расширения x .x=1Mx>Mx

Любопытно, что если вы позволите коэффициентам быть отрицательными, то вы не сможете сделать лучше, чем запросов. Действительно, я всегда могу ответить на ваши d - 1 запросы x 1 , , x d - 1 на ноль, и это не фиксирует значение многочлена, так как все многочлены вида ( x - x 1 ) ( x - x d - 1 ) ( x - x d ) соответствуют моим ответам.dd1x1,,xd1(xx1)(xxd1)(xxd)

Юваль Фильмус
источник
Для негативов я думаю, что трюк с дополнением 2 может сработать.
Сложность
4
Не без верхней границы величины коэффициентов. Это то, что показывает мое доказательство.
Юваль
Извините, я не получил эту часть «Я всегда могу ответить на ваши запросы x 1 , , x d - 1 ноль»d1x1,,xd1
Сложность
6
Это аргумент противника. Ваш алгоритм запрашивает черный ящик для значения в d - 1 разрядах, и он всегда отвечает нулю. Я показываю, что этого недостаточно для вывода значения f . fd1f
Юваль