Conte até 20 com palavras!

39

Usando as seguintes listas de palavras separadas por comprimento:

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

Imprima 1 palavra de cada lista de tamanho, n de 1 até 20, aqui está um exemplo válido:

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

Como alternativa (matriz):

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

Como alternativa (qualquer separador não alfabético imprimível que não seja \n):

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

Regras

  • Você pode escolher suas próprias 20 palavras.
  • As palavras devem ser da página do github fornecida, mais especificamente:
    • 1 de 1.txt, 1 de 2.txt, etc ...
    • Observe que existem arquivos acima de 20.txt, mas você não precisa de palavras com mais de 20 caracteres.
  • Separadores válidos são caracteres não alfabéticos imprimíveis em ASCII (números pares, não se importam).
  • Apenas em minúsculas ou maiúsculas, escolha uma, fique com ela; nenhum título é permitido.
  • Por favor, não use uma cópia 100% do meu exemplo 20 palavras ...
    • Você pode, mas isso não é divertido.
    • Eles provavelmente são abaixo do ideal de qualquer maneira ...
  • Se você NÃO deseja usar os arquivos separados e precisar de uma lista completa:
    • Use unsorted.txt , todos esses narquivos .txt em um, classificados em ordem alfabética.
  • Observe que você NÃO PODE ler diretamente a partir da URL, é uma brecha comum .
  • Este é o , o menor número de bytes será o vencedor.

Para referência, a saída é 229 bytes; portanto, qualquer coisa que fique abaixo dela supera a codificação.


Possível meta-tag-debate:

pelo usuário onde o usuário consegue personalizar suas saídas a partir de uma lista de possibilidades?

Urna de polvo mágico
fonte
4
Como alguém de Terra Nova, agradeço a mensagem. :)
scatter
6
@Christian Você poderia dizer que eu ... ( •_•)>⌐■-■ entender terra nova excelente(⌐■_■)
Magia Octopus Urna
1
@Riley que está ampliando, um delimitador entre cada palavra, embora eu possa ver muitas situações em que isso ajudaria: P.
Magic Octopus Urn
1
@JonathanAllan acabou de fazer :).
Magic Octopus Urn
1
Utilitário para escolher as palavras.
21717 Jim

Respostas:

19

Geléia ,  49 35 31  30 bytes

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

Um link niládico retornando uma lista de caracteres ou um programa completo imprimindo essa lista como uma sequência (as palavras delimitadas por espaços).

Experimente online!

Quão?

ṫ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

... que produz:

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

Anterior:

@ 35:

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

Usando 10 palavras e seus prefixos de comprimento 1.

@ 49

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

Simplesmente 20 palavras compactadas.

Jonathan Allan
fonte
Darn Jelly dicionário! +1
Erik the Outgolfer
Eu não sabia que Jelly tinha um dicionário, para ser sincero.
Magic Octopus Urn
3
30 BYTES! ?? !! ??! Eu apenas fui dormir e acordei e é tão baixo quanto 30 BYTES? !! ??!?! 11 O_O_O
Erik the Outgolfer
30 BYTES!?!?! ??! ESQUECI ESSE DESAFIO POR UM MÊS E GANHOU COM 30 BYTES!?!?!
Magic Octopus Urn
27

Python 2 , 145 bytes

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

Experimente online!

Imprime estas palavras, separadas por espaços:

i
am
now
tiny
check
checks
counter
counters
countered
counteract
counteracts
countercheck
counterchecks
counterchecked
counterchecking
counterarguments
counteraccusation
counteraccusations
counteradvertisings
Lynn
fonte
18
"Eu sou agora minúsculo" - I como o código de auto-descritivo ...
Trichoplax
16

PowerShell , 166 163 bytes

'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]

Experimente online!

Otimizado manualmente, sem algoritmos. Os dois loops |%{ }aderem ao final apropriado ao início apropriado. Estou procurando uma maneira de colocá-los em um loop.

