Policz do 20 słowami!

39

Korzystanie z następujących list słów rozdzielonych długością:

https://github.com/Magic Octopus Urn / wordListsByLength

Wydrukuj 1 słowo z każdej listy długości n od 1 aż do 20, oto poprawny przykład:

a
an
and
hand
hands
handle
handles
abandons
abandoned
understand
outstanding
newfoundland
understanding
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
chemotherapeutically

Alternatywnie (tablica):

['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', 'characteristics', 'characterization', 'characterizations', 'characteristically', 'characterologically', 'chemotherapeutically']

Alternatywnie (dowolny separator niealfabetyczny do wydruku inny niż \n):

a:an:and:hand:hands:handle:handles:abandons:abandoned:understand:outstanding:newfoundland:understanding:characteristic:characteristics:characterization:characterizations:characteristically:characterologically:chemotherapeutically

Zasady

  • Możesz wybrać własne 20 słów.
  • Słowa muszą pochodzić ze strony github, a dokładniej:
    • 1 z 1.txt, 1 z 2.txt, itp ...
    • Uwaga: pliki powyżej 20.txt istnieją, ale nie potrzebujesz żadnych słów zawierających więcej niż 20 znaków.
  • Prawidłowe separatory to znaki niealfabetyczne, które można wydrukować w formacie ASCII (liczby parzyste, nieważne).
  • Tylko małe lub wielkie litery, wybierz jedną, trzymaj się jej; niedozwolone są przypadki tytułów.
  • Proszę nie używać 100% kopii mojego przykładu 20 słów ...
    • Możesz, ale to nie jest fajne.
    • Prawdopodobnie i tak nie są optymalne ...
  • Jeśli NIE chcesz używać oddzielnych plików i potrzebujesz pełnej listy:
    • Użyj unsorted.txt , to wszystkie npliki .txt w jednym, posortowane alfabetycznie.
  • Uwaga: NIE MOŻESZ odczytać bezpośrednio z adresu URL, jest to powszechna luka .
  • To jest , zwycięzcą zostanie najniższa liczba bajtów.

Dla porównania, wyjście ma 229 bajtów, więc wszystko, co znajdzie się pod tym kodem, bije na sztywno.


Możliwa dyskusja na metatagach:

na użytkownika, gdzie użytkownik może dostosować swoje wyniki z listy możliwości?

Urna Magicznej Ośmiornicy
źródło
4
Jako ktoś z Nowej Funlandii doceniam krzyk. :)
rozrzut
6
@Christian Można powiedzieć, że ... ( •_•)>⌐■-■ rozumiem wybitną nowozelandzką(⌐■_■)
Magic Octopus Urn
1
@ Riley to rozciąga, 1 separator między każdym słowem, chociaż widzę wiele sytuacji, w których to pomogłoby: P.
Magic Octopus Urn
1
@JonathanAllan właśnie zrobił :).
Magic Octopus Urn
1
Narzędzie do wybierania słów.
Jim

Odpowiedzi:

19

Galaretka ,  49 35 31  30 bajtów

ṫ3,⁸Ṗ,$€ẎK
“¤ƈȮⱮ⁴⁷ọḤƁŒ|⁾Ė»ḲÇ€K

Łącze niladyczne zwracające listę znaków lub pełny program drukujący tę listę jako ciąg znaków (słowa rozdzielone spacjami).

Wypróbuj online!

W jaki sposób?

ṫ3,⁸Ṗ,$€ẎK - Helper link: list of characters, word    e.g. "abreacts"
ṫ3         - tail word from index 3                          "reacts"
   ⁸       - chain's left argument, word
  ,        - pair                               ["reacts","abreacts"]
      $€   - last two links as a monad for €ach of the two words:
    Ṗ      -   pop (all but last character)      "react" / "abreact"
     ,     -   pair       ["react","reacts"] / ["abreact","abreacts"]
        Ẏ  - tighten          ["react","reacts","abreact","abreacts"]
         K - join with spaces         "react reacts abreact abreacts"

