Bagaimana cara membuktikan keberadaan angka yang tidak dapat ditulis oleh algoritma apa pun?

14

Saya punya masalah:

Tunjukkan bahwa ada bilangan real yang tidak ada program yang berjalan sangat lama dan menulis angka desimal angka itu.

Saya kira itu bisa diselesaikan dengan menguranginya menjadi masalah Berhenti, tetapi saya tidak tahu bagaimana melakukannya.

Saya juga akan menghargai tautan ke masalah serupa untuk latihan lebih lanjut.

segar
sumber
Yuval Filmus memberikan jawaban menarik yang harus Anda baca dengan cermat. Masalah penghentian "adalah hal" yang dapat Anda coba kurangi ke masalah Anda, bukan sebaliknya (kurangi masalah Anda menjadi penghentian - saat Anda berhipotesis dalam pertanyaan Anda).
quetzalcoatl
Bisakah pertanyaan ini diperbaiki dengan memperbaiki tata bahasa di bagian yang dikutip? Saya merasa sangat sulit untuk menguraikan.
JimmyJames
@JimmyJames, saya melakukan yang terbaik untuk menerjemahkan dari bahasa Rusia: Объясните в одно предложение, почему существует такое вещественное число, для которого не существует программы, которая будет работать бесконечно долго и выписывать цифры его представления в десятичной системе счисления. Semoga seseorang akan meningkatkan terjemahan saya.
fresheed

Jawaban:

18

Seperti yang ditunjukkan Sebastian, hanya ada (sangat sedikit tetapi) banyak program. Daftarkan mereka untuk membuat daftar program. Daftar ini (tak terhingga tetapi) terhitung panjang. Setiap program menghasilkan satu angka dalam R. Dari itu kita dapat membuat daftar angka (tak terbatas tetapi) yang dapat dihitung dalam R. Sekarang kita dapat menerapkan argumen diagonal Cantor secara langsung untuk membuktikan bahwa masih harus ada angka lain.

Omong-omong jika algoritma memiliki argumen (terbatas), Anda bisa menulis ulang itu sebagai daftar "lebih panjang" dari program di mana setiap program tidak memiliki argumen.

Berkenaan dengan komentar Anda "Bagaimana jika bilangan real diizinkan sebagai argumen", maka premis pertanyaan itu salah: semua angka dalam R kemudian dapat dihasilkan. Jika seseorang menemukan angka, katakan 皮 dan klaim itu tidak dapat dihitung, kami memiliki "algoritma" berikut:

func(number):
    return number

dan panggil func (皮)

Albert Hendriks
sumber
17

Ini sebenarnya jauh lebih sederhana. Hanya ada sejumlah algoritma yang dapat dihitung. Namun ada banyak bilangan real. Jadi, jika Anda mencoba memasangkannya, beberapa bilangan real akan dibiarkan menggantung.

Sebastian Oberhoff
sumber
9

k1k0

Yuval Filmus
sumber
1

Angka tersebut adalah angka panjang tak terhingga yang setelah titik desimal dikodekan bagaimanapun juga semua mesin turing yang tidak berhenti. Dengan nomor ini, Anda akan dapat memecahkan masalah terputus-putus.

Anda dapat "mencari" TM dalam angka dan menjalankannya secara paralel. Jika TM berhenti, ia berhenti. Jika tidak, Anda akan "menemukan kodenya di nomor".

Ada banyak modifikasi dari buktinya dan Anda harus dapat mereproduksi mereka setelah pelajaran kompleksitas pertama :-)

smrt28
sumber
Ini terkait erat dengan konstanta Chaitin .
David Richerby
yah, kuncup jauh lebih mudah dimengerti ...
smrt28
-2

Suatu titik bergerak di jalur oleh fungsi y = 2x. Ketika absis adalah angka yang tidak dapat dihitung, tidak ada cara bagi Point untuk menghitung jalurnya, tetapi kita tahu itu terus berlanjut. Jadi angka yang tidak dapat dihitung bisa ada sama sekali.

Valmir
sumber