是否在检测“双重”算术级数3SUM困难?


20

这是受采访问题启发的。

我们给出一个整数数组并且必须确定是否有不同的使得 i < j < ka1,,ani<j<k

  • akaj=ajai
  • kj=ji

也就是说,序列和都在算术级数上。{ Ĵ ķ }{ai,aj,ak}{i,j,k}

有一个简单的算法,但是找到次二次算法似乎很困难。O(n2)

这是一个已知问题吗?我们可以证明这一点的3SUM难度吗?(或者提供次二次算法?)

如果愿意,可以假定,并且对于已知常数。(在面试问题中,)。一个[R + 1 - - [Rķ ķ > 2 ķ = 90<a1<a2<...<anar+1arKK>2K=9

Answers:


12

这是一个开放的问题。

通过改编Mihai Pătrașcu的STOC 2010论文“ 走向动态问题的多项式下界 ”,可以证明3SUM硬度的某种弱形式。首先,让我定义一系列密切相关的问题。每个问题的输入都是不同整数的排序数组。A[1..n]

  • 3SUM:是否有不同的索引使得?A [ i ] + A [ j ] = A [ k ]i,j,kA[i]+A[j]=A[k]

  • 卷积3SUM:是否存在索引使得?A [ i ] + A [ j ] = A [ i + j ]i<jA[i]+A[j]=A[i+j]

  • 平均值:是否存在不同的索引,使得?A [ i ] + A [ j ] = 2 A [ k ]i,j,kA[i]+A[j]=2A[k]

  • 卷积平均:是否存在索引使得?(这是您要问的问题。)A [ i ] + A [ j ] = 2 A [ i + j / 2 ]i<jA[i]+A[j]=2A[(i+j)/2]

在我的博士学位论文中,我证明了所有这四个问题在决策树计算模型中都需要时间,该模型仅允许以下形式的查询:“是正,负或零?”,其中是实数(不取决于输入)。特别是,此模型中的任何3SUM算法都必须提出以下问题:“更大,更小还是等于?” 至少次。下限并不排除在更通用的计算模型中使用次二次算法-实际上,可以消除一些对数因子α [ ] + β [ Ĵ ] + γ [ ķ ] + δ α β γ δ [ ] + [ Ĵ ] [ ķ ] Ω Ñ 2Ω(n2)αA[i]+βA[j]+γA[k]+δα,β,γ,δA[i]+A[j]A[k]Ω(n2)在各种整数RAM模型中。但是没有人知道哪种更通用的模型会更有效。

通过仔细的哈希缩减,Pǎtrașcu证明了,如果3SUM需要预期时间,对于任何函数,那么Convolution3SUM需要预计时间。因此,可以合理地说Convolution3SUM是“弱3SUM硬”。例如,如果Convolution3SUM可以在时间内求解,那么3SUM可以在时间内求解。˚F Ω Ñ 2 / ˚F 2Ñ ˚F Ñ ø Ñ 1.8ø Ñ 1.9Ω(n2/f(n))fΩ(n2/f2(nf(n)))O(n1.8)O(n1.9)

我没有详细介绍细节,但我敢打赌,一个并行参数暗示着,对于任何函数,如果Average需要期望时间,那么ConvolutionAverage需要预期时间。换句话说,ConvolutionAverage是“弱平均难度”。˚F Ω Ñ 2 / ˚F 2Ñ ˚F Ñ Ω(n2/f(n))fΩ(n2/f2(nf(n)))

不幸的是,不知道平均数是否(甚至是弱)3SUM!我怀疑平均实际上是 3SUM硬,如果仅仅是因为下界平均相当难以证明比下界3SUMΩ(n2)Ω n 2Ω(n2)


你还询问其中相邻阵列元件相差小于某个固定整数的特殊情况下。对于3SUM和Average,可以使用如下所示的快速傅立叶变换在时间内解决此变体。(该观察结果归因于Raimund Seidel。) O n log n KO(nlogn)

建立位向量,当且仅当整数出现在输入数组,。计算卷积的与自身在使用的FFT时间。当且仅当一对元素对总和为,所得数组的第个位置才具有非零值。因此,我们可以从时间的卷积中提取出总和的排序列表。从这里开始,很容易解决时间中的平均值或3SUM 。B [ i ] = 1 A [ 1 ] + i A B O K n log K n = O n log n j A 2 A [ 1 ] + j A [ i ] + A [ j ] O n O n B[0..Kn]B[i]=1A[1]+iABO(KnlogKn)=O(nlogn)jA2A[1]+jA[i]+A[j]O(n)O(n)

但是我不知道Convolution3SUM或ConvolutionAverage有类似的技巧!

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.