すべての要素が他の2つの要素の合計である整数の小さなセットを見つける


16

これは、math.stackexchangeに関するこの質問のフォローアップです。

a∈S ごとにa  =  b  + cの よう な個別の要素b、c∈Sが存在する場合、空でないセットS existℤは自立しているとしましょう。正の整数のN、簡単な例は、理想的なS =含む  N ℤ、または(のためのn [ - 3>)整数間隔N、  Nを ]。

Sが−Sから切り離されている場合、Sは強く自立していると言います。つまり  a∈S であれば  − a∉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、ポリ(存在しないNを)-time [又はpolylog(N)-time]アルゴリズムのいずれかに(i)は  、その絶対値の最大値である強く自己支持組製造N、または(IIを)  そのようなセットが存在しないと判断しますか?[ 編集:それ最古の答え+私のコメントで指摘したように、常にこのようなセットが存在するN  10≥]

質問2。N > 0、あなたは絶対値の最大値と強く自立型セット構築することができますNを、そしてこれは、最小限の要素を持っていますか?


1
回答済みの質問を移行することは一般的な方法ではなく、質問はここで問題ありません。ただし、必要に応じて移行します。
-Kaveh

また、回答済みの質問を移行することが理にかなっているかどうかもわかりません。
スレシュヴェンカト

あなたが望むように、その後。この問題がここに残っているという事実は、このサイトが理論的なトピックに関するQ&Aの成熟したフォーラムになってからしばらくの間私を悩ませてきました。私は、トーンが(非研究レベル)cs.SEにはるかに適していると考えました。しかし、重大な一貫性の問題があると感じないなら、私はそれについて心配しなくなります。
ニールドボードラップ

回答:


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を分割する小さな素数の1つに必要なサイズまでサイズをさらに下げることができます。小さな素数のセットを見つけ、すべての数値に適切な係数を掛けます。

Nが素数である場合の下限を証明するのは興味深いかもしれません。


+1。スラックルームが多すぎて質問をするのに適していると思います。もちろん、N> 10でも同じことができます。これにより、これよりも小さいセットを構築する問題が残ります(#2のように、サイズが最小になる可能性があります)。
ニールドボードラップ

サイズを小さくするための修正された答え:私は従いません。Nを「サポート」(個別の要素の合計として表される)を1 +(N-1)にしたいことを収集します。では、N-1をどのように「サポート」するのでしょうか。---また、セット自体のサイズ、つまりカーディナリティにも興味がありますが、その表現の興味深い境界も興味深い場合があります。
ニールドボードラップ

@Niel:私はコメントとしていた:私の編集を参照してください:-)
アリヤバータ

N = 46の場合を考えます。次に、N / 2 = 23; 質問で与えられた例を自立型セットとして採用し、N-1 = 45とN = 46を含めます。それでは、どのようにしてN-1 = 45を「サポート」しますか?
ニールドボードラップ

2
(ニックネームの変更を検討することをお勧めします。実際にあなたが誰であるかを宣伝してみませんか?また、最終的にニックネームを変更することを選択した場合、誰かを
in辱し

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ごとに8の下限を一致させるなど、より小さな構造を取得できますか?N∈{8,9}の場合はどうですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.