Twoim zadaniem - jeśli je zaakceptujesz - jest napisanie programu, który pomoże zrozumieć moją propozycję dotyczącą meta , obliczając zwycięzcę zawodów z odwróconym golfem . Oczywiście odpowiedzi na to pytanie będą traktowane jak zaproponowane, więc twój program (jeśli jest poprawny) może obliczyć, czy twoja odpowiedź stanie się odpowiedzią zaakceptowaną.
Zasady
- Program odczytuje plik z wieloma wierszami o następującym formacie (patrz przykład poniżej): [Język] TAB [NumberOfCharacters] TAB [LinkToAnswer]
- Nazwa pliku jest przekazywana jako argument do programu lub plik jest przekierowywany na standardowe wejście programu. To twój wybór, proszę podać metodę, podając odpowiedź
- Oczekuje się, że format wejściowy jest prawidłowy. Nie ma potrzeby obsługi błędów.
- Liczba znaków jest dodatnia. Twój program musi obsługiwać długości do 65535. 64k powinno wystarczyć wszystkim :-)
- Program wypisuje te wiersze na standardowe wyjście, które spełniają ideę meta propozycji, to znaczy
- wygrywa najkrótszy kod danego języka programowania (faza redukcji)
- najdłuższy kod spośród wszystkich języków programowania wygrywa (faza sortowania)
- w przypadku losowania należy wydrukować wszystkie odpowiedzi o tej samej długości
- Kolejność danych wyjściowych nie jest ważna
- Chociaż wygrywa najdłuższy kod, nie jest to kręgle kodu . Twój kod musi być jak najkrótszy dla twojego języka programowania.
- Odpowiedzi na rzadkie języki programowania, które nie próbują skrócić kodu, zasługują na negatywną opinię, ponieważ próbują ominąć intencję tego rodzaju pytań. Jeśli jest tylko jedna odpowiedź dla określonego języka programowania, zostanie uznana za kandydata na zwycięzcę, więc możesz zacząć wysadzać jego kod.
Przykładowy plik wejściowy (oddzielony pojedynczymi kartami, jeśli wystąpi problem z formatowaniem):
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
Oczekiwany wynik (kolejność nie jest ważna):
C# 208 http://short.url/answer/poi
C# 208 http://short.url/answer/yac
Java 208 http://short.url/answer/jav
Aktualizacja
Niektóre programy polegają na tym, że istnieje jedno maksimum (jak program znaków C # 210). Pochodzący z rzeczywistości, ktoś może również napisać program GolfScript zawierający 210 znaków. Dane wyjściowe pozostaną takie same. Dodałem taki kod GolfScript do danych wejściowych.
Aktualizacja 2
Jak zasugerowałem, dokonałem ponownej tagacji (również wciąż golfa kodowego), a termin upływa 2014-03-06 (który wygląda jak dowolna data, ale wrócę wtedy do Niemiec z podróży).
Ostateczne rezultaty
Postanowiłem głosować w następujący sposób:
- Odpowiedzi, w przypadku których nie można potwierdzić liczby znaków, zawierają komentarz wyjaśniający liczbę.
- Odpowiedzi, które można łatwo zmniejszyć, otrzymują komentarz, sugestię edycji i przechodzą do wyniku o niższej wartości zliczania. (Mam nadzieję, że widziałem to wcześniej).
- Odpowiedzi, które się nie kompilują, otrzymują opinię negatywną. (Jak się okazuje dość trudne).
- Odpowiedzi, które nie są rozgrywane w golfa, otrzymują ocenę negatywną (jak opisano już w zasadach).
- Odpowiedzi, które przynoszą oczekiwany wynik, otrzymują opinię pozytywną. Ze względu na niektóre odpowiedzi, które nie działają zgodnie z oczekiwaniami, używam 4 różnych plików wejściowych i sprawdzam pod kątem oczekiwanego wyniku.
Ostatecznie zwycięzca jest określany poprzez dostarczenie tabeli kwalifikujących się odpowiedzi jako danych wejściowych do mojego programu referencyjnego (oraz dwukrotne ręczne sprawdzenie wyniku). Jeśli moja własna odpowiedź byłaby zwycięska, wykluczyłbym ją z listy. W przypadku kilku zwycięzców musiałbym wybrać tylko jednego. Dlatego niektóre bonusy można zdobyć:
- odpowiedzi, które akceptują więcej danych wejściowych niż oczekiwano (np. poza zdefiniowanymi zakresami)
- odpowiedzi, które wykorzystują sprytny pomysł skrócenia
Zrobiłem migawkę odpowiedzi 6 marca 2014 r., 19:45 UTC + 1. Analiza jest w toku. Sprawdzanie wszystkich odpowiedzi jest trudniejsze niż oczekiwano ...