คุณได้รับฟังก์ชั่น: h1 (f, * args) และ h2 (f, * args)
ทั้งสองเป็นวิธีที่กำหนดไว้แล้วสำหรับคุณ (ที่นี่เครื่องหมายดอกจันระบุจำนวนตัวแปรของการขัดแย้ง)
f คือฟังก์ชั่น * args คือรายการพารามิเตอร์ที่จะส่งผ่านไปยังฟังก์ชันนั้น
h1 ส่งคืนค่าบูลีน: เป็นจริงถ้าฟังก์ชั่น f หยุดชะงักเมื่อเรียกใช้บน * args และ False หากไม่ (สมมติว่าเครื่องที่รันอยู่จะมีเวลาและหน่วยความจำไม่สิ้นสุดและล่าม / คอมไพเลอร์สำหรับภาษาที่คุณกำลังเขียน รู้วิธีจัดการกับเวลาและหน่วยความจำไม่สิ้นสุด)
ถ้า f (* args) จะทำการเรียกไปยัง h1 หรือ h2 เสมอ h1 จะส่งข้อยกเว้น
h2 ทำตัวเหมือน h1 ยกเว้นว่าถ้า f ทำการเรียกไปยัง h1 h2 จะไม่ส่งข้อยกเว้น
ในตัวละครให้น้อยที่สุดให้เขียนโปรแกรมที่ไม่มีอินพุตและควรเอาต์พุต:
The Collatz Conjecture is {True/False}
Goldbach's Conjecture is {True/False}
The Twin Primes Conjecture is {True/False}
ขึ้นอยู่กับความถูกต้องของการคาดเดาแต่ละครั้ง
นี่คือลิงค์วิกิพีเดียที่อธิบายการคาดเดาแต่ละข้อ:
http://en.wikipedia.org/wiki/Collatz_conjecture
http://en.wikipedia.org/wiki/Goldbach%27s_conjecture
http://en.wikipedia.org/wiki/Twin_prime
คุณอาจสมมติว่ามีไลบรารีจำนวนเต็มขนาดใหญ่ในภาษาใดก็ตามที่คุณเลือกใช้จะเป็นตัวแทนของเลขจำนวนเต็มขนาดใหญ่ได้สำเร็จ กล่าวอีกนัยหนึ่งเราจะถือว่าภาษา / ห้องสมุดใด ๆ ที่มีความสามารถในการแสดง3**(3**10)
ยังสามารถแสดง3**(3**(3**10))
บนเครื่องเนื้ออย่างเพียงพอ
เห็นได้ชัดว่าเป็นไปไม่ได้ที่จะเรียกใช้โปรแกรมของคุณโปรดให้คำอธิบายว่ามันทำงานอย่างไรพร้อมกับรหัส