Apakah angka kotak ditulis dalam biner sebagai bahasa biasa?

8

Saya mengalami masalah dalam menentukan apakah semua angka kuadrat (1, 4, 9, 16, ...) ditulis dalam bentuk biner (1, 100, 1001, ...) adalah bahasa biasa.

Setelah beberapa upaya untuk menemukan pola umum dari angka-angka itu, saya menemukan bahwa untuk setiap angka kuadrat , sama dengan 0 atau 1, dan jadi saya dapat menggambar grafik DFA dengan 4 status untuk kenali bahasa ini. Namun ternyata, DFA yang saya gambar benar-benar mengenali superset dari bahasa angka kuadrat yang dimaksud. Saya terjebak di sini.n2n2mod4

Adakah yang bisa memberi saya petunjuk tentang masalah ini? Jika itu bukan bahasa biasa, bagaimana saya harus membuktikannya?

Saya juga sangat tertarik untuk mengetahui bagaimana saya harus mendekati pertanyaan semacam ini dengan cara terbaik di masa depan. Saya tahu bahwa dalam banyak kasus, jika kita memiliki intuisi bahwa automata harus melacak apa yang sudah terlihat (seperti ), maka ada keadaan yang tidak ditentukan yang diperlukan untuk automata untuk menghitung, sehingga tidak terbatas atau teratur. Kami kemudian dapat menggunakan Pumping lemma untuk membuktikan itu tidak biasa. Namun, saya tidak dapat memastikan apakah bahasa ini masih teratur, jadi saya tidak memiliki ide apa yang harus saya lakukan selanjutnya.aibi

Terima kasih!

Alexandra
sumber
Tentu saja tidak cukup untuk memeriksa apakah input Anda kongruen dengan atau mod , karena, misalnya, tetapi bukan kotak. Dugaan saya adalah bahasanya tidak teratur, karena rasanya Anda perlu mengingat seluruh input untuk mengetahui apakah itu kotak atau tidak (ini hanya intuisi dan tidak seperti bukti). 01451mod45
David Richerby
1
Bagian "pendekatan umum" dari pertanyaan Anda dicakup oleh pertanyaan referensi kami .
David Richerby
@ DavidRicherby Itu sangat umum. Saya tidak berpikir kita memiliki generalisasi dari pertanyaan khusus ini untuk set yang didefinisikan oleh hitung sebelumnya .
Gilles 'SANGAT berhenti menjadi jahat'

Jawaban:

9

Berikut ini adalah solusi teknologi tinggi. Menunjukkan bahasa Anda dengan . Szalay menunjukkan bahwa Dari sini cukup mudah untuk menunjukkan bahwa tidak teratur, dengan mereduksi menjadi .L

L10101={10n10n+21:n0}{110001,1000010001}.
L{anbn:n0}
Yuval Filmus
sumber
"reduksi dari"?
Omar
Ini adalah istilah informal - dengan mengurangi ketidakteraturan yang diketahui dari . anbn
Yuval Filmus
2

Nah, ini ketiga kalinya saya menulis ulang jawaban ini. Pengguna Yuval Filmus menunjukkan dua kesalahan yang sangat konyol yang saya buat pada dua versi sebelumnya.

Yah saya akhirnya menemukan solusi sederhana untuk masalah ini. Saya pikir itu berhasil.

Pertama-tama kita memiliki kata-kata seperti ini:

1(00)p1(00)p001

Apakah angka kuadrat.

Bukti:

Saya telah mencari informasi tentang angka kuadrat dan kemudian saya menemukan tentang "angka oktagonal terpusat" yang merupakan angka yang dibentuk oleh lapisan kelipatan delapan, tetapi bukan lapisan pertama. Lapisan pertama adalah satu, delapan kedua, enam belas ketiga dan seterusnya.

Jadi setiap layer memiliki "delapan" lebih banyak dari yang sebelumnya. Jumlah delapan dalam bilangan segi delapan terpusat dapat dihitung dengan menggunakan rumus gauss:

n2+n2

Kami kemudian kalikan dengan delapan dan tambahkan satu, ini karena lapisan pertama hanya sebuah titik.

8(n2+n)2+1

Sekarat:

4(n2+n)+1

Rumus itu memberi kita angka kuadrat aneh untuk setiap n.

