查找小整数集,其中每个元素都是另外两个元素的和


16

这是关于math.stackexchange的问题的跟进。

让我们说,一个非空集S⊆ℤ是自我支撑,若对所有  ∈S,存在着不同的元素B,C  ∈S,从而使  =  b  + C。对于正整数n,简单的示例包括理想S =  n or,或(对于n > 3)整数间隔[ -n,  n ]。

我们会说S是强自支撑,如果S是从-S不相交的:那就是,如果一个  ∈S,那么- 一个  ∉S.无论是上述的例子是强自支撑,因为它们实际上是关闭在否定下。存在强烈支持自立的有限集:例如,集{−22,−20,−18,−16,−14,−12,−10,−2、1、3、7、8、15 ,23}和{-10,-8,-6,-2、1、3、4、5}。

问题#1。对于一个正整数N > 0,是否存在一个poly(N)-time [或polylog(N)-time]算法来(i)  产生一个最大绝对值为N的强自支撑集合,或者(ii )  确定不存在这样的集合?[ 编辑:作为上最古老的答案+我的评论所指出的,总是存在这样一组ň  ≥10]

问题2。对于N > 0,您可以构造具有最大绝对值N且具有最少可能元素的强烈自支撑集吗?


1
迁移已回答的问题不是常见的做法,这里的问题看起来还不错。但是,如果您愿意,我会进行迁移。
卡夫

我也不确定迁移已回答的问题是否有意义。
Suresh Venkat 2012年

然后,如您所愿。自该站点成为理论问题问答的成熟论坛以来,这个问题仍然存在的事实困扰了我一段时间。我认为这种语气可能更适合(非研究级)cs SE。但是,如果您不认为存在重大的一致性问题,那么我将不再为此烦恼。
Niel de Beaudrap

Answers:


6

我想问题1可以使用线性时间算法)(如果您愿意处理其他表示形式,则可以使用O(1)时间算法)

给定任何N> = 23,我们构造一个包含1和N的强自支撑集。

如果我们为N-1构造相同的元素,然后将N添加到结果集中,则可以轻松地做到这一点。

对于23的基本情况,我们可以从您的示例集开始。

为了减小尺寸,我们应该能够使用类似的方法:

构造包含 1, N and N-1.

我们使用这些约束集并递归进行此构造,以将大小减小到O(logN),如下所示:

  • 如果N是偶数,则要构造一个包含1,N和N-1的集合,请递归构造一个包含1,N / 2和N / 2-1的集合(即与N / 2对应的集合),然后将N和N-1相加到结果集。由于N-1 = N / 2 + N / 2-1并且N = 1 + N-1,所以这是一个有效的集合。

  • 如果N为奇数,则构造一个N-1的集合,并将N生成结果集合。

对于基本情况,我们可以从N的{−22,−20,−18,−16,−14,−12,−10,−2、1、3、7、8、15、23,24}开始= 24。对于24 <N <= 47,我们可以使用上述线性时间算法,并以N = 24的集合为基础。对于N> = 48,我们切换为减少一半。

实际上,对于复合N,我们可以将大小进一步减小为除N的小素数之一所需的大小:找到小素数的集合,然后将所有数字乘以适当的因子。

在N为素数的情况下证明一些下界可能很有趣。


+1。我想为我提出过多闲置空间的问题是正确的。当然,对于N> 10,也可以这样做。这给我们留下了构造小于此值的集合的问题(大小可能最小,如#2所示)。
Niel de Beaudrap 2010年

对于修改后的答案,您可以减小尺寸:我不遵循。我收集到您希望N被“支持”(表示为不同元素的总和)为1 +(N-1)。但是,您如何“支持” N-1呢?---另外:我对集合本身的大小(即基数)更感兴趣,尽管它的表示形式有趣的界限也可能很有趣。
Niel de Beaudrap 2010年

@Niel:我要发表评论:参见我的编辑内容:-)
Aryabhata 2010年

考虑N = 46的情况。那么N / 2 = 23; 我们将问题中给出的示例作为自立集,并包括N-1 = 45和N = 46。那我们如何“支持” N-1 = 45?
Niel de Beaudrap

2
(您可能希望考虑更改昵称。为什么不宣传自己的真实身份?这也使我可以在不让自己看起来像侮辱他人的情况下向您讲话,您是否最终会选择稍后更改昵称。)
Niel de Beaudrap

5

对于N≥10,一个人最多可以建立11个强烈自支撑的大小集,如下所示:

{-N,-N + 2,-N + 4,-2、1、3、4、5,N-7,N-6,N-5}。

原始问题中出现的较短示例对应于N = 10的情况。这几乎是最优的,因为任何强烈自支撑的集合都必须具有至少8的基数。

因此,该问题可以在O(log(N))时间[在N上进行普通的算术运算]的时间内解决,从而得到一组介于8到11之间的基数。

该答案的构造首先是针对math.stackoverflow问题提出的,这也给出了构造的直觉。我们还能获得更小的结构吗,例如,每N> 9匹配八个下界?N∈{8,9}的情况如何?

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.