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.
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.
Terima kasih!
Jawaban:
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
sumber
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:
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:
Kami kemudian kalikan dengan delapan dan tambahkan satu, ini karena lapisan pertama hanya sebuah titik.
Sekarat:
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:
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.p−1
Kata akan terlihat seperti ini:
Di mana dan adalah bilangan bulat yang lebih besar atau sama dengan satu danm n n>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:
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:
Karena kami percaya bahwa rantai ini adalah bagian dari bilangan kuadrat, kata harus dibentuk dengan melakukan rumus ini:
Kami akan melihat lagi rumus ini:
Karena kami percaya bahwa kata-kata yang kami pompakan adalah angka persegi. Kami menyebut kata-kata yang kami pompakan dan kami memilikinya:m
Juga, kami memiliki bahwa dapat direpresentasikan sebagai jumlah dari dua angka biner, dan , masing-masing adalah kekuatan dua. Dan kami memilikinya danm m1 m2 m1−−−√<m2 m1>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 .n m2 m2 m1 n m2 n2 m
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 .n2 n n n2 n2+n n n m2 n2+n m m≠n2+n n2+n=m kita telah mencapai kontradiksi dan karena tidak dapat melakukannya bahkan.n
Sekali lagi, kita memiliki bahwa adalah angka yang dibuat dengan menambahkan ke , jadim n n2 m=n2+n
Kemudian kita perhatikan bahwa ; Hal ini karena:(n+1)2−(n+1)=n2+n
Lalu:
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 .n2 n n n n+1 (n+1)2 n+1 n+1 n n+1
Kami memiliki bahwa adalah bilangan genap dan buktinya mengikuti sama seperti sebelumnya untuk semua bilangan ganjil kurang darin+1 n m2−1
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)2 n+1 n+1 (n+1)2 n2+n n+1 n+1 m2 n2+n m
Jika .n=m2−1
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) m22 m2 m2 m22 m2 m22
Karena itu . Tetapi karena kita mengatakan bahwa kita telah mencapai kontradiksi dan oleh karena itu tidak dapat tidak merata.m≠n2+n n2+n=m n
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.n n
sumber