用整数分解表示的整数与分解一样难吗?参考要求


22

我正在寻找以下结果的参考:

在因式分解表示中添加两个整数与在通常的二进制表示形式中分解两个整数一样困难。

(我很确定它在那里,因为这是我在某个时候想知道的,然后当我终于看到它印刷时感到很兴奋。)

问题是“在因式表示形式中添加两个整数”:给定两个数y的素数分解,输出x + y的素数分解。请注意,针对此问题的朴素算法在标准二进制表示形式中使用分解作为子例程。xyx+y

更新:感谢Kaveh和Sadeq的证明。显然,更多的证据可以证明是更好的选择,但是我也想鼓励人们在寻找参考文献时提供更多帮助,正如我所说的那样,我很确定存在。我记得在一篇论文中读到它时有其他有趣且很少讨论的想法,但我不记得那些其他想法是什么或论文的总体含义。


6
我认为一个更好的标题是“分解两个整数,它们的分解与分解一样困难吗?”
MS Dousti 2011年

1
好问题。如果我们可以将一个给定的整数写为两个易于分解的整数之和,那么您需要执行以下操作。如果我们想要是很容易的事情,但是即使n也看不到如何做。可能值得看一下易于分解的数字类别。lognloglogn
卡夫

1
在MO和Math.SE一些相关的问题:123
卡韦赫

Answers:


15

假设我们可以解决这个问题(让调用它FactSum)在复杂类Ç下关闭日志 -iteration(又名登录 -bounded递归)(例如,如果我们可以计算X * Ÿ其中*是一个二元函数,我们可以计算出的x 1x log n)并包含P(可以使此最后一个条件变弱)。我们证明C中也存在分解因数。CCloglogxyx1xlognPC

注意,每个数字都可以写为2的幂的和。他们每个人都很容易分解。logn2

现在给定一个数字,将其写为幂的和,然后将每个被加数写在分解表示中,然后使用算法将它们求和在分解表示中求和。结果将是输入数字的分解。

这表明分解可以简化为问题FactSum的对迭代。因此,保理在P FactSum中(我认为P可以在这里用N C 1代替 )。logPFactSumPNC1


10

我不知道参考文献,但我想出了一个证明:

假设您有一个oracle ,在输入两个因数时O

x=i=1npiαi

y=i=1mqiβi

输出的分解。x+y

可以访问,我们可以使用以下递归过程将多项式中的任意数N分解。ON

程序系数(N

  1. 找到一个素,使得ñ / 2 X ñ - 1,而让ÿ = ñ - XxN/2xN1y=Nx
  2. 如果不是素数,则通过递归调用因数(y)得到y的因式分解并输出Ox f a c t o r y yyyO(x,factor(y))
  3. 否则输出O(x,y)

分析:

通过素数定理足够大,有大量的素数之间ñ / 2ñ - 1。如果N太小以至于没有质数落在此间隔内,则可以轻松分解N。因此,步骤1通过。NN/2N1NN

在步骤2中,可以使用AKS或任何其他多项式时间素数测试。

递归的次数只是,因为在每一步中,N都被切成两半(至少)O(lg(N))=O(|N|)N


PS-1:假设哥德巴赫的猜想可能有助于加快偶数(可能是奇数)整数的计算过程。

PS-2:所使用的减少量是Cook减少量。可能有兴趣使用Karp约简进行证明。


3
我认为我们可以有效地找到给定范围内的素数是开放的,所以我看不出您的情况如何。1
Kaveh

1
@Kaveh:你是对的!通过一些额外的步骤,我认为我可以更改算法以不要求为素数,然后像y一样分解它;或我们可以假设归约是概率性的(因为在概率多项式时间内,我们可以找到给定范围内的质数)。xy
MS Dousti 2011年

2
是的,我认为我们有相同的想法,即想要找到易于分解的整数,将它们加到输入中,您尝试使用质数,我使用了2的幂。:)我仍然不知道我们是否可以做到这一点小于对oracle的查询的对数,这似乎与一个有趣且自然的数论问题(将数字写为易于分解的数字之和)有关。
卡夫

5

此响应与我以前的回答无关。目的是在评论中解决@Kaveh的问题:

如果我们想要是很容易的事情,但是即使n也看不到如何做。lognloglogn

我也有类似的担忧:

使用的减少是库克减少。可能有兴趣使用Karp约简进行证明。

(Karp归约是用于决策问题的。这里,Karp归约是指单查询Cook的归约。很抱歉使用非标准术语!)


以下答案基于此处的讨论:https : //math.stackexchange.com/questions/54580/factoring-some-integer-in-the-given-interval


在这个答案中,我将提供确定性的多项式时间Karp缩减,从分解分解两个由其分解表示的整数之和。不过,有一个陷阱:在证明过程中,我将使用以下数论假设:

克拉默猜想:对于任意两个连续的质数p n + 1,我们有p n + 1p n = O log 2 p npnpn+1pn+1pn=O(log2pn)

为输入,令n = | N | = O 对数N 。根据克拉梅尔的猜想,对于足够大的N,在区间[ N - log 3 N N ]中至少有一个素数。此间隔的长度为log 3 N = O n 3。因此,该素数可以在确定的多项式时间内通过蛮力找到。Nn=|N|=O(logN)N[Nlog3N,N]log3N=O(n3)

x[Nlog3N,N]y=Nx

0ylog3N|y|=O(loglogN)=O(logn)y

(x,y)N=x+y


感谢Sadeq,但是有条件的结果不是我想要的。ps:我对数字的有趣表示感兴趣,而从答案中得到的表示(取一个大质数)对我来说似乎不太有趣。给我带来我感兴趣的味道:每个自然数都是四个平方的和
卡夫
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.