Göreviniz - kabul ederseniz - kod-golf-tersine çevrilmiş bir yarışmanın galibini hesaplayarak meta teklifimi anlamaya yardımcı olan bir program yazmaktır . Tabii ki, bu sorunun cevapları önerildiği gibi ele alınacaktır, böylece programınız (eğer doğruysa) cevabınızın kabul edilen cevap olup olmayacağını hesaplayabilir.
kurallar
- Program aşağıdaki formatta birden çok satırı olan bir dosyayı okur (aşağıdaki örneğe bakın): [Dil] SEKME [NumberOfCharacters] SEKME [LinkToAnswer]
- Dosya adı programınıza bağımsız değişken olarak iletilir veya dosya programınızın standart girişine yönlendirilir. Seçim sizin, cevabı verirken lütfen yöntemi belirtin
- Girdi biçiminin doğru olması beklenir. Hata işlemeye gerek yoktur.
- Karakter sayısı pozitif. Programınız 65535'e kadar uzunlukları işlemelidir. 64k herkes için yeterli olmalıdır :-)
- Program, bu teklifleri meta teklif fikrini karşılayan standart çıktıda, yani
- belirli bir programlama dilinin en kısa kodu kazanır (azaltma aşaması)
- tüm programlama dilleri arasındaki en uzun kod kazanır (sıralama aşaması)
- çekiliş halinde, aynı uzunluktaki tüm cevaplar yazdırılır
- Çıktının sırası önemli değil
- En uzun kod kazanmasına rağmen, bu kod bowlingi değildir . Kodunuz programlama diliniz için mümkün olduğunca kısa olmalıdır.
- Kodu kısaltmaya çalışmayan nadiren programlama dillerinde verilen cevaplar bir aşağı oyu hak eder, çünkü bu tür bir sorunun niyetini atlamaya çalışırlar. Belirli bir programlama dili için sadece bir cevap varsa, kazanan bir aday olarak kabul edilir, böylece kodunu üflemeye başlayabilirsiniz.
Örnek girdi dosyası (biçimlendirmeyle ilgili bir sorun olması durumunda tek sekmelerle ayrılır):
GolfScript 34 http://short.url/answer/ags
GolfScript 42 http://short.url/answer/gsq
C# 210 http://short.url/answer/cs2
Java 208 http://short.url/answer/jav
C# 208 http://short.url/answer/poi
J 23 http://short.url/answer/jsh
Ruby 67 http://short.url/answer/rub
C# 208 http://short.url/answer/yac
GolfScript 210 http://short.url/answer/210
Beklenen çıktı (sipariş önemli değil):
C# 208 http://short.url/answer/poi
C# 208 http://short.url/answer/yac
Java 208 http://short.url/answer/jav
Güncelleme
Bazı programlar tek bir maksimuma (C # 210 karakter programı gibi) güvenir. Gerçeklikten türetilen biri, 210 karakterli bir GolfScript programı da yazabilir. Çıktı aynı kalacaktı. Girişe böyle bir GolfScript ekledim.
Güncelleme 2
Önerildiği gibi ben yeniden etiketlenmiş (hala kod golf de) ve son tarih 2014-03-06 (keyfi bir tarih gibi görünüyor, ama o zaman seyahat Almanya'ya geri olacak).
Nihai sonuçlar
Aşağıdaki şekilde oy kullanmaya karar verdim:
- Karakter sayısının onaylanamadığı cevaplar sayıyı açıklamak için bir yorum alır.
- Kolayca azaltılabilen cevaplar bir yorum, bir düzenleme önerisi alır ve daha düşük sayım değeri ile sonuca gider. (Umarım bunu önceden görmüştüm).
- Derlemeyen cevaplar bir alt oy alır. (Oldukça zor bir görev ortaya çıkıyor).
- Golf yapmayan cevaplar bir aşağı oy alır (zaten kurallarda açıklandığı gibi).
- Beklenen çıktıyı üreten cevaplar yükselir. Beklendiği gibi çalışmayan bazı yanıtlar nedeniyle, 4 farklı girdi dosyası kullanıyorum ve beklenen sonuca karşı kontrol ediyorum.
Son olarak, kazanan, referans programıma girdi olarak nitelikli cevaplar tablosu sağlanarak belirlenir (artı sonucu manuel olarak iki kez kontrol ederek). Eğer kendi cevabım kazanan cevap olsaydı, listeden çıkarırdım. Birden fazla kazanan olması durumunda, sadece bir tane seçmem gerekir. Bu nedenle, bazı bonuslar kazanılabilir:
- beklenenden daha fazla girdi kabul eden cevaplar (örneğin tanımlanan aralıkların dışında)
- kısa yapmak için akıllıca bir fikir kullanan cevaplar
6 Mart 2014, 19:45 UTC + 1'de cevapların anlık görüntüsünü aldım. Analiz devam ediyor. Tüm cevapları kontrol etmek beklenenden daha zor ...