Verilen metni, mantığı bozmadan girdi olarak sağlanan kendi metnine kodlayan bir program yazın. Program ayrıca, orijinal mesajı metninden geri yükleyerek bir dekoder olarak çalışmalıdır. Dönüşümden sonra kodlama / kod çözme işlevlerini korumalıdır.
Daha resmi olarak, gerekli P programı verilen mesaj metni M ile aşağıdaki dönüşümleri gerçekleştirmelidir:
P (M, P) -> P *
P * (P *) -> M
Burada P * , yukarıdaki kuralları da yerine getirmesi gereken dönüştürülmüş programdır:
P * (M2, P *) -> P **
P ** (P **) -> M2
vb. sonraki kodlama daha önce kodlanmış metni silmez, bu nedenle P ** iki mesaj taşır - M ve M2.
Programın kodlama / kod çözme modları arasında ayrım yapmanın en kolay yolu, ekstra M argümanının varlığıdır, ancak açıkça belirtilmesi koşuluyla, nihai karar size bağlıdır. Program edebilir dosyadan o kendi metni okuyun. Seçilen dilin bunun için bir yolu yoksa, kaynak metin programa başka bir şekilde aktarılabilir.
Elbette önemsiz çözümler var, bu yüzden bu bir popülerlik yarışması. Yine de, program metninde yorumları yasaklayan bir kısıtlama getiriyorum.