Arka fon
En PPCG düzenli bilecek gibi, bir quine çalıştırdığınızda kendi kaynak kodunu çıktılar bir programdır; ve iki dizi arasındaki Levenshtein mesafesi , bir dize diğerine değiştirmek için gereken minimum ekleme, silme ve düzenleme sayısıdır. Bu zorlukla iki kavramı bir "levenquine" olarak birleştiriyoruz: kendi kaynak kodunu çıkaran, ancak bir karakterin bir örneğini eklenmiş, silinmiş veya farklı bir karakterle değiştirilmiş bir programla. (Başka bir deyişle, program ve çıktısı arasındaki Levenshtein mesafesi 1'dir.)
Görev
Çıktısının bir levenkine olduğu bir levenquine yazın, bu programın çıktısı da aynı zamanda bir levenkine vb. Ek olarak, bir noktada, programı tekrar tekrar çalıştırma, çıktısını çalıştırma, çıktısının çıktısını çalıştırma vb. Sırası sonunda orijinal programa geri dönmelidir.
İşleri zorlaştıran ek bir kısıtlama var: Bu döngü içinde bir yerde ortak karakterleri olmayan iki başka program olmalı (başka bir deyişle, bir programda var olan ve diğer programda da var olan bir karakter yok). Bu nedenle programınız yavaş yavaş kendini farklı bir karakter setine dönüştürmek zorunda kalacak ve tekrar geri dönecek.
Çıktı üreten herhangi bir programda gerekli olan kaçınılmaz bir kazan plakasına sahip olan bir programlama dili kullanıyorsanız (örneğin, bir print
ifade yazmanın ve başka yararlı çıktı biçimlerinin bulunmamasının tek bir yolu vardır ), o kazan plakasını amaç için var olmayan olarak kabul edebilirsiniz. iki programın ortak hangi karakterleri içerdiğini belirlemek. Bununla birlikte, kodun Levenquine özelliğini belirlemek amacıyla o kazanı hala saymalısınız.
Açıklamalar
- Döngündeki "programların" her biri tam bir program veya işlev olabilir. Hepsinin aynı olması gerekmez, örneğin bazıları tam programlar olabilir ve bazıları işlevler olabilir.
- Döngüdeki tüm programların aynı çıktı biçimini kullanması gerekmez. Örneğin, bazıları standart çıktıyla, bazıları ise standart hatayla çıktı verebilir.
- Programlarınız girişsiz olarak (ya da herhangi bir şeyi yapmak için giriş gerektiren dillerde mümkün olan en basit giriş) çalıştırılır.
- Uygun quine kuralları geçerlidir; Her ne kadar bir Levenquine gerçek bir yüzgeç olmasa da, uygun bir yüzgeç yazarken yasa dışı olacak hiçbir şey yapamazsınız. Özellikle, boş program hiçbir zaman uygun bir Levenquine'den geçerli bir çıktı değildir (ve bu nedenle de döngünüzün bir parçası olamaz).
- Levenquine kısıtlaması bayt yerine karakter cinsinden ölçülür (örneğin
ê
, kaynak UTF-8'de kodlandığında bile bir karakterdir). Ortak olmayan karakter kısıtlaması da karakter cinsinden ölçülür. Ancak, zafer koşulu bayt sayılır.
Zafer durumu
Lütfen döngüden en az aşağıdaki üç programı gönderin: en kısa program (bayt cinsinden ölçülür); ve döngüden ortak hiçbir karakter içermeyen iki program. Bunlardan ikisinin aynı olması ve üçünün de ayrı olması mümkündür. Skor, en kısa programın bayt cinsinden uzunluğuna dayanmaktadır, daha kısa olması daha iyi olmaktadır, bu da bir tür kod golf yarışması haline gelmiştir.