Menemukan set kecil bilangan bulat di mana setiap elemen adalah jumlah dari dua elemen lainnya

16

Ini adalah tindak lanjut dari pertanyaan ini di math.stackexchange.

Mari kita katakan bahwa himpunan non-kosong S ⊆ ℤ adalah swadaya jika untuk setiap a  ∈ S, terdapat elemen yang berbeda b, c  ∈ S sedemikian rupa sehingga a  =  b  + c. Untuk bilangan bulat positif n , contoh sederhana termasuk S =  n ℤ yang ideal, atau (untuk n > 3) interval bilangan bulat [- nn ].

Kami akan mengatakan bahwa S adalah sangat mandiri jika S adalah memisah dari -S: yaitu, jika suatu  ∈ S, kemudian - sebuah  ∉ S. Tak satu pun dari contoh di atas adalah sangat mandiri, karena mereka sebenarnya ditutup di bawah negasi. Ada set yang terbatas yang sangat mandiri: misalnya, set {−22, −20, −18, −16, −12, ,12, −10, −2, 1, 3, 7, 8, 15 , 23} dan {−10, −8, −6, −2, 1, 3, 4, 5}.

Pertanyaan 1. Untuk bilangan bulat positif N > 0, apakah ada algoritma poly ( N ) -waktu [atau polylog ( N ) -waktu ) untuk (i)  menghasilkan himpunan swadaya kuat yang nilai absolut maksimumnya adalah N , atau (ii) )  menentukan bahwa tidak ada set seperti itu ada? [ Sunting : seperti yang ditunjukkan dalam jawaban terlama + komentar saya tentang itu, selalu ada set untuk N  ≥ 10.]

Pertanyaan # 2. Untuk N > 0, dapatkah Anda membangun set swadaya kuat dengan nilai absolut maksimum N , dan yang memiliki elemen paling sedikit?

Niel de Beaudrap
sumber
1
memigrasikan pertanyaan yang dijawab bukanlah praktik yang umum dan pertanyaannya terlihat baik di sini. Tetapi jika Anda mau, saya akan memigrasikannya.
Kaveh
Saya juga tidak yakin masuk akal untuk memigrasikan pertanyaan yang dijawab.
Suresh Venkat
Terserah Anda. Fakta bahwa pertanyaan ini tetap ada di sini telah mengganggu saya selama beberapa waktu sejak situs tersebut menjadi forum yang matang untuk tanya jawab tentang topik-topik teoretis. Saya berpikir bahwa nadanya mungkin jauh lebih cocok dengan tingkat (non-penelitian) cs.SE; tetapi jika Anda tidak merasa bahwa ada masalah konsistensi yang signifikan, maka saya akan berhenti khawatir tentang hal itu.
Niel de Beaudrap

Jawaban:

6

Saya kira algoritma waktu linear seharusnya dimungkinkan untuk Pertanyaan # 1) (dan jika Anda bersedia berurusan dengan representasi yang berbeda, algoritma waktu O (1))

Diberikan N> = 23, kami membangun set mandiri yang berisi 1 dan N.

Kita dapat melakukannya dengan mudah jika kita membuat yang sama untuk N-1, dan kemudian menambahkan N ke set yang dihasilkan.

Untuk kasus dasar 23, kita bisa mulai dengan contoh yang Anda buat.

Untuk menurunkan ukuran, kita harus dapat menggunakan pendekatan serupa:

Bangun set yang berisi 1, N and N-1.

Kami menggunakan set terbatas ini dan melakukan konstruksi ini secara rekursif untuk menurunkan ukuran ke O (logN) sebagai berikut:

  • Jika N adalah genap, untuk membangun himpunan yang berisi 1, N dan N-1, secara konstruktif himpunan himpunan yang berisi 1, N / 2 dan N / 2-1 (yaitu himpunan yang sesuai dengan N / 2) dan tambahkan N dan N-1 untuk set yang dihasilkan. Karena N-1 = N / 2 + N / 2-1 dan N = 1 + N-1, ini adalah himpunan yang valid.

  • Jika N adalah ganjil, buat satu set untuk N-1 dan N untuk set yang dihasilkan.

Untuk kasus dasar, kita dapat mulai dengan {−22, −20, −18, −16, −14, −12, −10, −2, 1, 3, 7, 8, 15, 23, 24} untuk N = 24. Untuk 24 <N <= 47, kita dapat menggunakan algoritma waktu linier di atas dan membangun set untuk N = 24. Untuk N> = 48 kita beralih ke mengurangi setengahnya.

Bahkan, untuk komposit N, kita dapat membawa ukuran lebih jauh ke ukuran yang diperlukan untuk salah satu bilangan prima kecil yang membagi N: Temukan set untuk bilangan prima kecil, dan cukup gandakan semua angka dengan faktor yang sesuai.

Mungkin menarik untuk membuktikan beberapa batasan yang lebih rendah dalam kasus N adalah prima.

Aryabhata
sumber
+1. Melayani saya tepat untuk mengajukan pertanyaan dengan terlalu banyak ruang malas, saya kira. Anda dapat melakukan hal yang sama untuk N> 10, tentu saja. Yang meninggalkan kita dengan pertanyaan membangun set yang lebih kecil dari ini (mungkin ukurannya minimal, seperti pada # 2).
Niel de Beaudrap
Agar jawaban Anda yang direvisi menurunkan ukuran: Saya tidak mengikuti. Saya yakin Anda ingin N "didukung" (dinyatakan sebagai jumlah elemen yang berbeda) sebagai 1 + (N-1). Tetapi bagaimana Anda "mendukung" N-1? --- Juga: Saya lebih tertarik pada ukuran, yaitu kardinalitas, dari himpunan itu sendiri, meskipun batas yang menarik pada perwakilannya juga mungkin menarik.
Niel de Beaudrap
@Niel: Saya akan berkomentar: lihat edit saya :-)
Aryabhata
Pertimbangkan kasus N = 46. Kemudian N / 2 = 23; kami mengambil contoh yang diberikan dalam pertanyaan sebagai perangkat mandiri, dan termasuk N-1 = 45 dan N = 46. Lalu bagaimana kita "mendukung" N-1 = 45?
Niel de Beaudrap
2
(Anda mungkin ingin mempertimbangkan untuk mengubah nama panggilan Anda. Mengapa tidak mengiklankan siapa Anda sebenarnya? Ini juga memungkinkan saya untuk memanggil Anda tanpa terlihat seperti saya menghina seseorang, haruskah Anda akhirnya memilih untuk mengubah nama panggilan Anda nanti.)
Niel de Beaudrap
5

Untuk N ≥ 10, seseorang dapat membangun seperangkat ukuran mandiri yang paling banyak sebelas, sebagai berikut:

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

Contoh yang lebih pendek disajikan dalam pertanyaan asli sesuai dengan kasus N = 10. Ini hampir optimal, karena setiap set mandiri sangat harus memiliki kardinalitas setidaknya delapan .

Dengan demikian, masalahnya dapat dipecahkan dalam waktu O (log (N)) [diambil dalam operasi aritmatika biasa pada N], menghasilkan serangkaian kardinalitas antara delapan dan sebelas.

Konstruksi untuk jawaban ini pertama kali disajikan untuk pertanyaan math.stackoverflow , yang juga memberikan intuisi untuk konstruksi. Bisakah kita mendapatkan konstruksi yang lebih kecil lagi, misalnya mencocokkan batas bawah delapan untuk setiap N> 9? Bagaimana dengan kasus N ∈ {8,9}?

Niel de Beaudrap
sumber