AdmBorkBork
fonte
Uau, meu exemplo parece ainda mais burro agora xD! characterful > newfoundland
Magic Octopus Urn
10

Python, 169 bytes

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))])

Imprime uma lista das palavras.

Experimente online!

Palavras obtidas pela varredura de seqüências de palavras correspondentes, pelo início ou fim da palavra e começando do comprimento 1 para cima ou do comprimento 20 do downwords.

Aqui está o script que eu usei para obtê-lo. (o que corresponde ao início ascendente)

Uriel
fonte
171 bytes (parece que deveria ser mais curto, mas não é): Experimente online!
Stephen
8

Python 2 ,  126 120  112 bytes

-8 bytes graças a Anders Kaseorg (achei que tinha migrado isso do Python 3, mas acabei esquecendo!)

Uma porta da minha resposta Jelly também funciona bem em Python ...

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

Experimente online!

Impressões:

a ar aga agar react reacts abreact abreacts knowledge knowledges acknowledge acknowledges determination determinations codetermination codeterminations industrialization industrializations deindustrialization deindustrializations 
Jonathan Allan
fonte
O Python 2 permite que você termine com print w[2:-1],w[2:],w[:-1],w,−8 bytes.
Anders Kaseorg
Ah, opa, eu esqueci isso ou pensei que tinha feito - eu tenho uma página do TIO aberta em algum lugar com isso!
Jonathan Allan
Obrigado por isso!
27617 Jonathan Allan
6

JavaScript, 159 bytes

_='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=>_

Experimente online!

Obrigado @HyperNeutrino pela edição. Mas estou voltando à postagem antiga (removendo o sinalizador "Node.js.") porque não tem nada a ver com o Node.js. Também funciona perfeitamente em navegadores.


fonte
f=f=>_jogou-me fora, eu era como "não será que substituir a função" (que seria apenas evitar recursão)
Stephen
@StepHen. Não tenho certeza se é permitido deixar uma string simples. Pelo que entendi, o código deve representar uma função (ou programa inteiro), é por isso que o adicionei ao final. A variável _já contém a sequência.
Você está correto, eu estava realmente confuso quanto ao que ele fez, desde que você reutilizado o nome da variável ( ftanto como nome da função e (ignorado) nome do parâmetro)
Stephen
6

05AB1E , 51 bytes

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

Experimente online!

Separador:

Lista de palavras: a, an, ana, anal, house, houses, amazing, criminal, seriously, apparently, accessories, disciplinary, distributions, discrimination, congratulations, responsibilities, characterizations, telecommunications, representationalist, representationalists

Erik, o Outgolfer
fonte
1
quer participar de seu próprio desafio se intensifica
Magic Octopus Urn
Eu suponho que 05AB1E não tenha 20 palavras no dicionário: P? Ainda tenho que me controlar.
Magic Octopus Urn
@MagicOctopusUrn Nope .
Adnan
@ adnan uau, essa abordagem ... pode realmente ser uma boa idéia se você puder encontrar uma maneira de gerar todos os pontos de código do dicionário em 1-10bytes semelhantes ...
Magia Octopus Urna
1
@ adnan que foi a minha primeira tentativa, tenho certeza que você poderia derrubá-lo fora do parque.
Magic Octopus Urn
5

Ruby, 120 bytes

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}

Imprime o seguinte. Cada palavra é criada a partir das 8 cadeias de caracteres acima, usando os dígitos binários de jpara selecionar. Em cada iteração do loop, jé incrementado pelo valor ASCII dos caracteres na string entre aspas, menos 31.

a
es
ion
ions
nates
nation
nations
chlorine
chlorines
chlorinate
chlorinates
chlorination
dehydrogenate
dehydrogenates
dehydrogenation
dehydrogenations
dehydrochlorinate
dehydrochlorinates
dehydrochlorination
dehydrochlorinations
Level River St
fonte
4

