Làm thế nào để chứng minh sự tồn tại của một số không thể được viết bởi bất kỳ thuật toán nào?


14

Tôi có vấn đề:

Cho thấy tồn tại một số thực mà không có chương trình nào tồn tại chạy dài vô tận và ghi các chữ số thập phân của số đó.

Tôi cho rằng nó có thể được giải quyết bằng cách giảm nó thành vấn đề Dừng, nhưng tôi không biết làm thế nào để làm như vậy.

Tôi cũng sẽ đánh giá cao các liên kết đến các vấn đề tương tự để thực hành thêm.




Yuval Filmus cung cấp câu trả lời thú vị mà bạn nên đọc kỹ. Các vấn đề ngăn chặn "là điều" mà bạn có thể cố gắng để giảm đến vấn đề của bạn, không phải là cách khác xung quanh (giảm vấn đề của bạn để ngăn chặn - như bạn đưa ra giả thuyết trong câu hỏi của bạn).
quetzalcoatl

Câu hỏi này có thể được cải thiện bằng cách sửa lỗi ngữ pháp trong phần trích dẫn không? Tôi thấy nó thực sự khó phân tích.
JimmyJames

@JimmyJames, tôi đã làm hết sức để dịch nó từ tiếng Nga : Объясните в одно предложение, почему существует такое вещественное число, для которого не существует программы, которая будет работать бесконечно долго и выписывать цифры его представления в десятичной системе счисления. Hy vọng ai đó sẽ cải thiện bản dịch của tôi.
Fresheed

Câu trả lời:


18

Như Sebastian chỉ ra, chỉ có (vô cùng nhưng) vô số chương trình. Liệt kê chúng để tạo một danh sách các chương trình. Danh sách này (vô hạn nhưng) dài vô cùng. Mỗi chương trình tạo một số trong R. Từ đó chúng ta có thể tạo một danh sách các số có thể đếm được (vô hạn nhưng) trong R. Bây giờ chúng ta có thể áp dụng trực tiếp đối số đường chéo của Cantor để chứng minh rằng vẫn phải có các số khác.

Nhân tiện, nếu thuật toán có các đối số (hữu hạn), bạn có thể viết lại thành một danh sách các chương trình "dài hơn" trong đó mỗi chương trình không có bất kỳ đối số nào.

Đối với nhận xét của bạn "Điều gì sẽ xảy ra nếu số thực được phép làm đối số", thì tiền đề của câu hỏi là sai: tất cả các số trong R có thể được tạo. Nếu ai đó tìm thấy một số, giả sử và tuyên bố rằng nó không thể được tính toán, chúng tôi có "thuật toán" sau:

func(number):
    return number

và gọi func (皮)


17

Nó thực sự đơn giản hơn nhiều. Chỉ có một số lượng thuật toán đếm được. Tuy nhiên, có rất nhiều con số thực. Vì vậy, nếu bạn cố gắng ghép chúng lại, một số số thực sẽ bị treo.



1

Số này là một số dài vô tận mà sau dấu thập phân mã hóa bằng mọi cách, tất cả các máy turing không dừng lại. Với con số này, bạn sẽ có thể giải quyết vấn đề tạm dừng.

Bạn có thể "tìm kiếm" TM theo số và chạy song song. Nếu TM dừng lại, nó dừng lại. Nếu không, bạn sẽ "tìm mã của nó trong số".

Có nhiều sửa đổi của bằng chứng và bạn sẽ có thể sao chép chúng sau bài học phức tạp đầu tiên :-)


Điều này liên quan chặt chẽ đến hằng số Chaitin .
David Richerby

yah, nụ dễ hiểu hơn nhiều ...
smrt28

-2

Một điểm di chuyển trong một đường dẫn bởi funcion y = 2x. Khi abscissa là một con số không tính toán được, không có cách nào để Điểm tính toán đường đi của nó, nhưng chúng ta biết rằng nó tiếp tục. Vì vậy, số lượng không tính toán có thể tồn tại ở tất cả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.