Saya akan menghitung rumus untuk angka empat dan semua kekuatan empat.

Pertama kita kuadratkan angka, ini hanya menggandakan nol dari angka itu. Kemudian kami menambahkan nomor ke produk. Ini menempatkan "satu" pada posisi mulai dari kanan. adalah panjang kata biner.|n|/2|n|

Saat ini kami memiliki kata-kata dalam bentuk ini:

1(00)p1(00)p0

Kami kalikan dengan empat, ini hanya menambahkan dua nol di akhir nomor. Akhirnya kami menjumlahkan satu. Kita sudah selesai.

Pemompaan

Saya mengatur .i=0

Pertama kasing mudah

Jika kita membiarkan kosong, maka kita mengambil angka satu dan satu atau lebih nol. Ini memberi kita kata-kata dengan palu berat dua (jumlah yang dua). Hanya ada angka tidak rata dengan berat hamming dua, angka sembilan (angka kuadrat hanya dari bentuk 2n + 1 adalah 9, saya melihat ini di wikipedia: lihat di sini ). Karena semua angka yang kami pompakan lebih besar dari sembilan, kami membuktikan kasus ini.x

Hard case

Kami membiarkan "satu" pertama di tempatnya dan kami mengambil nol saja. Kita bisa mengeluarkan hingga nol.p1

Kata akan terlihat seperti ini:

10(00)m1(00)n001 .

Di mana dan adalah bilangan bulat yang lebih besar atau sama dengan satu danmnn>m

Pertama saya akan percaya bahwa angka yang diperoleh adalah kuadrat, maka saya akan menunjukkan bahwa itu salah:

Karena kita tahu bahwa semua angka kuadrat aneh dapat kita peroleh dengan rumus ini:

4(n2+n)+1

Kita mulai mendekomposisi angka, kita kurangi satu, ini sederhana menetapkan yang terakhir menjadi nol dan kemudian, kita bagi dengan empat, ini menghilangkan dua nol di akhir kata biner.

Maka kita akan memiliki kata-kata seperti ini:

10(00)m1(00)n0 , dan adalah bilangan bulat yang lebih besar atau sama dengan satu dan . Kata-kata ini adalah awalan dari kata lengkap.nmn>m

Karena kami percaya bahwa rantai ini adalah bagian dari bilangan kuadrat, kata harus dibentuk dengan melakukan rumus ini:

(n2+n)

n tidak bisa menjadi adil

Kami akan melihat lagi rumus ini:

n2+n

Karena kami percaya bahwa kata-kata yang kami pompakan adalah angka persegi. Kami menyebut kata-kata yang kami pompakan dan kami memilikinya:m

m=n2+n

Juga, kami memiliki bahwa dapat direpresentasikan sebagai jumlah dari dua angka biner, dan , masing-masing adalah kekuatan dua. Dan kami memilikinya danmm1m2m1<m2m1>m2

Hal pertama yang kami perhatikan adalah bahwa harus lebih kecil dari . Ini karena lebih besar dari akar kuadrat dari , jika sama dengan , maka akan lebih besar dari .nm2m2m1nm2n2m

Sekarang, ketika kita kuadratkan angka biner genap, kita memiliki bahwa angka kuadrat memiliki "lebih banyak nol" di sebelah kanan "satu" pertama daripada angka aslinya. Jadi "yang paling kanan" di dalam ada di sebelah kiri "yang paling kanan" di dalam . Jika kita menambahkan ke , kita memiliki bahwa "yang paling kanan" di dalam adalah "yang paling kanan" dalam . Karena lebih kecil dari . Kami memiliki "yang paling kanan" di dalam adalah di sebelah kanan "yang paling kanan" di . Karena itu .n2nnn2n2+nnnm2n2+nmmn2+nn2+n=mkita telah mencapai kontradiksi dan karena tidak dapat melakukannya bahkan.n

n tidak bisa tidak merata

Sekali lagi, kita memiliki bahwa adalah angka yang dibuat dengan menambahkan ke , jadimnn2m=n2+n

Kemudian kita perhatikan bahwa ; Hal ini karena:(n+1)2(n+1)=n2+n

(n+1)2(n+1)=n2+2n+1n1 ;

Lalu:

(n+1)2(n+1)=n2+n .

