รหัสกอล์ฟเกี่ยวข้องกับคำตอบบางอย่างที่ทำให้กฏกติกามากขึ้นหรือน้อยลงด้วยการทำลายข้อ จำกัด ที่ผู้ท้าชิงรับหรือไม่ได้คิดและไม่ได้ระบุไว้ในกฎ หนึ่งในช่องโหว่ที่น่าสนใจเหล่านี้เป็นไปได้ในการส่งออกมากขึ้นกว่าที่ท้าทายขอที่จะได้รับผลที่ดีกว่า
เราสามารถเขียนตัวแก้รหัสกอล์ฟสากลที่พิมพ์ผลลัพธ์ที่ต้องการ - ถ้าคุณไม่สนใจว่ามันอาจต้องใช้เวลานานและเอาท์พุทสิ่งอื่น ๆ มากมายทั้งก่อนและหลัง
สิ่งที่เราต้องใช้ในการส่งออกคือลำดับที่รับประกันว่าจะมีส่วนประกอบทั้งหมดที่เป็นไปได้ สำหรับรหัสกอล์ฟนี้จะเป็นลำดับ Ehrenfeucht-Mycielski :
ลำดับเริ่มต้นด้วยสามบิต 010; แต่ละหลักต่อเนื่องจะเกิดขึ้นจากการหาคำต่อท้ายที่ยาวที่สุดของลำดับที่ปรากฏก่อนหน้านี้ภายในลำดับและการพึ่งพาบิตต่อไปนี้การปรากฏตัวก่อนหน้านี้ล่าสุดของคำต่อท้ายที่
การเรียงลำดับของบิตทุกอันเกิดขึ้นอย่างต่อเนื่องไม่สิ้นสุดบ่อยครั้งในลำดับ
ตัวเลขสองสามตัวแรกของลำดับคือ:
010011010111000100001111 ... (ลำดับA038219 ใน OEIS )
การรวมลำดับ 8 บิตเข้ากับไบต์เราจะได้รับเอาต์พุต ASCII ที่เราสามารถส่งออกไปยังหน้าจอหรือไฟล์และที่มีเอาต์พุต จำกัด ที่เป็นไปได้ทั้งหมด โปรแกรมจะเอาท์พุทชิ้นส่วนของ pi, เนื้อเพลงของ“ Never gonna give up” , ASCII art ที่ดี, ซอร์สโค้ดของมันเอง, และทุกอย่างที่คุณต้องการเอาท์พุท
สำหรับการทดสอบความถูกต้องนี่คือแฮชสำหรับ 256 ไบต์แรกของลำดับ:
MD5: 5dc589a06e5ca0cd9280a364a456d7a4
SHA-1: 657722ceef206ad22881ceba370d32c0960e267f
8 ไบต์แรกของลำดับในรูปแบบเลขฐานสิบหกคือ:
4D 71 0F 65 27 46 0B 7C
กฎ: