Làm thế nào có thể quyết định liệu có một số chữ số không?


130

Chúng tôi đã được thực hiện các bài tập sau.

Để cho

f(n)={10n occurs in the decimal representation of π0else

Chứng minh rằng là tính toán.f

Sao có thể như thế được? Theo như tôi biết, chúng ta không biết wether chứa mọi chuỗi chữ số (hoặc đó) và một thuật toán chắc chắn không thể quyết định rằng một số chuỗi không xảy ra. Vì vậy, tôi nghĩ rằng là không thể tính toán được, bởi vì vấn đề cơ bản chỉ là bán quyết định.fπf


32
Xin lỗi vì tôi hoàn toàn không biết gì, rõ ràng tôi đang thiếu một số điểm cơ bản của câu hỏi, nhưng không phải là 0 ^ n luôn là 0 sao? Vì vị trí thập phân thứ 32 nếu pi bằng 0, điều đó có nghĩa là f (n) luôn trả về 1?
Cory Klein

68
@CoryKlein: Đây là ký hiệu ngôn ngữ chính thức ; siêu ký tự ở đây có nghĩa là ghép nối lần, tức là . chỉ là một biểu tượng ở đây, không phải là một số. n a 5 = a a a a a 0nna5=aaaaa0
Raphael

Câu trả lời:


133

Chỉ có hai khả năng để xem xét.

  • Với mỗi số nguyên dương , chuỗi xuất hiện trong biểu diễn thập phân của . Trong trường hợp này, thuật toán luôn trả về 1 luôn luôn đúng.n0nπ

  • Có một số nguyên lớn nhất sao cho xuất hiện trong biểu diễn thập phân của . Trong trường hợp này, thuật toán sau (với giá trị được mã hóa cứng) luôn luôn đúng:N0NπN

    Zeros-in-pi(n):
     if (n > N) then return 0 else return 1
    

Chúng tôi không biết khả năng nào trong số những khả năng này là chính xác, hoặc giá trị nào của là giá trị đúng trong trường hợp thứ hai. Tuy nhiên, một trong những thuật toán này được đảm bảo là chính xác. Như vậy, có một thuật toán để quyết định xem một chuỗi của số không xuất hiện trong ; vấn đề là quyết địnhNnπ


Lưu ý sự khác biệt tinh tế với bản phác thảo bằng chứng sau đây được đề xuất bởi gallais :

  1. Lấy một máy Turing ngẫu nhiên và đầu vào ngẫu nhiên.
  2. Việc tính toán sẽ diễn ra mãi mãi hoặc nó sẽ dừng lại ở một thời điểm nào đó và có một hàm tính toán (không đổi) mô tả từng hành vi này.
  3. ???
  4. Lợi nhuận!

Alex ten Brink giải thích:

xem những gì định lý Halting nói: nó nói rằng không tồn tại một chương trình duy nhất nào có thể quyết định liệu một chương trình nhất định có dừng lại hay không. Bạn có thể dễ dàng thực hiện hai chương trình sao cho một chương trình tính toán xem chương trình đã cho có dừng hay không: chương trình thứ nhất luôn luôn nói 'nó tạm dừng', chương trình thứ hai 'không dừng lại' - một chương trình luôn luôn đúng, chúng tôi không thể tính toán chương trình nào của họ là!

sepp2k cho biết thêm:

Trong trường hợp ví dụ của Alex, cả hai thuật toán sẽ không trả về kết quả đúng cho tất cả các đầu vào. Trong trường hợp của câu hỏi này, một trong số họ sẽ. Bạn có thể khẳng định rằng vấn đề là có thể quyết định được vì bạn biết rằng có một thuật toán tạo ra kết quả đúng cho tất cả các đầu vào. Không quan trọng bạn có biết thuật toán đó là gì không. 10


Bình luận không dành cho thảo luận mở rộng; cuộc trò chuyện này đã được chuyển sang trò chuyện .
Gilles

12
Điều gì sẽ xảy ra nếu ai đó chứng minh rằng câu lệnh "Với mọi số nguyên dương n, chuỗi 0 ^ n xuất hiện trong biểu diễn thập phân của số thập phân" là không thể chứng minh được? Chúng ta vẫn sẽ nói vấn đề này là có thể quyết định, mặc dù thực tế không có thuật toán chính xác nào có thể được xây dựng?
Những người khác

4
@ Người khác Vâng, chúng tôi sẽ.
JeffE

1
@JeffE Được rồi. Là một bằng chứng có thể trong logic Trực giác? Hoặc là luật của loại trừ trung gian cần thiết ở đây?
Những người khác

@Others Nếu tôi hiểu chính xác, ý tưởng là thế này: Nếu chúng ta cho mỗi xác định máy Turing như trong phần đầu tiên của câu trả lời, thì chúng ta biết rằng một trong số họ tính toán hàm này. Chúng tôi không biết cái nào (và nếu tuyên bố của bạn đã được chứng minh, chúng tôi thậm chí sẽ biết rằng không thể biết cái nào) nhưng chúng tôi vẫn biết rằng có một máy Turing như vậy, vì vậy chức năng này có thể tính toán được. M NNMN
JiK

14

Chỉ cần đăng một chi tiết nhỏ về câu trả lời của JeffE.

Chúng ta biết rằng tồn tại hai hàm / trường hợp có thể tính toán hàm f (n):

  1. Hàm luôn trả về true (với tất cả n, tồn tại n số 0 liên tiếp)
  2. Hàm sẽ trả về true nếu n nhỏ hơn số nguyên N, trong đó N được định nghĩa là độ dài tối đa của 0 liên tiếp tồn tại trong số vô tỷ đã cho (nếu không, nó trả về false).

Một và chỉ một trong những chức năng này có thể đúng. Chúng tôi không biết điều đó, nhưng chúng tôi biết chắc chắn rằng một câu trả lời tồn tại. Khả năng tính toán yêu cầu một hàm tồn tại có thể xác định câu trả lời trong một số bước hữu hạn.

Số lượng các bước trong trường hợp 1 bị ràng buộc không đáng kể để chỉ trả về 1.

Trong trường hợp 2 số bước cũng là hữu hạn. Với mỗi số nguyên chúng ta có thể xây dựng một máy Turing chấp nhận nếu và nếu không thì từ chối trong thời gian hữu hạn. Vì vậy, không biết giới hạn trên của không quan trọng. Với mỗi tồn tại một máy Turing, cụ thể là , sẽ tính toán chính xác cho dù (chúng tôi không biết cái nào trong số này là đúng, nhưng nó không tồn tại, một cái tồn tại).T N ( n ) n < N N N T N ( n ) n < NNTN(n)n<NNNTN(n)n<N

Mặc dù có thể không thể chọn giữa hai trường hợp (mặc dù một trường hợp có vẻ nhiều hơn trường hợp khác), chúng tôi biết rằng chính xác một trong số chúng phải chính xác.

Như một lưu ý phụ: giải pháp của chúng tôi cho rằng trong khi chúng tôi không thể xác định hàm nào sẽ gợi ra một giá trị chính xác thì bản chất của tính toán không phụ thuộc vào khả năng xây dựng của bằng chứng. Sự tồn tại thuần túy là đủ.


9
Không phải tất cả các nhà toán học chấp nhận điều này - ví dụ như những người trực giác không.
rebierpost

Về cơ bản, bạn đang làm một ví dụ dài về luật loại trừ giữa, , lol. Trong logic trực giác hoặc bất kỳ hệ thống logic dựa trên lý thuyết loại nào, bằng chứng này bị từ chối. P¬P
Kaa1el

5

Bước 5 của nỗ lực chứng minh sau đây là không chính đáng, và trên thực tế là sai - một ví dụ mẫu có thể được tìm thấy ở đây . (cảm ơn, Yuval; nó có cảm giác như phần sơ sài nhất của bản phác thảo). Tôi đã để lại câu trả lời ở đây vì tôi nghĩ rằng lỗi là do hướng dẫn.


Trước hết: cặp câu trả lời của JeffE là đủ; f là tính toán một trong hai cách.

Tuy nhiên, một đường vòng ngắn vào một nỗ lực phác họa bằng chứng bằng cảm ứng:
Tiền đề R : không lặp lại. 1. Nhìn vào trong cơ sở 2. Điều này chủ yếu là để cắt giảm số lượng các trường hợp. 2. Không có vấn đề bao xa xuống dòng bạn đi, bạn sẽ luôn tìm thấy một 1 ở đâu đó: sự lựa chọn là tất cả các số không, trong đó sẽ có nghĩa là bắt đầu lặp đi lặp lại, mà đi ngược lại R . 3. Tương tự như vậy khi đi xuống dòng và tìm 0 . 4. Mở rộng thành chuỗi hai chữ số: bạn không thể ngừng tìm kiếm 01 hoặc 10 (nghĩa là, nơi nó chuyển đổi), bởi vì nếu khôngpi pi pi piπ
π
π

π sẽ bắt đầu lặp lại vào 1 'hoặc 0 '. Tương tự, bạn không thể ngừng tìm kiếm 11 hoặc 00 , vì nếu không, nó bắt đầu lặp lại vào 1010101 ...
5. Bước quy nạp: mỗi chuỗi hữu hạn phải xuất hiện vô số lần, bởi vì thay thế là bắt đầu lặp lại một trong những chuỗi ngắn hơn, điều này mâu thuẫn R .π


10
Trước hết, chúng tôi biết rằng việc mở rộng nhị phân của không lặp lại vì là không hợp lý. Thứ hai, có những số vô tỷ không chứa 000 hay 111 trong phần mở rộng nhị phân của chúng, ví dụ số tương ứng với chuỗi Thue-Morse: 0.0110100110010110 ...piππ
Yuval Filmus

1
Ah, sự nguy hiểm của bước nhảy quy nạp: P Bắt tốt, cảm ơn.
Stephen Voris

1
Ngẫu nhiên, nếu kết luận là sai, nó có ý nghĩa hơn đối với tôi để xóa nó hoặc để lại nó và thừa nhận thông qua chỉnh sửa rằng nó sai?
Stephen Voris

4
@StephenVoris Nó phụ thuộc vào mức độ giáo dục mà bạn nghĩ là sai lầm. Lưu ý rằng câu hỏi liệu là bình thường (ví dụ, cơ sở- nó mở rộng chứa mỗi dãy hữu hạn các chữ số -ary vô thường) là một trong những vấn đề mở lớn của lý thuyết số. b bπbb
David Richerby

2
@DavidR Richby Vấn đề mở lớn, bạn nói gì? Vâng, đó là điều tốt để biết. Tôi nghĩ rằng đây là một sai lầm hợp lý về mặt giáo dục, vì bằng chứng cho thấy vấn đề khó khăn như thế nào mà câu hỏi của OP dựa vào - rõ ràng tôi cũng có thể sai về điều đó, vì đã đưa ra ý kiến ​​trái chiều.
Stephen Voris
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.