计算整数的因数有多难?


30

给定长度为n位的整数,输出N的素因数(或可替代的因数)有多难?NnN

如果我们知道的素因式分解,那么这将很容易。但是,如果我们知道素因子的数量或一般因子的数量,则不清楚如何找到实际的素因子分解。N

研究这个问题了吗?是否有已知的算法可以解决这个问题而没有找到素因数分解?

这个问题是由好奇心引起的,部分原因是由数学SE问题引起的


3
如果素因子的数量很大,则意味着N具有一个容易找到的小因子。另一方面,如果N的素数个数很小,比如说2,那么这类似于分解两个素数的乘积的问题,而知道素数为2似乎无济于事。请看Omid关于平均硬度的问题。
卡夫

1
还有一两件事,因为分工是一致的,计算所有因素(不只是素因子)的问题是牛逼C ^ 0,因此也是P(和可能是也完成了牛逼C ^ 0一个C 0减少)。TC0#TC0P#TC0AC0
卡夫

1
Kaveh,如果您可以将上面的评论扩展为答案,那将很棒。我完全不看在师如何让你以计数因素TC 0不也暗示保理是在TC 0。这种误解很可能是由于我自己的失败,但更详细的答案会有所帮助。TC0#TC0TC0
2011年

1
著名的AFAIK!这太容易了。但是我看不出争论在哪里。PS:我想我知道看到的,我的定义是没有好(这是一样的P),这就是问题。#TC0#P
卡夫

1
@ Artem,定义为N L机器的接受路径数,并且N L机器只能使用对数(in | y |)的空间来猜测x。如果使用我编写的定义,我们将猜测太多的比特,一次多项式猜测的A C 0计算将捕获N P,类似地计算A C 0机器接受的多项式大小的x s 数将得出P#LNLNL|y|xAC0NPxAC0#P(还猜测计算并验证它确实是可接受的计算)。
卡夫

Answers:


16

这不是我的答案,但是陶仁涛在MathOverflow上对这个问题给出了漂亮的答案

这是他回答的前几行。要阅读完整答案,请点击链接。

有一种民间传说的观察,即如果一个人能够快速计算一个整数n的素数,那么一个人很可能就能快速地将n分解为整数。因此,人们认为计数质数因子问题与分解因子具有相当的难度。

(我不确定这应该是答案还是评论。但这确实是一个答案,尽管它不是我写的。我已经做了答案社区Wiki,以便可以不必要地对其进行投票或接受。给我声誉。)


5
在我看来,指向这样的答案的指针值得获得声誉分数(因此不应成为社区Wiki),但我知道不同的人有不同的看法。
伊藤刚(Tsuyoshi Ito)2012年

但是,这是不是一个正式的减少....
ARNAB

1
@arnab:不,不是。这就是为什么他写了“那么一个人可能很快就能完全
分解

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.