“¤ƈȮⱮ⁴⁷ọḤƁŒ|⁾Ė»ḲÇ€K - Link: no arguments
“¤ƈȮⱮ⁴⁷ọḤƁŒ|⁾Ė»     - a compressed string using dictionary indexes:
                    -   "agar abreacts acknowledges codeterminations deindustrializations"
               Ḳ    - split at spaces
                Ç€  - call the last link (Helper) as a monad for €ach
                  K - join with spaces

... co daje:

a ar aga agar react reacts abreact abreacts knowledge knowledges acknowledge acknowledges determination determinations codetermination codeterminations industrialization industrializations deindustrialization deindustrializations

Poprzedni:

@ 35:

“¡Ụıƭz Xj]"Ɱ*AJƤʂạ5ƬṚṪð^ƥỤ»ḲṖ,$€K€K

Używanie 10 słów i ich prefiksów o długości 1.

@ 49

“ḊAḥTz¹ỴH¡ṛYẈDƤNŀt#ñ²ĿĊḤlṪnð⁻U+ɦỴĊypṆQ0⁴ṄẉṂi⁻d¤&»

Po prostu 20 skompresowanych słów.

Jonathan Allan
źródło
Słownik Darn Jelly! +1
Erik the Outgolfer
Szczerze mówiąc, nie wiedziałem, że Jelly ma słownik.
Magic Octopus Urn
3
30 BYTES! ?? !! ??! Po prostu poszedłem spać i obudziłem się, a jest tak niski, jak 30 BYTES? !! ??!?! 11 O_O_O
Erik Outgolfer
30 BYTES!?!?! ??! ZAPOMNIAŁEM O TYM WYZWANIU NA MIESIĄC I wygrał z 30 bajtami!?!?!
Magic Octopus Urn
27

Python 2 , 145 bajtów

print'i am now tiny @ @s##s#ed#act#acts#@#@s#@ed#@ing#arguments#accusation#accusations#advertisings'.replace('#',' counter').replace('@','check')

Wypróbuj online!

Drukuje te słowa, oddzielone spacjami:

i
am
now
tiny
check
checks
counter
counters
countered
counteract
counteracts
countercheck
counterchecks
counterchecked
counterchecking
counterarguments
counteraccusation
counteraccusations
counteradvertisings
Lynn
źródło
18
„jestem teraz malutki” - podoba mi się opisowy kod ...
trichoplax
16

PowerShell , 166 163 bajtów

'a
an
and'
'','s','le','ler','lers'|%{"hand$_"}
($a="character")
($x=-split"s ed ful ized istic istics ization izations istically ologically"|%{"$a$_"})
"un"+$x[8]

Wypróbuj online!

Zoptymalizowane ręcznie, bez algorytmów. Dwie pętle |%{ }przyczepiają się do odpowiedniego zakończenia odpowiedniego początku. Szukam sposobu, aby umieścić je w jednej pętli.

AdmBorkBork
źródło
Wow, mój przykład wygląda teraz jeszcze głupiej xD! characterful > newfoundland
Magic Octopus Urn
10

Python, 169 bajtów

z='odahs princesses acclimatizers cyanocobalamines aerothermodynamics underrepresentations'.split()
print([y[:i+1]for x,y in zip(['']+z,z)for i in range(len(x),len(y))])

Drukuje listę słów.

Wypróbuj online!

Słowa uzyskane przez skanowanie sekwencji pasujących słów, według początku lub końca słowa i zaczynając od długości 1 w górę lub od długości 20 słów w dół.

Oto skrypt, którego użyłem, aby go zdobyć. (pasujący do początku)

Uriel
źródło
171 bajtów (wydaje się, że powinien być krótszy, ale tak nie jest): Wypróbuj online!
Stephen
8

Python 2 ,  126 120  112 bajtów

-8 bajtów dzięki Andersowi Kaseorgowi (myślałem, że migrowałem to z Python 3, ale okazało się, że zapomniałem!)

Port mojej odpowiedzi Jelly działa również dobrze w Pythonie ...

for w in"agar abreacts acknowledges codeterminations deindustrializations".split():print w[2:-1],w[2:],w[:-1],w,

Wypróbuj online!

Wydruki:

