Наскільки важко підрахувати кількість факторів цілого числа?


30

З огляду на ціле число N довжини біт, наскільки важко вивести кількість простих факторів (або, альтернативно, кількість факторів) ?NnN

Якби ми знали основну факторизацію , то це було б легко. Однак, якби ми знали кількість простих факторів чи кількість загальних факторів, не ясно, як би ми знайшли фактичну основну факторизацію.N

Чи вивчена ця проблема? Чи існують відомі алгоритми, які вирішують це питання, не знаходячи основного факторизації?

Це питання мотивоване цікавістю і частково математичним запитанням .


3
Якщо число простих факторів велике, це означає, що N має малий фактор, який легко знайти. З іншого боку, якщо число простих коефіцієнтів N невелике, скажімо, 2, то це схоже на проблему факторингу добутку двох простих чисел, і знаючи, що кількість факторів 2, схоже, не допомагає. Дивіться це питання Оміда про їх середню твердість.
Kaveh

1
І ще одне, оскільки поділ на однаковий , проблема підрахунку всіх факторів (не тільки простих факторів) знаходиться в # T C 0, а отже, і в P (і, ймовірно, також є повною для # T C 0 під A C 0 скорочення). TC0#TC0P#TC0AC0
Каве

1
Kaveh, якби ти міг розширити свій вище коментар у відповідь, це було б чудово. Я точно не бачу, як поділ у приводить вас до підрахунку факторів у # TC 0, не маючи на увазі, що факторинг знаходиться в TC 0 . Це непорозуміння, ймовірно, пов’язане з моїми власними невдачами, але більш детальна відповідь допоможе. TC0#TC0TC0
Деррік Столі

1
відомий AFAIK! і це занадто просто. Але я не бачу, де аргумент ламається. ps: Я думаю, я знаю, моє визначення не є корисним (це те саме, що і # P ), і в цьому проблема. #TC0#P
Каве

1
@Artem, визначається як кількість приймаючих шляхів машини N L , і машина N L може використовувати лише логарифмічну (у | y | ) кількість простору для відгадування x . Ми вгадування занадто багато біт , якщо ми використовуємо визначення , я написав, в C 0 обчислення з полиномиально багато здогадок б захопити N P , аналогічно підрахунком числа х s полиномиального розміру , що C 0 машини приймає на них дадуть # П#LNLNL|y|xAC0NPxAC0#P(також вгадайте обчислення і переконайтеся, що це дійсно прийняте обчислення).
Каве

Відповіді:


16

Це не моя відповідь, але Терренс Тао дав прекрасну відповідь на це питання на MathOverflow.

Ось кілька перших рядків його відповіді. Щоб прочитати повну відповідь, перейдіть за посиланням.

Існує фольклорне спостереження, що якби вдалося швидко порахувати кількість простих множників цілого n, то, швидше за все, можна було б швидко поповнити n. Таким чином, вважається, що проблема підрахунку основних факторів має труднощі порівнянні з самою факторинговою діяльністю.

(Я не був впевнений, чи це повинна бути відповідь, чи коментар. Але це дійсно відповідь, хоча вона не написана мною. Я зробив відповідь Community Wiki, щоб її можна було без змін або прийняти що дає мені репутацію.)


5
На мою думку, вказівник на таку відповідь заслуговує на репутаційні бали (тому це не має бути вікі спільноти), але я розумію, що різні люди мають різні погляди.
Цуйосі Іто

Але це не формальне скорочення ....
arnab

1
@arnab: Ні, це не так. Ось чому він написав: «тоді, швидше за все, вдасться швидко змінити чинник».
Цуйосі, Іто,

1

Як зазначають інші, для підрахунку факторів, швидше за все, знадобиться факторинг n. Однак пробний поділ може обмежувати кількість факторів. Ви знаєте, наприклад, що має максимум n факторів, оскільки жоден коефіцієнт не може бути меншим за 2. Перевіряючи, чи N ділиться на 2, ви також знаєте, що N має максимум log 3 ( N ) факторів тощо. Недоліком є ​​те, що кожне зменшення розміру стає прогресивніше - вам доведеться перевірити до N 1 / p, щоб виключити N, що містить більше, ніж p факторів.NnNNlog3(N)N1/pNp

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.