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 2024

Video: Rahasia Spek Mesin CB Agar Mudah Wheelie 2024
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

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Cara Buat Outlet untuk Pengawal Peta di Apl iOS anda - dummies

Jika anda mahu menggunakan MapController untuk apl iOS anda, anda memerlukan sebuah saluran keluar. Dengan Pemilih peta anda dijaga, tiba waktunya untuk mencipta saluran supaya MapController mempunyai akses ke paparan Peta untuk memusatkan peta dan mempunyai paparan anotasi. Ikuti langkah berikut:

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Bagaimana Membuat Seni Bina Aplikasi iOS - manisan

Senibina aplikasi adalah di mana anda akan bermula dengan pembangunan aplikasi iOS anda. Pada tahap asas, kebanyakan apl terdiri daripada komponen asas yang sama. Kebanyakan aplikasi terdiri daripada yang berikut: Model: Objek model merangkumi logik dan kandungan (data) aplikasi. Views: Kandungan data tidak berguna jika pengguna anda ...

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Protein Diet Paleo dan Mengapa Haiwan Matter - manik

Manusia, manusia gua dan manusia moden, adalah omnivora . Gaya hidup Paleo membina warisan makan daging. Ahli antropologi bersetuju bahawa nenek moyang kita yang terdahulu adalah pemakan daging, dan saintis menganggarkan bahawa gen kita adalah 99. 9 peratus sama dengan mereka pada masa itu. Daging menyediakan kita dengan protein, asid lemak penting, dan vitamin - sama seperti ...

Pilihan Editor

Bersukacita dengan Perspektif Hak - monyet

Bersukacita dengan Perspektif Hak - monyet

Tidak seperti binatang lain, mengenai pilihan! Anda boleh memilih untuk berbahagia. Anda boleh memilih untuk melihat kehidupan sebagai kaca separuh penuh (optimistik) atau kaca setengah kosong (pesimis). Semuanya datang kepada sama ada anda menentukan masalah sebagai cabaran atau krisis. Mempunyai perspektif yang betul adalah ...

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Kebahagiaan: Tahu Kapan Rencana dan Kapan Bukan Untuk - patung

Akhir-akhir ini, manusia memerlukan rancangan untuk semuanya. Adakah rancangan ini menjadikan anda lebih bahagia? Lebih kurang dan lebih sedikit orang boleh melalui hari tanpa BlackBerry. Ibu bapa merancang untuk pendidikan kolej anak-anak mereka apabila anak-anak berada di tadika. Ada perancang persaraan, perancang perjalanan, perancang perkahwinan, dan bahkan ...

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Memutuskan apa jenis orangtua yang anda inginkan untuk mencapai kebahagiaan

Bagaimana membesarkan anak-anak anda tidak hanya menjejaskan betapa gembiranya mereka; ia memberi kesan kepada bagaimana mereka melakukan persembahan di sekolah, sama ada mereka mengambil merokok, bagaimana mungkin mereka akan mengalami kemurungan, dan sama ada mereka terlibat dalam tingkah laku seksual yang berisiko. Menurut ahli psikologi yang mengkaji hal semacam ini, terdapat empat gaya utama ...

Pilihan Editor

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Rakaman Excel Macros dengan Rujukan Mutlak - dummies

Mod rakaman lalai excel adalah rujukan mutlak. Apabila rujukan sel dalam formula adalah rujukan mutlak, ia tidak menyesuaikan secara automatik apabila formula disisipkan ke lokasi baru. Cara terbaik untuk memahami bagaimana konsep ini digunakan untuk makro adalah mencuba. Catat makro yang mengira baris ...

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Merujuk kepada Nilai atau Rumusan dalam Sel Lain dalam Excel 2007 Formula - dummies

Menghubungkan formula adalah formula dalam Excel 2007 yang merujuk lokasi dalam lembaran kerja yang sama, buku kerja sama, atau bahkan buku kerja yang berbeza. Apabila anda mencipta formula pautan, ia membawa formula rumit atau asal ke lokasi baru supaya hasil dalam formula pengaudan tetap terikat secara dinamik kepada asal. Jika ...

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rakaman Excel Macros dengan Rujukan Relatif - dummies

Rujukan relatif dalam makro Excel bermakna relatif kepada sel yang sedang aktif . Oleh itu, berhati-hati dengan pilihan sel aktif anda - kedua-duanya apabila anda merakam rujukan makro relatif dan apabila anda menjalankannya. Pertama, buka Sample File. xlsx boleh didapati dalam talian. Kemudian, gunakan langkah-langkah berikut untuk merakam makro rujukan relatif: Pada ...