a ar aga agar react reacts abreact abreacts knowledge knowledges acknowledge acknowledges determination determinations codetermination codeterminations industrialization industrializations deindustrialization deindustrializations 
Jonathan Allan
źródło
Python 2 pozwala kończyć print w[2:-1],w[2:],w[:-1],w,na −8 bajtach.
Anders Kaseorg,
Och, oops zapomniałem o tym lub myślałem, że to zrobiłem - mam gdzieś z tym stronę TIO!
Jonathan Allan
Dzięki za to!
Jonathan Allan
6

JavaScript, 159 bajtów

_='a1an1and}}swwrwrs~~s~ed~ful~ized{{s~|~|s{ally~ologically1misx|s~1x}1hand|ization{~isticxcharacterw}le';for(i of'wx{|}~')with(_.split(i))_=join(pop());f=f=>_

Wypróbuj online!

Dzięki @HyperNeutrino za edycję. Ale wracam do starego postu (usuwam flagę „Node.js”), ponieważ nie ma to nic wspólnego z Node.js. Doskonale działa również w przeglądarkach.


źródło
f=f=>_wyrzuciło mnie, pomyślałem: „czy to nie zastąpi funkcji” (to po prostu zapobiegnie rekurencji)
Stephen
@StepHen. Nie jestem pewien, czy pozostawienie zwykłego ciągu jest dozwolone. Jak zrozumiałem, kod powinien reprezentować funkcję (lub cały program), dlatego dodałem go na końcu. Zmienna _zawiera już ciąg.
Masz rację, byłem po prostu bardzo zdezorientowany co do tego, co zrobił, ponieważ ponownie użyłeś nazwy zmiennej ( fzarówno jako nazwy funkcji, jak i (zignorowanej) nazwy parametru)
Stephen
6

05AB1E , 51 bajtów

’¯Óa‚‡’D“€…€¤Þ¨íʃé¢Ã¥£žÜ¶ß´ç…àçî×Ü»‡ÛೌçÓs²® ÿ ÿs

Wypróbuj online!

Separator:

Lista słów: a, an, ana, anal, house, houses, amazing, criminal, seriously, apparently, accessories, disciplinary, distributions, discrimination, congratulations, responsibilities, characterizations, telecommunications, representationalist, representationalists

Erik the Outgolfer
źródło
1
chce wziąć udział we własnym wyzwaniu nasila się
Magic Octopus Urn
Zgaduję, że 05AB1E nie ma słów o długości 20 w słowniku: P? Muszę jeszcze sprawdzić siebie.
Magic Octopus Urn
@MagicOctopusUrn Nope .
Adnan
@ adnan wow, takie podejście ... może być dobrym pomysłem, jeśli możesz znaleźć sposób na wygenerowanie wszystkich punktów kodowych słownika w podobnych 1-10bajtach ...
Magic Octopus Urn
1
@ adnan, to była moja pierwsza próba, jestem pewien, że możesz to wyrzucić z parku.
Magic Octopus Urn
5

Rubin, 120 bajtów

j=3
$><<?a
"  5  T &  }   <    ".bytes{|i|puts
8.times{|k|$><<%w{dehydro chlori ge n at ion e s}[k]*(j>>7-k&1)}
j+=i-31}

Drukuje następujące. Każde słowo jest zbudowane z 8 ciągów powyżej, używając cyfr binarnych jdo wyboru. Przy każdej iteracji pętli jjest zwiększana o wartość ASCII znaków w ciągu w cudzysłowie minus 31.

a
es
ion
ions
nates
nation
nations
chlorine
chlorines
chlorinate
chlorinates
chlorination
dehydrogenate
dehydrogenates
dehydrogenation
dehydrogenations
dehydrochlorinate
dehydrochlorinates
dehydrochlorination
dehydrochlorinations
Level River St
źródło
4

Pyth , 74 bajty

Przygody psychopatologiczne

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

Wypróbuj online! Wyprowadza:

['a', 'al', 'all', 'ally', 'logic', 'advent', 'venture', 'ventures', 'adventure', 'adventures', 'venturesome', 'pathological', 'adventuresome', 'pathologically', 'venturesomeness', 'psychopathologic', 'adventuresomeness', 'psychopathological', 'adventuresomenesses', 'psychopathologically']

Które po sformatowaniu dają:

