Знаходження невеликих наборів цілих чисел, у яких кожен елемент є сумою двох інших


16

Це продовження цього питання на math.stackexchange.

Скажемо, що не порожній набір S ⊆ ℤ є госпрозрахунковим, якщо для кожного a  ∈ S існують різні елементи b, c  ∈ S такі, що a  =  b  + c. Для натуральних чисел n прості приклади включають ідеальний S =  n ℤ, або (для n > 3) цілий інтервал [- nn ].

Ми скажемо, що S є сильно госпрозрахунковим, якщо S відмежований від −S: тобто якщо a  ∈ S, то - a  Ne 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 [або полілог ( N ) -time], щоб або (i)  створити сильно самонесучий набір, максимальне абсолютне значення якого N , або (ii) )  визначити, що такого набору не існує? [ Редагувати : як зазначено в найдавнішій відповіді + мій коментар до неї, завжди існує такий набір для N  ≥ 10.]

Питання №2. Чи можна для N > 0 побудувати сильно самонесучий набір з максимальним абсолютним значенням N і який має найменші можливі елементи?


1
міграція відповідей на запитання не є звичайною практикою, і питання виглядає тут чудово. Але якщо ви хочете, я перенесу це.
Каве

Я також не впевнений, що має сенс мігрувати відповідь на запитання.
Суреш Венкат

Як хочеш, то. Той факт, що це питання залишається тут, хвилює мене протягом певного часу, оскільки сайт став зрілим форумом для питань і відповідей на теоретичні теми. Я подумав, що тон може бути набагато краще підходить до (не дослідницького рівня) cs.SE; але якщо ви не відчуваєте, що існує суттєва проблема послідовності, то я перестану з цим хвилюватися.
Ніль де Бодорап

Відповіді:


6

Я припускаю, що для запитання №1 має бути можливим лінійний алгоритм часу (і якщо ви готові мати справу з іншим представленням, алгоритм часу (1) O)

Враховуючи будь-який 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 для отриманого множини.

Для базових випадків ми можемо починати з {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15, 23,24} для N = 24. Для 24 <N <= 47 ми можемо використовувати вищезазначений лінійний алгоритм часу та побудувати на множині для N = 24. Для N> = 48 переходимо до зменшення вдвічі.

Насправді, для складеного N ми можемо звести розмір далі до розміру, необхідного для одного з маленьких простих чисел, який ділить N: Знайдіть набір для малого простого числа і просто помножимо всі числа на відповідний множник.

Можливо, буде цікаво довести деякі нижчі межі у випадку, коли N є простим.


+1. Я гадаю, що я правильно ставив питання з надто великою слабкою кімнатою. Ви можете зробити те ж саме для N> 10, звичайно. Що залишає перед нами питання про побудову наборів, менших за це (можливо, мінімальних розмірів, як у №2).
Ніль де Бодорап

Що стосується вашої переглянутої відповіді, щоб зменшити розмір: я не дотримуюся. Я вважаю, що ви хочете, щоб N "підтримувався" (виражається сумою різних елементів) як 1 + (N-1). Але як тоді "підтримувати" N-1? --- Також: Мене більше цікавить розмір, тобто кардинальність самого набору, хоча цікаві межі його представлення також можуть бути цікавими.
Ніль де Бодорап

@Niel: Я збирався коментувати: дивіться свою редагування :-)
Aryabhata

Розглянемо випадок N = 46. Тоді N / 2 = 23; ми беремо приклад, наведений у питанні, як самонесучий набір, і включаємо N-1 = 45 і N = 46. Як тоді ми "підтримуємо" N-1 = 45?
Ніль де Бодорап

2
(Ви можете розглянути можливість зміни свого прізвиська. Чому б не рекламувати, хто ви є насправді? Це також дозволяє мені звертатися до вас, не дивлячись, що я когось
ображаю. Якщо

5

Для N ≥ 10 можна створити сильно самонесучий набір розміром не більше одинадцяти:

{−N, −N + 2, −N + 4, −2, 1, 3, 4, 5, N − 7, N − 6, N − 5}.

Коротший приклад, поданий в оригінальному запитанні, відповідає випадку N = 10. Це близьке до оптимального, оскільки будь-який сильно самонесучий набір повинен мати кардинальність принаймні вісім .

Таким чином, задача є вирішуваною за час O (log (N)) [взятого в повсякденних арифметичних операціях на N], даючи набір кардинальності від восьми до одинадцяти.

Конструкція для цієї відповіді вперше була представлена ​​для питання math.stackoverflow , який також дає інтуїцію для побудови. Чи можемо ми все-таки отримати менші конструкції, наприклад відповідність нижньої межі восьми для кожного N> 9? Як щодо випадків N ∈ {8,9}?

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.