Kontynuując moje poprzednie wyzwanie Policz do 20 słowami! , po raz kolejny użyjemy listy słów z tego wyzwania, aby wykonać inne zadanie. Tym razem będziesz używać wyłącznie:
https://github.com/Magic Octopus Urn / wordListsByLength / blob / master / 10.txt
Aby wybrać 26 różnych słów, każde zaczynające się od unikalnej litery, i wypisz je w porządku rosnącym od A do Z. Oto poprawny przykład:
aardwolves
babbitting
caravaning
debilitate
evaporator
fantasized
geographer
hawfinches
imbecility
juvenility
kalanchoes
lamaseries
malodorous
nudibranch
oligophagy
pantywaist
quarreling
russetting
scantiness
teetotaler
undercount
voodooisms
wentletrap
xenophobic
yeomanries
zwitterion
Jest to Aardwolf , to grubodziób , to kalanchoe , to nudibranch i wentletrap .
Zasady
- Brak odczytu bezpośrednio z repozytorium lub innych luk.
- Możesz wybrać dowolne 26 słów podanych w łączu .
- Ty wybierasz słowa i są to słowa, które program powinien wypisywać za każdym razem.
- Należy wybrać jedno słowo rozpoczynające się od każdej z następujących liter:
[a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z]
- To jest golf golfowy , najniższe wygrane bajtów.
Wszelkie inne sugestie dotyczące wydzielenia przy użyciu list słów?
Ponadto kradnij moje listy słów i stawiaj wyzwania.
code-golf
kolmogorov-complexity
natural-language
Urna Magicznej Ośmiornicy
źródło
źródło
Odpowiedzi:
Bubblegum ,
10099 bajtówWypróbuj online!
Wynik:
Słowa zostały ponownie wybrane za pomocą symulowanego wyżarzania:
źródło
uglinesses
istnieje możliwość, że litera U została pominięta, ale to niewiele pomaga, ponieważ nadal masz do czynienia z Q, X i Y. Nic nie przychodzi im na myśl.uneasiness
dobrze kompresować za pomocąeasinesses
iqueasiness
. Jest bardzo spójny w tych wyborach.JavaScript (ES6), 168 bajtów
Dla każdej litery początkowej wyprowadza albo pierwsze słowo kończące się na firmach, albo pierwsze dostępne słowo.
Próbny
Pokaż fragment kodu
źródło
Galaretka , 69 bajtów
Jest to naiwne podejście, które może być ulepszone przez niektóre sprytne tiki
Wypróbuj online!
(Zakłada się, że „Prawidłowe separatory to znaki niealfabetyczne, które można wydrukować w formacie ASCII (liczby parzyste, nie przejmuj się)” nie zgadzają się z poprzednim wyzwaniem)
źródło
Galaretka , 49 bajtów
Wypróbuj online!(Trwa około 22 sekund w TIO)
Wyjścia:
Jak to działa
źródło
Python 2 ,
256231220 bajtówZaoszczędziłem 36 bajtów dzięki Jonathanowi Allanowi, który wykonał większość ciężkiej pracy w tym zakresie (właśnie znalazłem słowa: P)
Wypróbuj online!
źródło
print
)Japt ,
169107 bajtówWypróbuj online!
I napisał program , który pomaga mi zoptymalizować kompresję. Sortuje listę według wielkości kompresji shoco .
źródło
inesses
ze1
przy obliczaniu długości kompresji chociaż;)liminesses
Japt , 85 bajtów
gdzie dwie pary znaków odwrotnych reprezentują ciągi pozornie losowych drukowalnych i niedrukowalnych znaków. Wypróbuj online! Wynik:
Wyjaśnienie
Podstawowa technika to:
Znalazłem
cozinesses
, zaczynając od tego,nesses
jak wykorzystano kilka innych odpowiedzi i wielokrotnie znajdując poprzednią literę, która pojawiła się wśród większości z 26 liter. Ponieważ chciwe techniki często nie są optymalne, napisałem później skrypt, aby znaleźć prawdziwe optymalne słowo:(Nie obchodzi mnie to, że jest niesamowicie brzydki. Tak PPCG nauczył mnie kodować: P Nie martw się, nie robię tego w produkcji).
W każdym razie, po uruchomieniu w konsoli przeglądarki na liście 10-literowych słów , to się kończy
Jest
57
to liczba liter, które musiałyby pojawić się w ciągu wieloliniowym. Zajęło to również około 17 sekund na moim komputerze, więc bądź cierpliwy, kiedy go uruchomisz.Zamieniając
f=
linię namożesz uzyskać wszystkie przyrostki w ciągu 20 znaków od optymalnego. (Zmiana
20
w końcu do czegoś innego, aby dostosować ten. Uwaga: funkcja ta prawdopodobnie działa tylko w Firefoksie.) Można znaleźć listę wszystkich przyrostków mocy 100 tutaj .W każdym razie po prostu zadaniem jest znalezienie słowa dla każdej litery alfabetu, która ma najdłuższy wspólny sufiks
ozinesses
. Napisałem skrypt Japt, aby to zrobić, a także skompresować niezbędne prefiksy i powiedzieć mi, jak długo potrwa powstały program. (Musisz jednak ręcznie wkleić listę słów między znakami cudzysłowu).Wyjaśnienie to było prawdopodobnie nieco mylące, dlatego prosimy o zadawanie wszelkich pytań.
źródło
Bubblegum ,
110106 bajtówHexdump:
Wypróbuj online!
Wydruki:
źródło
JavaScript (ES6), 163 bajty
Pokaż fragment kodu
źródło
/.+/g
się/.*/g
,-ozinesses
abycozinesses
i usuwanie samotnyc
?/.*/g
pasują do grupy 0 znaków po każdej linii.Python 2 ,
168166 bajtówWypróbuj online!
W jaki sposób?
Inicjuje
i
na97
(porządek znakua
), a następnie zapętla listę utworzoną przezsplit
tingowanie łańcucha w spacjach tworzących iprint
wstawiających słowa, zwiększając wi
miarę upływu czasu. Większość wpisóww
na liście są długości dwóch, są to słowa, które rozpoczynają się od litery alfabetu i na końcu winesses
, czyli w postaci:chr(i)+w+'inesses'
.Wpisy o długości 6 mają postać:
chr(i)+w+'ies'
Oznacza to, że można zastosować formatowanie, aby wstawić literę alfabetu i dodać koniec z
'ness'
wstawionym, na przykład'i'+?+'es'
kiedyw
jest krótki, tak:"%c%si%ses"%(i,w,"ness"*(len(w)<3))
-% c konwertuje
i
na znak; dwie%s
wkładkiw
i"ness"*(len(w)<3)
, w przypadku gdy jest"ness"
jeśliw
jest krótki lub""
jeśliw
jest długi.źródło
SOGL V0.12 , 66 bajtów
Wypróbuj tutaj!
Prosta kompresja słownika z tym problemem, że żadne słowo zaczynające się na X nie było w słowniku SOGL, więc skompensowałem ksenotropowo - tropik w słowniku. I musiałem dodać cytat początkowy, ponieważ w przeciwnym razie analizator składni pomyślał, że
[
rozpoczął pętlę: /źródło
Węgiel drzewny , 84 bajty
Wypróbuj online! Wykorzystuje listę słów @ HermanLauenstein, ale zapisałem jeden bajt, ponieważ mogę przegapić
f
. Po raz kolejny dość konkurencyjny nawet w trybie pełnym, który ma tylko 166 bajtów. Wypróbuj online!źródło