Znajdowanie małych zbiorów liczb całkowitych, w których każdy element jest sumą dwóch innych

16

Jest to kontynuacja tego pytania na math.stackexchange.

Powiedzmy, że niepusty zbiór S ⊆ ℤ jest samonośny, jeśli dla każdego a  ∈ S istnieją odrębne elementy b, c  ∈ S takie, że a  =  b  + c. Dla dodatnich liczb całkowitych n , proste przykłady obejmują idealną S =  n ℤ lub (dla n > 3) przedział liczb całkowitych [- nn ].

Powiemy, że S jest silnie samonośna jeśli S jest rozłączne z -S: to znaczy, jeśli  ∈ S, a następnie -  ∉ S. Żadne z powyższych przykładów są silnie samonośna, ponieważ są one w rzeczywistości zamknięte pod negacją. Istnieją zestawy skończone, które są silnie samonośne: na przykład zestawy {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15 , 23} i {−10, −8, −6, −2, 1, 3, 4, 5}.

Pytanie 1. Dla dodatniej liczby całkowitej N > 0, czy istnieje algorytm poli ( N ) -time [lub polylog ( N ) -time], który albo (i)  wytworzy silnie samonośny zestaw, którego maksymalna wartość bezwzględna wynosi N , lub (ii )  ustalić, czy taki zestaw nie istnieje? [ Edycja : jak wskazano w najstarszej odpowiedzi + mój komentarz na ten temat, zawsze istnieje taki zestaw dla N  ≥ 10.]

Pytanie 2. Czy dla N > 0 można zbudować silnie samonośny zestaw z maksymalną wartością bezwzględną N i który ma najmniej możliwych elementów?

Niel de Beaudrap
źródło
1
migracja odpowiedzi na pytania nie jest powszechną praktyką i pytanie wygląda tutaj dobrze. Ale jeśli chcesz, przeprowadzę migrację.
Kaveh
Nie jestem również pewien, czy migracja odpowiedzi na pytanie ma sens.
Suresh Venkat
Więc jak sobie życzysz. Fakt, że pytanie to pozostaje, niepokoi mnie od pewnego czasu, odkąd strona stała się dojrzałym forum pytań i odpowiedzi na tematy teoretyczne. Pomyślałem, że ton może być znacznie lepiej dopasowany do (nie-badawczego) cs.SE; ale jeśli nie uważasz, że występuje poważny problem ze spójnością, przestanę się tym martwić.
Niel de Beaudrap,

Odpowiedzi:

6

Przypuszczam, że dla pytania nr 1 powinien być możliwy liniowy algorytm czasu (a jeśli chcesz poradzić sobie z inną reprezentacją, algorytm czasu O (1))

Biorąc pod uwagę dowolne N> = 23, tworzymy silnie samonośny zestaw, który zawiera 1 i N.

Możemy to zrobić łatwo, jeśli zbudujemy to samo dla N-1, a następnie dodamy N do wynikowego zestawu.

W przypadku przypadku podstawowego 23 możemy zacząć od zestawu przykładów.

Aby zmniejszyć rozmiar, powinniśmy być w stanie zastosować podobne podejście:

Twórz zestawy zawierające 1, N and N-1.

Używamy tych zestawów ograniczonych i wykonujemy tę konstrukcję rekurencyjnie, aby sprowadzić rozmiar do O (logN) w następujący sposób:

  • Jeśli N jest parzyste, aby zbudować zestaw zawierający 1, N i N-1, rekurencyjnie skonstruuj zestaw zawierający 1, N / 2 i N / 2-1 (tj. Zestaw odpowiadający N / 2) i dodaj N i N-1 do wynikowego zestawu. Ponieważ N-1 = N / 2 + N / 2-1 i N = 1 + N-1, jest to prawidłowy zestaw.

  • Jeśli N jest nieparzyste, konstruuj zestaw dla N-1 i N do zbioru wynikowego.

W przypadkach podstawowych możemy zacząć od {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15, 23,24} dla N = 24 Dla 24 <N <= 47 możemy użyć powyższego liniowego algorytmu czasowego i oprzeć się na zbiorze dla N = 24. Dla N> = 48 przełączamy na redukcję o połowę.

W rzeczywistości dla złożonego N możemy sprowadzić rozmiar do rozmiaru wymaganego dla jednej z małych liczb pierwszych, która dzieli N: Znajdź zestaw dla małej liczby pierwszej i po prostu pomnóż wszystkie liczby przez odpowiedni współczynnik.

Interesujące może być udowodnienie niektórych dolnych granic w przypadku, gdy N jest liczbą pierwszą.

Aryabhata
źródło
+1. Podejrzewa mnie, że zadaję pytanie ze zbyt dużą ilością wolnego miejsca. Oczywiście możesz zrobić to samo dla N> 10. Co pozostawia nam pytanie o konstruowanie mniejszych zestawów (być może minimalnego rozmiaru, jak w # 2).
Niel de Beaudrap,
Za poprawioną odpowiedź, by zmniejszyć rozmiar: nie podążam. Rozumiem, że chcesz mieć N „wspierane” (wyrażone jako suma odrębnych elementów) jako 1 + (N-1). Ale w jaki sposób „wspierasz” N-1? --- Także: bardziej interesuje mnie rozmiar, tj. Liczebność samego zestawu, chociaż interesujące granice jego reprezentacji mogą być również interesujące.
Niel de Beaudrap
@Niel: Miałem zamiar skomentować: zobacz moją edycję :-)
Aryabhata
Rozważ przypadek N = 46. Następnie N / 2 = 23; bierzemy przykład podany w pytaniu jako zestaw samonośny i uwzględniamy N-1 = 45 i N = 46. Jak zatem „wspieramy” N-1 = 45?
Niel de Beaudrap,
2
(Można rozważyć zmianę swój nick Dlaczego nie reklamować, którzy rzeczywiście są Pozwala także mi zwrócić się do Was bez patrzenia jakbym obrażanie kogoś, należy ostatecznie wybrać, aby zmienić swój pseudonim później.?.)
Niel de Beaudrap
5

Dla N ≥ 10 można zbudować silnie samonośny zestaw wielkości co najwyżej jedenastu, w następujący sposób:

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

Krótszy przykład przedstawiony w pierwotnym pytaniu odpowiada przypadkowi N = 10. Jest to prawie optymalne, ponieważ każdy silnie samonośny zestaw musi mieć liczność co najmniej osiem .

Tak więc problem można rozwiązać w czasie O (log (N)) [podejmowanym w zwykłych operacjach arytmetycznych na N], uzyskując zbiór liczności między ósmą a jedenastą.

Konstrukcja tej odpowiedzi została po raz pierwszy zaprezentowana dla pytania mat.stackoverflow , które daje również intuicję do konstrukcji. Czy nadal możemy uzyskać mniejsze konstrukcje, np. Pasujące do dolnej granicy ośmiu dla każdego N> 9? Co z przypadkami N ∈ {8,9}?

Niel de Beaudrap
źródło