Answers:
通过改编Mihai Pătrașcu的STOC 2010论文“ 走向动态问题的多项式下界 ”,可以证明3SUM硬度的某种弱形式。首先,让我定义一系列密切相关的问题。每个问题的输入都是不同整数的排序数组。
3SUM:是否有不同的索引使得?A [ i ] + A [ j ] = A [ k ]
卷积3SUM:是否存在索引使得?A [ i ] + A [ j ] = A [ i + j ]
平均值:是否存在不同的索引,使得?A [ i ] + A [ j ] = 2 A [ k ]
卷积平均:是否存在索引使得?(这是您要问的问题。)A [ i ] + A [ j ] = 2 A [ (i + j )/ 2 ]
在我的博士学位论文中,我证明了所有这四个问题在决策树计算模型中都需要时间,该模型仅允许以下形式的查询:“是正,负或零?”,其中是实数(不取决于输入)。特别是,此模型中的任何3SUM算法都必须提出以下问题:“更大,更小还是等于?” 至少次。下限并不排除在更通用的计算模型中使用次二次算法-实际上,可以消除一些对数因子α 阿[ 我] + β 甲[ Ĵ ] + γ 甲[ ķ ] + δ α ,β ,γ ,δ 阿[ 我] + 阿[ Ĵ ] 甲[ ķ ] Ω (Ñ 2)在各种整数RAM模型中。但是没有人知道哪种更通用的模型会更有效。
通过仔细的哈希缩减,Pǎtrașcu证明了,如果3SUM需要预期时间,对于任何函数,那么Convolution3SUM需要预计时间。因此,可以合理地说Convolution3SUM是“弱3SUM硬”。例如,如果Convolution3SUM可以在时间内求解,那么3SUM可以在时间内求解。˚F Ω (Ñ 2 / ˚F 2(Ñ ⋅ ˚F (Ñ )))ø (Ñ 1.8)ø (Ñ 1.9)
我没有详细介绍细节,但我敢打赌,一个并行参数暗示着,对于任何函数,如果Average需要期望时间,那么ConvolutionAverage需要预期时间。换句话说,ConvolutionAverage是“弱平均难度”。˚F Ω (Ñ 2 / ˚F 2(Ñ ⋅ ˚F (Ñ )))
不幸的是,不知道平均数是否(甚至是弱)3SUM!我怀疑平均实际上是不 3SUM硬,如果仅仅是因为下界平均是相当难以证明比下界3SUM。Ω (n 2)
你还询问其中相邻阵列元件相差小于某个固定整数的特殊情况下。对于3SUM和Average,可以使用如下所示的快速傅立叶变换在时间内解决此变体。(该观察结果归因于Raimund Seidel。) O (n log n )
建立位向量,当且仅当整数出现在输入数组,。计算卷积的与自身在使用的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 )
但是我不知道Convolution3SUM或ConvolutionAverage有类似的技巧!