Знайдіть многочлен у двох-трьох запитах


17

Чорне поле f(x) означає, що я можу оцінити поліном в будь-якій точці.f(x)

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

  • Висновок: В коефіцієнти многочлена .df(x)

Мій алгоритм: нехай

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

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

Однак у цьому випадку мені потрібно O(d) багато запитів до чорного поля. Я хочу мінімізувати кількість запитів . Чи є спосіб зменшити кількість запитів до двох або трьох?


2
Ви продовжуєте змінювати питання. Можливо, спершу слід визначитися зі своїм питанням і лише після цього задати його. Інакше це може дещо засмутити відповідача.
Yuval Filmus

2
Що означає ? Z+
md5

1
набір натуральних чисел
Складність

1
BTW для вашого алгоритму коефіцієнти можна обчислити в замість O ( n 3 ) із закритою формулою Лагранжа. O(n2)O(n3)
md5

2
Точне запитання, сформульоване інакше: math.stackexchange.com/questions/446130/…
Nayuki

Відповіді:


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
Не без верхньої межі величини коефіцієнтів. Про це свідчать мої докази.
Yuval Filmus

Вибачте, що я не отримав цю частину "Я завжди можу відповісти на ваші запити x 1 , , x d - 1 за нулем"d1x1,,xd1
Складність

6
Це суперечливий аргумент. Ваш алгоритм запитує у чорному полі значення у d - 1 місця, і воно завжди відповідає нулю. Я показую, що цього недостатньо для того, щоб вивести значення f . fd1f
Yuval Filmus
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.