Znajdź wielomian w dwóch lub trzech zapytaniach

17

Czarna ramka oznacza, że ​​mogę ocenić wielomian w dowolnym punkcie.f(x)f(x)

  • Dane wejściowe : czarne pole wielomianu monicznego stopnia .f(x)Z+[x]d

  • Wydajność: W współczynniki wielomianu .df(x)

Mój algorytm: let

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

Oszacuj wielomian w wielu punktach za pomocą czarnej skrzynki i uzyskaj układ równań liniowych. Teraz mogę rozwiązać układ równań liniowych, aby uzyskać pożądane współczynniki.f(x)d

Jednak w tym przypadku potrzebuję wielu zapytań do czarnej skrzynki. Chcę zminimalizować liczbę zapytań . Czy istnieje sposób na ograniczenie liczby zapytań do zaledwie dwóch lub trzech?O(d)

Złożoność
źródło
2
Zmieniasz pytanie. Być może powinieneś najpierw zdecydować o swoim pytaniu, a dopiero potem go zadać. W przeciwnym razie może to być nieco frustrujące dla osoby odpowiadającej.
Yuval Filmus
2
Co oznacza ? Z+
md5
1
zestaw liczb całkowitych dodatnich
złożoność
1
BTW dla twojego algorytmu, współczynniki można obliczyć w zamiast z zamkniętą formułą Lagrange'a. O ( n 3 )O(n2)O(n3)
md5
2
Dokładnie to samo pytanie brzmi inaczej: math.stackexchange.com/questions/446130/...
Nayuki

Odpowiedzi:

29

Możesz określić wielomian za pomocą dwóch zapytań. Najpierw zapytaj wielomian przy aby uzyskać górną granicę M na wartości współczynników. Teraz zapytaj wielomian w wybranym przez ciebie x > M i odczytaj współczynniki z podstawowego rozszerzenia x .x=1Mx>Mx

Co ciekawe, jeśli pozwolisz, aby współczynniki były ujemne, nie możesz zrobić lepiej niż zapytań. Rzeczywiście, zawsze mogę odpowiedzieć na twoje zapytania d - 1 x 1 , , x d - 1 przez zero, a to nie naprawia wartości wielomianu, ponieważ wszystkie wielomiany postaci ( x - x 1 ) ( x - x d - 1 ) ( x - x d ) są zgodne z moimi odpowiedziami.dd1x1,,xd1(xx1)(xxd1)(xxd)

Yuval Filmus
źródło
W przypadku negatywów myślę, że sztuczka dopełniacza 2 może działać.
Złożoność
4
Nie bez górnej granicy wielkości współczynników. To pokazuje mój dowód.
Yuval Filmus
Niestety nie dostałem tę rolę "zawsze mogę odpowiedzieć na zapytań x 1 , ... , x d - 1 przez zero"d1x1,,xd1
Complexity
6
To jest argument przeciwnika. Twój algorytm prosi czarną skrzynkę o wartość w miejscach d - 1 i zawsze odpowiada zero. Pokazuję, że to nie wystarczy, aby wywnioskować wartość f . fd1f
Yuval Filmus