İşiniz , dizideki her bir programın uzunluğunun 500 bayt ile sınırlandığı en uzun süre yineleme kinesini oluşturmaktır .
Yani, aşağıdaki adımları tekrarlarsanız:
- İlk programınızla başlayın
- Geçerli programı çalıştır
- 2. adıma geri dönün
Sonunda orijinal programınıza geri döneceksiniz. Döngüdeki program sayısı, en üst düzeye çıkarmaya çalıştığınız puanınızdır.
Programların hiçbiri hata oluşturamaz. Her program da aynı şekilde çalıştırılmalıdır (örneğin, farklı sürümler, uygulamalar, derleyici seçenekleri, platformlar vb.) Her durumdan sonra harici durumun "sıfırlanması" gerekir. Gerçek rastgele sayılar kullanırsanız, en kötü durum varsayılır.)
Bu meydan okumayı ayıran en uzun süre yinelenen kine (100'e karşı 500 dışında), döngüdeki her programın 500 bayt veya daha az olması gerektiğidir. Bu, mümkün olan en uzun çevrimin (256 ^ 501-1) / 255 veya daha az olduğu anlamına gelir. Tabii ki bu büyük bir sayıdır, ancak hesaplanması için ne kadar kod gerektiğini o kadar büyük değil. Bu yüzden zorluk, meşgul bir kunduz mücadelesi değil, olabildiğince çok (256 ^ 501-1) / 255 olasılık kullanmaktır.
Programların kendi kaynak kodlarına erişmesine izin verilmez. Ancak boş bir programdır edilir İsterseniz (sürece diğer kuralları takip gibi) izin verdi.
Programları manuel olarak kontrol etmek zor olacağından, teorik yöntemleri kullanarak skoru anlayabilirsiniz. Programınıza puan ve doğruluk hakkında bir açıklama eklemelisiniz. Skoru bulamazsanız, bunun yerine döngüdeki program sayısının alt sınırını defacto skoru olarak kullanabilirsiniz. Daha düşük sınırlar bulduğunuzda veya gerçek puanı tam olarak bulduğunuzda bunu güncellemenize izin verilir.
Bu kod meydan okuma , bu yüzden en yüksek puan kazanır!
DÜZENLEME: Puanınızın bilimsel gösterimde ne olduğunu yazmanız önerilir, böylece yanıtlar daha kolay karşılaştırılabilir. Özellikle programınıza daha açık bir şekilde bağlıysa, puanın diğer formlarına sahip olmak da gayet iyi. Ayrıca, okuyucuların buna uymak için önceki cevapları düzenlemeleri önerilir.