Bạn được cung cấp các hàm: h1 (f, * args) và h2 (f, * args)
Cả hai đều là các phương thức đã được xác định cho bạn (ở đây dấu hoa thị cho biết số lượng đối số thay đổi)
f là một hàm, * args là danh sách các tham số được truyền cho hàm đó
h1 trả về giá trị boolean: Đúng nếu hàm f bị dừng khi được gọi trên * args và Sai nếu không (giả sử máy chạy nó có thời gian và bộ nhớ vô hạn và trình thông dịch / trình biên dịch cho ngôn ngữ bạn đang viết biết cách xử lý thời gian và bộ nhớ vô hạn).
Nếu f (* args) sẽ thực hiện cuộc gọi đến h1 hoặc h2, h1 sẽ ném ngoại lệ
h2 hoạt động chính xác như h1 ngoại trừ nếu f thực hiện cuộc gọi đến h1, thì h2 sẽ không ném ngoại lệ
Trong càng ít ký tự càng tốt, viết chương trình không có đầu vào và nên xuất:
The Collatz Conjecture is {True/False}
Goldbach's Conjecture is {True/False}
The Twin Primes Conjecture is {True/False}
dựa trên tính hợp lệ của từng phỏng đoán đó
Dưới đây là các liên kết wikipedia giải thích từng phỏng đoán:
http://en.wikipedia.org/wiki/Collatz_conjecture
http://en.wikipedia.org/wiki/Goldbach%27s_conjecture
http://en.wikipedia.org/wiki/Twin_prime
Bạn có thể giả sử bất kỳ thư viện số nguyên lớn nào trong bất kỳ ngôn ngữ nào bạn chọn sử dụng sẽ thể hiện thành công các số nguyên lớn tùy ý. Nói cách khác, chúng tôi sẽ giả sử bất kỳ ngôn ngữ / thư viện nào có khả năng diễn đạt 3**(3**10)
cũng có khả năng diễn đạt 3**(3**(3**10))
trên một cỗ máy đủ mạnh mẽ.
Rõ ràng vì không thể chạy chương trình của bạn, vui lòng cung cấp giải thích về cách thức hoạt động cùng với mã