Cara lain untuk melihat ini, adalah dengan membayangkan sebagai bujur sangkar dengan sisi panjang . Kotak ini dibentuk oleh kotak yang lebih kecil dari ukuran satu. Kemudian, ketika kita menambahkan kuadrat ukuran satu ke kotak sebelumnya, kotak sebelumnya sekarang adalah persegi panjang yang sisi-sisinya adalah dan . Sekarang, kita dapat membayangkan sebagai bujur sangkar lain dengan sisi panjang . Kotak ini juga dibentuk oleh kotak yang lebih kecil dari ukuran satu. Jika kita menghapus kotak untuk itu, kita memiliki segi empat sisi dan .n2nnnn+1(n+1)2n+1n+1nn+1

Kami memiliki bahwa adalah bilangan genap dan buktinya mengikuti sama seperti sebelumnya untuk semua bilangan ganjil kurang darin+1nm21

Sekali lagi, ketika kita kuadratkan angka biner genap, kita memiliki bahwa angka tersebut memiliki "lebih banyak nol" di sebelah kanan "satu" pertama daripada angka aslinya. Jadi "yang paling kanan" di dalam ada di sebelah kiri "yang paling kanan" di dalam . Jika kita mengurangi ke , kita memiliki "yang paling kanan" di dalam adalah "yang paling kanan" di . Karena lebih kecil dari . Kami memiliki "yang paling kanan" di dalam adalah di sebelah kanan "yang paling kanan" di .(n+1)2n+1n+1(n+1)2n2+nn+1n+1m2n2+nm

Jika .n=m21

Sekali lagi, kita memiliki . Karena ( kuadrat) adalah angka yang merupakan kekuatan dua, ia hanya memiliki satu "satu" yang memimpin dan kemudian nol. Ketika kita mengurangi menjadi , kita mengubah semua nol ke kiri digit paling kiri dari di dalam menjadi "yang" dan angka yang dihasilkan tidak seperti kata-kata yang kita pompakan, harus ada setidaknya a "nol pemisahan" di antara keduanya.n2+n=(n+1)2(n+1)m22m2m2m22m2m22

Karena itu . Tetapi karena kita mengatakan bahwa kita telah mencapai kontradiksi dan oleh karena itu tidak dapat tidak merata.mn2+nn2+n=mn

Karena tidak bisa genap atau tidak rata, kami memiliki tidak ada sebagai bilangan bulat. Oleh karena itu kata-kata yang kami pompakan bukanlah produk rumus untuk bilangan kuadrat ganjil. Karena semua kata yang kita pompakan adalah aneh, itu bukan angka persegi.nn

rotia
sumber
1
Anda tidak dapat menerapkan lemma pemompaan ke untuk menunjukkan bahwa bahasa Anda tidak teratur, karena dapat dipompa. Hal yang sama berlaku untuk dalam bahasa terbalik. 1(00)p1(00)p (00)p1
Yuval Filmus
Anda tidak dapat memilih dalam lemma pemompaan. Lemma pemompaan hanya menyatakan bahwa beberapa berfungsi. Dalam rangka untuk menunjukkan bahwa bahasa tidak biasa, Anda harus menunjukkan bahwa tidak ada karya. y y y
Yuval Filmus
@yuvalFilmus Anda benar
rotia
2
Anda menyatakan bahwa bilangan genap tetap genap pada pembagian dengan 2, tetapi itu tidak selalu terjadi.
Yuval Filmus
2
Saya perhatikan bahwa Anda telah membuat sekitar 15 suntingan dalam 2 hari terakhir. Sangat menyenangkan bahwa Anda ingin meningkatkan jawaban Anda, dan saya ingin melihat Anda terus melakukan itu. Namun, mungkin sedikit tidak adil untuk pertanyaan lain untuk terus menabrak yang satu ini ke bagian atas halaman depan setiap kali Anda mengedit di sini. Apakah Anda pikir Anda dapat mengelompokkan editan Anda (mungkin menulisnya secara offline, katakan dengan stackedit.com) sehingga Anda hanya membuat beberapa pengeditan per hari? Saya tidak ingin mencegah Anda dari mengedit jawaban Anda untuk memperbaikinya, tapi saya ingin tahu apakah mungkin ada beberapa media bahagia. Terima kasih untuk mendengarkan!
DW