Цілі корені многочлена


10

Який алгоритм ми можемо використати для пошуку всіх цілих коренів многочлена з цілими коефіцієнтами?f(х)

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


1
Ви шукаєте алгоритм, щоб повернути цілий корінь даного многочлена? Якщо так, це не можна визначити, і питання тут не є темою. Ви можете запитати його в інформатиці, яка має ширший спектр застосування.
Kaveh

7
Зачекай. Чому невизначення робить це питання поза темою? Це законне питання рівня дослідження.
Jeffε

2
Отже, як це робить Сейдж? Те, що не можна визначити, навіть будучи загальновідомим, що не можна визначити, не робить проблему теоретично нецікавою. Теоретичні комп'ютерні фахівці постійно вирішують невирішені проблеми - див., Наприклад, всю комп'ютерну перевірку.
Jeffε

11
f(х)f(х)гг

1
@Pratik Вам не потрібні бази Грьобнера в універсальній справі.
Yuval Filmus

Відповіді:


10

f

У будь-якому випадку документація Sage чітко пояснює, як вони роблять кореневий пошук: "Наступний метод, який застосовується, якщо K є цілісною областю, - це спроба розподілити поліном. Якщо це вдасться, то для кожного ступеня-один фактор a * x + b, ми додаємо -b / a як корінь (доки цей коефіцієнт насправді знаходиться у бажаному кільці). " Див. Http://www.sagemath.org/doc/reference/polynomial_rings/sage/rings/polynomial/polynomial_element.html .

Отже, ваше запитання стає, як вони ефективно розбивають многочлени на цілі коефіцієнти? Мабуть, Sage закликає NTL для цього (див. Http://www.shoup.net/ntl/doc/ZZXFactoring.txt для деталей NTL).

Якщо ви хочете асимптотично ефективний метод, ви можете звернутися до методу Ленстра, Ленстра і Ловаш ( https://openaccess.leidenuniv.nl/handle/1887/3810 ).


1
Дякуємо за корисну підказку! Захоплююче. Чи можете ви бути готовими відредагувати свою відповідь, щоб розібратися, як перетворити це на алгоритм і який його час роботи? Чи найгірший показник часу роботи експоненціальний (адже це може зайняти субекспоненціальний час для множення, і тоді може бути експоненціально багато дільників провідного і кінцевого коефіцієнта)? Якщо так, то чи існують кращі алгоритми, чи це найкращий варіант? Крім того, чи не знайде цей підхід лише раціональні корені, але не ірраціональні корені?
DW

Перечитавши питання і побачивши, що ви його трактуєте по-різному, я вже не повністю впевнений, але мені і деяким коментаторам здавалося зрозумілим, що питання задає цілі корені. Ти не читаєш це так?
мін

@minar, ти маєш рацію. Тепер, коли я перечитував питання, це здається саме таким. Я, мабуть, занадто швидко прочитав питання. (Я спочатку неправильно трактував питання як таке, що маємо на увазі, що ми хочемо, щоб усі корені многочлена з цілими коефіцієнтами були, але при повторному прочитанні питання це здається неправильним тлумаченням.)
DW

2
Для асимптотичного та практично ефективного методу найвідоміший алгоритм - Ван Хоей (див. Тут ). Власне, NTL, здається, використовує його.
Бруно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.