Pitão , 74 bytes

Aventuras psicopatológicas

.e:"psychopathologicallyadventuresomenesses"b+bhkiR36"GGGGBKMMKKM6K6M0K0K0

Experimente online!Emite:

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

Que, uma vez formatado, produz:

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

Explicação

A chave era escolher duas palavras que se complementam. Escolhi " psicopatologicamente " e " aventureiras " graças a uma pequena ferramenta que escrevi . Usando essas duas palavras, para qualquer comprimento, podemos encontrar substrings que são palavras reais da lista fornecida . Todas as decomposições possíveis são demonstradas por:

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

O próximo passo é apenas obter a lista dos índices para uma determinada decomposição. Para o meu decomposição, eu escolhi: 16 16 16 16 11 20 22 22 20 20 22 6 20 6 22 0 20 0 20 0que são índices nas cadeias concatenadas: psychopathologicallyadventuresomenesses.

Por fim, escreva um programa que apenas faça um loop sobre os índices e exiba a substring em cada índice fornecido com um comprimento crescente.

Para salvar bytes, eu armazenei os índices em uma string base 36. De fato,GGGGBKMMKKM6K6M0K0K0 é a lista dos meus índices na base 36 (porque meu índice mais alto é 22, eu poderia ter usado a base 23).

Explicação do programa

.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
fonte
psicopatologicamente - "Em termos de estudo científico de transtornos mentais". Interessante.
Urna de polvo mágico
3

C #, 259 bytes

_=>{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;}

Ainda há espaço óbvio para jogar golfe, mas agora estou sem tempo. Eu sei que é mais longo do que a codificação embutida, então vou corrigi-lo quando tiver algum tempo mais tarde.

TheLethalCoder
fonte
Woops é realmente ainda mais, porque eu preciso incluir #using System.Linq;
TheLethalCoder 20/17/17
4
Apenas devolvê-los em uma fração de corda por espaços é como 245.
Magia Octopus Urna
@MagicOctopusUrn Eu sei que foi o que eu disse na minha resposta ... #
TheLethalCoder 20/17
3

05AB1E , 130 68 bytes

-62 bytes graças a Erik the Outgolfer

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

Experimente online!

Utiliza o prefixo necessário de cada uma das seguintes palavras:

amusers
carabinero
foraminiferans
photosensitizers
videoconferencings
radiopharmaceuticals

Imprime estas palavras em uma matriz:

a
am
amu
amus
amuse
amuser
amusers
carabine
carabiner
carabinero
carabineros
foraminifera
foraminiferan
foraminiferans
photosensitizer
photosensitizers
videoconferencing
videoconferencings
radiopharmaceutical
radiopharmaceuticals 
Riley
fonte
E outro -13.
Erik the Outgolfer
Algum outro -6 também ... (infelizmente eu não posso substituir 743222com •B/™•)
Erik o Outgolfer
Sim, você não precisa Sde -62 bytes. ;)
Erik the Outgolfer
@EriktheOutgolfer Thanks! Eu estava tentando fazer algo parecido com o último, mas não consegui fazê-lo funcionar. Você se importa em explicar como as seqüências compactadas funcionam?
Riley #
3

Chiclete , 66 bytes

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.

Saída:

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

Experimente online!

As palavras e o separador foram selecionados por recozimento simulado:

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
fonte
2

Chiclete , 78 bytes

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..

Experimente online!

ovs
fonte
2

Ruby, 107 bytes

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*""}

Imprime a seguinte matriz.

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

Alterar o ppara puts(com espaço à direita) fornece o seguinte a um custo de 4 bytes adicionais.

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

Japt , 119 bytes

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

Experimente online!

Impressões:

a
an
and
hand
hands
handle
handles
freehand
character
characters
charactered
charactering
characterizes
characteristic
characteristics
characterization
characterizations
characteristically
characterologically
mischaracterizations
Oliver
fonte