a
al
all
ally
logic
advent
venture
ventures
adventure
adventures
venturesome
pathological
adventuresome
pathologically
venturesomeness
psychopathologic
adventuresomeness
psychopathological
adventuresomenesses
psychopathologically

Wyjaśnienie

Kluczem było wybranie dwóch słów, które się uzupełniają. Wybrałem „ psychopatologicznie ” i „ przygody ” dzięki niewielkiemu narzędziu, które napisałem . Używając tych dwóch słów, dla dowolnej długości możemy znaleźć podciągi, które są rzeczywistymi słowami z podanej listy . Wszystkie możliwe dekompozycje pokazano przez:

a al all ally logic psycho logical          logically pathologic             pathological               pathologically                 psychopathologic                   psychopathological                     psychopathologically
a ad ess ness esses advent venture ventures adventure adventures venturesome              adventuresome                venturesomeness                  adventuresomeness                    adventuresomenesses

Następnym krokiem jest po prostu uzyskanie listy indeksów dla danego rozkładu. Dla mojego rozkładu, wybrałem: 16 16 16 16 11 20 22 22 20 20 22 6 20 6 22 0 20 0 20 0, które są łączone indeksy w ciągi: psychopathologicallyadventuresomenesses.

Na koniec napisz program, który po prostu zapętla indeksy i wyświetla podciąg przy każdym danym indeksie wraz ze wzrostem długości.

Do zapisywania bajtów zapisałem indeksy w podstawowym ciągu 36. Rzeczywiście, GGGGBKMMKKM6K6M0K0K0jest to lista moich indeksów w bazie 36 (ponieważ mój najwyższy indeks to 22, mogłem użyć podstawy 23).

Objaśnienie programu

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

                                                 iR36"GGGGBKMMKKM6K6M0K0K0    # For each character in the string, convert from base 36 to base 10
.e                                                                            # Loop over indexes: b are the indexes, h their position
  :"psychopathologicallyadventuresomenesses"b+bhk                             # In "psy...ses", select the substring at index b and of length k + 1
Jim
źródło
psychopatologicznie - „Pod względem naukowego badania zaburzeń psychicznych”. Ciekawy.
Magic Octopus Urn
3

C #, 259 bajtów

_=>{var a=new int[7].Select((n,i)=>"abasers".Substring(0,i+1)).ToList();a.Add("abacuses");a.AddRange(new int[12].Select((n,i)=>(i>10?"un":"")+"character"+"|s|ed|ful|ised|istic|istics|isation|isations|istically|ologically|istically|".Split('|')[i]));return a;}

Pewne oczywiste miejsce do gry w golfa, ale teraz zabrakło mi czasu. Wiem, że jest on dłuższy niż kodowanie na stałe, więc naprawię go, gdy będę miał trochę czasu później.

TheLethalCoder
źródło
Woops jest jeszcze dłuższy, ponieważ muszę dołączyćusing System.Linq;
TheLethalCoder
4
Zwracanie ich w postaci ciągu rozdzielonego spacjami to 245.
Magic Octopus Urn
@MagicOctopusUrn Wiem, że tak powiedziałem w mojej odpowiedzi ...
TheLethalCoder
3

05AB1E , 130 68 bajtów

-62 bajty dzięki Erikowi Outgolfer

743222’€Ü†š ƒ´aî³eros €‡a•¿f²Ñns …¿en®íizers ‚ÀÙŠs ‡åØŽ’#‚øε`ηRs£R}˜

Wypróbuj online!

Pobiera tyle prefiksów, ile potrzeba z każdego z następujących słów:

amusers
carabinero
foraminiferans
photosensitizers
videoconferencings
radiopharmaceuticals

Drukuje te słowa w tablicy:

a
am
amu
amus
amuse
amuser
amusers
carabine
carabiner
carabinero
carabineros
foraminifera
foraminiferan
foraminiferans
photosensitizer
photosensitizers
videoconferencing
videoconferencings
radiopharmaceutical
radiopharmaceuticals 
Riley
źródło
I kolejne -13.
Erik the Outgolfer,
Niektóre inne -6 zbyt ... (niestety nie mogę wymienić 743222z •B/™•)
Eryk Outgolfer
Tak, nie potrzebujesz Swięc -62 bajtów. ;)
Erik the Outgolfer
@EriktheOutgolfer Thanks! Próbowałem zrobić coś takiego, ale nie mogłem tego zrobić. Czy masz coś przeciwko wyjaśnieniu, jak działają skompresowane ciągi?
Riley,
3

