นี่คือความท้าทายของรหัสกอล์ฟที่ฉันคิดด้วยการดัดงอทางคณิตศาสตร์ ความท้าทายคือการเขียนรหัสที่สั้นที่สุดเท่าที่จะเป็นไปได้ว่าเป็นคำถามเปิดหรือไม่ว่ารหัสนั้นจะยุติลงหรือไม่ ตัวอย่างของสิ่งที่ผมหมายถึงอาจจะเป็นชิ้นส่วนของรหัสต่อไปหลามที่ดัดแปลงมาจาก Anwser ไปนี้คำถาม stackexchange cs
def is_perfect(n):
return sum(i for i in range(1, n) if n % i == 0) == n
n = 3
while not is_perfect(n):
n = n + 2
นักคณิตศาสตร์คาดเดาว่าไม่มีตัวเลขสมบูรณ์แบบแปลก ๆ แต่มันไม่เคยได้รับการพิสูจน์แล้วดังนั้นจึงไม่มีใครรู้ว่ารหัสชิ้นนี้จะยุติลงหรือไม่ คุณสามารถใช้โค้ดอื่น ๆ (อาจขึ้นอยู่กับปัญหาแบบเปิดอื่น ๆ เช่นการคาดคะเนโคลลาตซ์หรือการคาดคะเนสองช่วง) ที่สั้นกว่า แต่ไม่ทราบว่ายุติหรือไม่?
แก้ไข: บางคนได้นำมาเพิ่มเติมกฎที่ดี - การแก้ปัญหาสำหรับคำถามควรกำหนดขึ้น แม้ว่ามันจะน่าสนใจยิ่งขึ้นถ้าคุณสามารถหาวิธีแก้ปัญหาที่สั้นกว่าโดยใช้ nondeterminism ในกรณีนี้กฎจะค้นหาตัวอย่างที่ไม่ทราบความน่าจะเป็นของการเลิกจ้าง
n=3
while sum(k*(n%k<1)for k in range(1,n))-n:n+=2
ไบต์: