Rumah Kewangan Peribadi Cabaran Pengaturcaraan java: Mewujudkan Mesin Turing Mudah - dummies

Cabaran Pengaturcaraan java: Mewujudkan Mesin Turing Mudah - dummies

Video: Rahasia Spek Mesin CB Agar Mudah Wheelie 2025

Video: Rahasia Spek Mesin CB Agar Mudah Wheelie 2025
Anonim

Pada tahun 1936, ahli matematik Alan Turing jenis Mesin pengkomputeran yang mudah dipanggil Mesin Turing . Turing tidak pernah membina Mesin Turing. Sebaliknya, ia adalah alat hipotesis yang dia bantu untuk membantu dalam kajian tentang kebolehkomputeran - iaitu, sama ada masalah kompleks boleh diselesaikan dengan langkah-langkah pengiraan dan sama ada mesin boleh dibuat yang boleh menyelesaikan sebarang masalah yang boleh dikira. (Jika anda berminat untuk mengetahui lebih lanjut mengenai sejarah atau aplikasi mesin Turing, anda boleh menemui banyak artikel tentangnya di Internet. Hanya gunakan mana-mana penyedia carian untuk mencari "mesin Turing".

Pengendalian Mesin Turing adalah mudah. Ia merangkumi hanya beberapa konsep asas:

  1. Jantung Mesin Turing adalah pita panjang yang panjang yang dibahagikan kepada sel ke mana maklumat dapat ditulis.

    Dalam amalan sebenar, tentu saja, tiada peranti fizikal boleh mempunyai bilangan sel tak terhingga. Tetapi dalam teori Mesin Turing, pita tidak terbatas.

  2. Maklumat yang boleh ditulis pada setiap sel adalah terhad kepada simbol tunggal, seperti 0 atau 1. Namun, maklumat boleh diwakili oleh gabungan nilai-nilai sel-sel berturut-turut.

    Sebagai contoh, anda boleh mewakili nilai angka dengan kejadian berturut-turut simbol 1 diikuti oleh 0. Oleh itu, 1110 mewakili nilai 3 kerana terdapat tiga 1; 111111011110 mungkin mewakili nilai 6 dan 4 (enam 1 diikuti oleh sifar, diikuti dengan empat 1 diikuti oleh sifar lain).

  3. Mesin Turing mengandungi kepala baca tulis yang selalu diposisikan lebih dari satu (dan hanya satu) sel pita.

    Kepala baca tulis ini boleh membaca simbol yang terdapat di dalam sel. Ia juga boleh memadam simbol dan, jika dikehendaki, tulis simbol baru di tempatnya. Sel di mana kepala baca tulis diletakkan dirujuk sebagai sel semasa atau sel .

  4. Pita itu bermotor supaya ia dapat dipindahkan ke kiri atau ke kanan di bawah satu kepala baca tulis satu sel pada satu masa.

  5. Mesin ini mempunyai keadaan , yang diwakili oleh simbol seperti huruf abjad.

Seperti mana-mana komputer, Mesin Turing boleh diprogramkan. Walau bagaimanapun, satu program untuk Mesin Turing tidak jauh menyerupai program Java.

Sebaliknya, program Mesin Turing hanyalah satu set peraturan yang dinilai untuk menentukan tindakan yang harus dilakukan oleh mesin. Setiap peraturan mengenalpasti tindakan yang akan diambil apabila sel semasa mengandungi simbol yang diberikan dan mesin berada dalam keadaan tertentu.Sebagai contoh, peraturan mungkin menentukan apa yang harus dilakukan jika sel semasa mengandungi 1 dan keadaan mesin adalah "a".

Setiap peraturan boleh menentukan salah satu daripada tiga tindakan:

  • Hapus sel semasa atau tulis nilai baru ke sel.

  • Pindahkan pita satu sel ke kiri atau satu sel ke kanan.

  • Tukar keadaan mesin ke keadaan baru.

Sebagai contoh, peraturan mungkin menyatakan bahawa jika sel semasa mengandungi 1 dan keadaan mesin adalah "a," Mesin Turing perlu menulis 0 dalam sel semasa, memajukan pita satu sel ke kanan, dan menukar keadaan mesin kepada "b. "

Selain program, pita Mesin Turing dapat memiliki nilai awal.

Itu sahaja; itu adalah definisi keseluruhan Mesin Turing. Walaupun kesederhanaannya, Mesin Turing boleh mengira apa-apa dari 2 + 2 hingga trajektori roket ke Marikh.

Untuk cabaran ini, anda mesti membuat mesin Turing yang sangat mudah. Untuk mempermudah masalah, terima keterbatasan berikut pada versi Mesin Turing ini:

  • Pita tidak perlu tak terbatas. Anda boleh menggunakan sebarang ciri Java - array, rentetan, atau koleksi - untuk mewakili pita.

    (Perhatikan bahawa walaupun pita itu tidak perlu tak terbatas, anda mesti dapat bergerak dengan mudah ke kiri atau kanan dari sel semasa. Jika anda memilih menggunakan array, jangan bermula dengan sel semasa pada elemen 0 kerana anda tidak boleh bergerak ke kiri dari sana.)

  • Sel boleh kosong atau ia boleh mengandungi sebarang huruf atau angka. Suatu sel kosong diwakili oleh watak garis bawah.

  • Keadaan ini boleh menjadi watak alfanumerik tunggal.

  • Program untuk Mesin Turing akan dibaca dari fail teks. Fail teks ini mengandungi satu peraturan per baris. Setiap peraturan mengandungi lima aksara, dipisahkan oleh ruang, yang memberikan butiran untuk setiap peraturan, seperti berikut:

    • Sel semasa: Nilai yang akan dipadankan untuk sel semasa.

    • Keadaan semasa: Nilai yang hendak dipadankan untuk keadaan mesin semasa.

    • Sel baru: Nilai untuk menulis ke sel baru. _ untuk memadamkan sel, * untuk meninggalkan sel tidak berubah.

    • Pergerakan: L atau R untuk menggerakkan pita ke kiri atau ke kanan; H untuk menghentikan program ini; mana-mana watak lain untuk tidak menggerakkan pita itu.

    • New state: Nilai baru untuk keadaan mesin. Sebagai contoh, berikut menyatakan bahawa apabila sel semasa adalah 1 dan keadaan adalah "a," sel semasa perlu ditetapkan kepada 0, pita itu bergerak satu sel ke kiri, dan keadaan harus ditetapkan kepada " b: "

  • 1 a 0 L b

    Baris pertama fail teks harus mengandungi rentetan yang mewakili nilai awal untuk pita.
    
    • Baris kedua fail teks harus mengandungi status awal.

    • Angka berikut menunjukkan antara muka pengguna untuk penyelesaian sampel, tetapi anda bebas menggunakan sebarang reka bentuk antara muka pengguna yang anda mahukan untuk projek ini.

Potensi antara muka Mesin Turing.

Berikut adalah beberapa pertimbangan untuk mewujudkan antara muka:

Nilai dan sel semasa:

  • Sekurang-kurangnya, anda harus menunjukkan nilai pita dan menonjolkan sel semasa. Peralatan dan paparan:

  • Anda juga harus menyediakan kemampuan untuk memulakan, menghentikan, atau memulakan semula pelaksanaan program, dan anda harus memaparkan hasil dari setiap langkah program. Pelaksanaan program:

  • Anda boleh menyediakan cara untuk pengguna menjalankan program yang dimuat dari awal hingga akhir, serta cara untuk pengguna melangkah melalui program dengan mengklik butang untuk melaksanakan setiap langkah daripada program ini. Memuatkan program

  • : Anda perlu memberikan butang yang membolehkan pengguna memuatkan mesin Turing Machine dari fail teks dan yang membiarkan pengguna menetapkan semula mesin untuk menjalankan program itu lagi. Berikut tip untuk melaksanakan pita tak terhingga: Gunakan tiga pemboleh ubah rentetan untuk memegang nilai-nilai pita, satu untuk watak tunggal yang disimpan dalam sel semasa, satu saat untuk aksara di sebelah kiri sel semasa, dan satu pertiga untuk aksara di sebelah kanan sel semasa. Anda kemudiannya boleh dengan mudah menggerakkan sel semasa ke kiri atau ke kanan dengan menggunakan gabungan yang tepat dari operasi penggabungan dan substring.

Anda boleh mencari penyelesaian untuk cabaran ini pada tab Muat Turun dari halaman produk

Java All-in-One Untuk Dummies, Edisi ke-4. Nasib baik!

Cabaran Pengaturcaraan java: Mewujudkan Mesin Turing Mudah - dummies

Pilihan Editor

5 Perkara yang boleh dilakukan oleh GoPro Camera - dummies

5 Perkara yang boleh dilakukan oleh GoPro Camera - dummies

Apa yang boleh dilakukan oleh GoPro? Inilah soalan yang lebih relevan: Apa yang anda mahu lakukan? Meminta soalan ini lebih seperti menanyakan diri anda tentang keinginan dan hasrat anda sendiri untuk rakaman video yang unik. Apabila anda menentukan apa yang anda ingin tangkap, semua yang anda perlu lakukan ialah menyambungkan kamera ke gunung yang sesuai ...

Pengaturan & Pintasan dSLR Untuk Menipu Cheat Sheet - dummies

Pengaturan & Pintasan dSLR Untuk Menipu Cheat Sheet - dummies

Anda mempunyai refleks kanta tunggal digital yang besar (dSLR ) kamera dan mahu menangkap beberapa gambar indah masa-masa hidup anda. Untuk sepenuhnya menguasai dSLR anda dan membuat gambar yang menarik, anda mesti menceburkan diri ke dunia baru yang berani yang melibatkan membuat keputusan tentang mod penangkapan. Mengetahui panjang fokus apa yang digunakan dalam ...

Pilihan Editor

Bagaimana Menggunakan Lapisan Masker Gradient dan Brush Masker di Photoshop CS6 - lapisan masker

Bagaimana Menggunakan Lapisan Masker Gradient dan Brush Masker di Photoshop CS6 - lapisan masker

Lapisan lapisan di Photoshop CS6 membolehkan anda secara beransur-ansur berus dalam ketelusan dan kelegapan pada asas pixel selektif. Dua alat pelapis lapisan - Alat Gradien dan Brush - lebih kerap digunakan berbanding yang lain: Alat Gradien: Menetapkan alat ini kepada kecerunan linear hitam ke putih atau putih ke ...

Cara Menggunakan Kuler untuk Cari dan Kongsi Tema Warna di Photoshop CS6 - dummies

Cara Menggunakan Kuler untuk Cari dan Kongsi Tema Warna di Photoshop CS6 - dummies

Sumber yang tersedia untuk Adobe Photoshop Creative Suite 6 adalah luas. Kuler adalah komuniti dalam talian yang menyediakan tema warna untuk anda menyemak imbas, memuat turun, membuat, mengedit, dan memuat naik untuk berkongsi dengan orang lain. Gunakan tema ini apabila membuat projek cetak grafik atau laman web. Apa yang anda perlukan ialah sambungan Internet dan Adobe ID. Di sini ...

Cara Menggunakan Kata Kunci untuk Photoshop CS6 Files dalam Bridge - dummies

Cara Menggunakan Kata Kunci untuk Photoshop CS6 Files dalam Bridge - dummies

Kata kunci adalah label deskriptif yang anda lampirkan ke fail di Bridge. Mereka membantu untuk mengkategorikan imej Photoshop CS6 anda, membolehkan anda lebih cekap dan cepat mencari fail yang anda inginkan. Berikut adalah downside untuk membuat dan menggunakan kata kunci: Untuk membuat kata kunci baru (folder kategori yang mengandungi kata kunci): Klik ikon tanda tambah (+) ...

Pilihan Editor

Dengan Touch dengan Nota Reka bentuk - dummies

Dengan Touch dengan Nota Reka bentuk - dummies

Nota reka bentuk adalah sesuai untuk berkomunikasi dengan pemaju lain yang bekerja pada Laman web, tetapi tidak dalam jarak menjerit. Ciri Dreamweaver ini berfungsi seperti tag komen (kod HTML yang membolehkan anda memasukkan teks dalam halaman yang tidak akan dipaparkan dalam penyemak imbas) tetapi dengan privasi lebih banyak. Ramai pemaju menggunakan ...

Memenuhi Dreamweaver CS3 Common Insert Bar - dummies

Memenuhi Dreamweaver CS3 Common Insert Bar - dummies

Jangan berfikir bahawa toolbar Dreamweaver CS3 Common Insert biasa dan biasa. Ia hanya dipanggil "umum" kerana ia menawarkan perintah memasukkan yang paling kerap digunakan kerana ia adalah yang paling berguna. Dengan bilah alat yang ditunjukkan di sini, anda boleh memasukkan segala-galanya dari pautan e-mel kepada tarikh kepada mana-mana media yang ingin anda letakkan ...

Gambaran Keseluruhan Alignment Imej dalam Adobe CS5 Dreamweaver - dummies

Gambaran Keseluruhan Alignment Imej dalam Adobe CS5 Dreamweaver - dummies

Penjajaran imej dan teks bersebelahan mereka di Adobe Suite Creative 5 (Adobe CS5) Dreamweaver adalah mudah, tetapi pilihan yang ada mungkin membuat kelihatan terlalu rumit. Imej dan teks bersebelahan mereka duduk pada garis dasar yang sama sebagai lalai, memaksa teks berjalan dalam satu baris ke kanan imej. Untuk ...