Bubblegum , 66 bajtów

00000000: 6d8b 410a 0020 0804 bf6a 4407 a134 5aff  m.A.. ...jD..4Z.
00000010: 4fe6 29ac 93ce b0a3 543a ad06 3f6c e769  O.).....T:..?l.i
00000020: 46f3 3ae2 b218 abc4 2cab d389 a805 82aa  F.:.....,.......
00000030: fee1 6e43 2444 62df 0f46 4a1e f356 8cf1  ..nC$Db..FJ..V..
00000040: 73d8                                     s.

Wynik:

o`al`res`alit`reset`preset`present`rational`represent`rationales`annotations`connotations`connotational`representation`representations`representational`misrepresentation`misrepresentations`representationalism`representationalisms

Wypróbuj online!

Słowa i separator zostały wybrane przez symulowane wyżarzanie:

from __future__ import print_function
import math
import random
import zlib

wordlists = \
    [[chr(x).encode() for x in [9, 10] + list(range(32, 127)) if not chr(x).encode().isalpha()]] + \
    [open('wordListsByLength/{}.txt'.format(n), 'rb').read().splitlines() for n in range(1, 21)]

words = [random.choice(wordlist) for wordlist in wordlists]

temperature = 10.
score = 9999
best = score

while True:
    old_score = score
    n = random.randrange(len(wordlists))
    old_word = words[n]
    words[n] = random.choice(wordlists[n])
    z = zlib.compressobj(9, zlib.DEFLATED, -zlib.MAX_WBITS, 9)
    score = len(z.compress(words[0].join(words[1:])) + z.flush())
    if score > old_score and random.random() >= math.exp((old_score - score) / temperature):
        words[n] = old_word
        score = old_score
    else:
        temperature *= .99999
        if score < best:
            best = score
            print(best, repr(words[0].join(words[1:])))
Anders Kaseorg
źródło
2

Bubblegum , 78 bajtów

00000000: 654b c301 4431 10bd a7cb d876 9a5f efe7  eK..D1.....v._..
00000010: 781e 2080 ee55 0488 ffc8 9f69 e86f a5ff  x. ..U.....i.o..
00000020: ce00 0b98 202e 34ed d701 a464 bf59 35fb  .... .4....d.Y5.
00000030: 23d7 9192 b948 7c79 f351 0c8b f4ee 06e4  #....H|y.Q......
00000040: 8b05 1a33 77c8 1bcf 7f58 7577 e113       ...3w....Xuw..

Wypróbuj online!

ovs
źródło
2

Rubin, 107 bajtów

p(z=%w{o or for form ultra})+[z[3],c="centrifug",z[4]+c].product(%w{ed ing ally ation ations}).map{|i|i*""}

Drukuje następującą tablicę.

["o", "or", "for", "form", "ultra", "formed", "forming", "formally", "formation", "formations", "centrifuged", "centrifuging", "centrifugally", "centrifugation", "centrifugations", "ultracentrifuged", "ultracentrifuging", "ultracentrifugally", "ultracentrifugation", "ultracentrifugations"

Zmiana pfor puts(z końcową spacją) daje następującą wartość za dodatkowe 4 bajty.

o
or
for
form
ultra
formed
forming
formally
formation
formations
centrifuged
centrifuging
centrifugally
centrifugation
centrifugations
ultracentrifuged
ultracentrifuging
ultracentrifugally
ultracentrifugation
ultracentrifugations
Level River St
źródło
1

Japt , 119 bajtów

`av„v„dvjvjsvj¤vj¤svfœejvqvqsvq‚vqˆgvqizƒvqÄKcvqÄKcsvqizÂ\nvqizÂ\nsvq‰tkvqologkv·sqizÂ\ns`d'j`Ê@`'k`Åœ§`'q`Ö‹a×` q'v ·

Wypróbuj online!

Wydruki:

a
an
and
hand
hands
handle
handles
freehand
character
characters
charactered
charactering
characterizes
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
mischaracterizations
Oliver
źródło