... Liczby porządkowe (lub liczby porządkowe) to słowa reprezentujące pozycję lub pozycję w kolejności sekwencyjnej.
Z Wikipedii .
Twoim zadaniem jest, używając 2 oddzielnych programów (z których można utworzyć z 2 różnych języków), wygenerować sekwencję porządkową od pierwszego do nth
. Będziesz wypisywać pełne słowo second
w przeciwieństwie do 2nd
.
Kwestia liczb porządkowych była już podnoszona, szczególnie w tym wpisie . W tym wyzwaniu porządki zwykłe są jedynie narzędziem ułatwiającym unikalne warunki wyszczególnione poniżej.
Część 1
Musisz stworzyć program, który po podaniu n
musi wypisać cokolwiek .
n
zawsze będzie dodatnią, niezerową liczbą całkowitą nie większą niż 999.
Prawidłowe dane wyjściowe obejmują między innymi :
- Wszelkie dane wyjściowe do
stdout
/stderr
/ etc - Tworzenie plików / folderów / itp
- Interfejs graficzny lub obrazy dowolnego rodzaju
Wszystko idzie.
Część 2
Musisz stworzyć program, który wykorzystuje dane wyjściowe programu części 1 do wyświetlania sekwencji liczb porządkowych, zaczynając od 1 (pierwsza), aż do wszystkiego, co n
zostało przeanalizowane w części 1.
Ogólne warunki:
- Suma bajtów dla części 2 nie może przekraczać całkowitej liczby bajtów dla części 1 (mniejszej lub równej).
Warunki wyjściowe:
- Bez rozróżniania wielkości liter.
- Dane wyjściowe muszą zawierać tylko sekwencję porządkową (tylko znaki aZ) i białe znaki (dozwolone nowe linie).
- Może być wyprowadzany do dowolnego źródła, o ile jest on widoczny podczas lub po wykonaniu.
- Program nie musi się kończyć, o ile jego dane wyjściowe są prawidłowe.
- Dane wyjściowe nie muszą mieć żadnej gramatyki, ale opcjonalnie mogą ją zawierać (łączniki, przecinki, „i” itp.).
nine hundred ninety ninth
jest tak samo do przyjęcia jaknine hundred and ninety-ninth
.
Przykładowe dane wyjściowe
Gdzie n
jest 8
FIRST SECOND THIRD FOURTH FIFTH SIXTH SEVENTH EIGHTH
Punktacja
Hierarchia warunków wygranych jest następująca:
- Najniższa liczba bajtów w części 1
- Najniższa liczba bajtów w części 2
Entry #1 | Part 1 = 32 bytes, Part 2 = 22 bytes
Entry #2 | Part 1 = 31 bytes, part 2 = 30 bytes
Entry #2 wins - Part 1 contains 31 bytes vs 32 bytes
---
Entry #1 | Part 1 = 21 bytes, Part 2 = 33 bytes
Entry #2 | Part 1 = 80 bytes, Part 2 = 70 bytes
Entry #2 wins - Entry #1 disqualified (Part 2 contains more bytes than Part 1)
---
Entry #1 | Part 1 = 50 bytes, Part 2 = 49 bytes
Entry #2 | Part 1 = 50 bytes, Part 2 = 50 bytes
Entry #1 wins - Part 1 is equal, Part 2 contains 49 bytes vs 50 bytes
one hundred and eleventh
lubone hundred eleventh
?[30, 'second']
dla32
ówczesnego p2 ma mniej do zrobienia, że gdyby miał wyjścia, po prostu32
.Odpowiedzi:
Młot 0.5.1 / Młot 0.5.1, 10 bajtów
Program 1 (10 bajtów):
Dekompresuje się do tej funkcji języka Wolfram:
Program 2 (7 bajtów):
Dekompresuje się do tej funkcji języka Wolfram:
Wypróbuj online!
źródło
R (z
english
pakietem), 16 bajtów / 16 bajtówCzęść 1, 16 bajtów
Część 2, 16 bajtów
Wymaga
english
pakietu (niestety nie jest zainstalowany na TIO).english::ordinal(f(22))
wyjściafirst second third fourth fifth sixth seventh eighth ninth tenth eleventh twelfth thirteenth fourteenth fifteenth sixteenth seventeenth eighteenth nineteenth twentieth twenty first twenty second
.Oczywiście, część 1 może być znacznie krótsza (3 bajty:)
seq
, ale byłoby to sprzeczne z ograniczeniem, że część 2 musi być nie dłuższa niż część 1.źródło
Wolfram Language (Mathematica) (obie części), 18 bajtów / 15 bajtów
-5 / -1 dzięki lirtosiast
Część 1, 18 bajtów
Część 2, 15 bajtów
Wypróbuj online!
Dwie funkcje, które są wysyłane przez wartość zwracaną
źródło
Range@#|"Ordinal"&
jest krótszy iIntegerName
wektoryzuje pierwszy argument. Myślę jednak, że może być wymagane wyjście rozdzielone spacjami.Python 3 (część 1 i część 2)
Niestety Nodebox jest bardzo pracowity ... nie ma wiele miejsca na grę w golfa.
Część 1 76 bajtów
Część 2 (wykorzystuje bibliotekę NodeBox ) 76 bajtów
źródło
import en.number as n
oszczędza cztery bajty w każdej części.JavaScript (Node.js), 47 bajtów / 47 bajtów
Dwie funkcje w tym samym środowisku Node.js, wywołane podobnie
g(f(n))
. Używa pakietu npm numer do słów .Część 1, 47 bajtów (40 bajtów + 7 spacji)
Część 2, 47 bajtów
Wypróbuj na Runkit!
JavaScript (Node.js), 48 bajtów / 43 bajtów
Część 1, 48 bajtów
Część 2, 43 bajty
Wypróbuj na Runkit!
źródło
Perl 5.10 / Common Lisp, 34/26 bajtów
Tak więc Common Lisp
format
ma to wbudowane, bo oczywiście tak.Program 1 (34 bajty)
Perl wykonuje całą iterację. Równoważny kod Common Lisp (
(dotimes(i(read)) ...)
) jest dłuższy niż bardziej golfowy Perl... for 1..<>
. Perl wypuszcza sporo wspólnego kodu Lisp.Program 2 (26 bajtów)
Jest to REPL, pomniejszone o P. Czyta standardowe wejście i, cóż, wykonuje je. Nie kończy się, ale zasady wyraźnie mówią, że to w porządku.
źródło