เขียนโปรแกรมที่เข้ารหัสข้อความที่กำหนดให้เป็นข้อความของตัวเองโดยจัดทำเป็นอินพุตโดยไม่รบกวนตรรกะของมัน โปรแกรมจะต้องทำงานเป็นตัวถอดรหัสโดยเรียกคืนข้อความต้นฉบับจากข้อความ มันจะต้องรักษาฟังก์ชั่นการเข้ารหัส / ถอดรหัสหลังจากการแปลง
พูดอย่างเป็นทางการมากขึ้นโปรแกรมที่ต้องการ P จะต้องทำการแปลงต่อไปนี้ด้วยข้อความตัวอักษร M:
P (M, P) -> P *
P * (P *) -> M
นี่P *เป็นโปรแกรมที่ถูกแปลงซึ่งจะต้องปฏิบัติตามกฎข้างต้นนั่นคือ:
P * (M2, P *) -> P **
P ** (P **) -> M2
และอื่น ๆ ... แต่ละรายการ การเข้ารหัสที่ตามมาไม่ได้ลบข้อความที่เข้ารหัสก่อนหน้านี้ดังนั้น P ** จะมีสองข้อความ - M และ M2
วิธีที่ง่ายที่สุดสำหรับโปรแกรมที่จะแยกแยะระหว่างโหมดการเข้ารหัส / ถอดรหัสคือการมีอาร์กิวเมนต์พิเศษ M แต่การตัดสินใจขั้นสุดท้ายขึ้นอยู่กับคุณหากมีการระบุไว้อย่างชัดเจน โปรแกรมอาจอ่านข้อความของตัวเองจากไฟล์ หากภาษาที่เลือกไม่มีวิธีการนี้ข้อความต้นฉบับสามารถส่งผ่านไปยังโปรแกรมด้วยวิธีอื่นใดก็ได้
แน่นอนว่ามีวิธีแก้ปัญหาเล็กน้อยดังนั้นนี่จึงเป็นการประกวดความนิยม อย่างไรก็ตามฉันมีข้อ จำกัด สำหรับการแสดงความคิดเห็นในข้อความของโปรแกรม