Como acompanhamento do meu desafio anterior, conte até 20 com palavras! , usaremos novamente a lista de palavras desse desafio para executar outra tarefa. Desta vez, você estará usando exclusivamente:
https://github.com/Magic Octopus Urn / wordListsByLength / blob / master / 10.txt
Para escolher 26 palavras diferentes, cada uma começando com uma letra única e imprimindo-as em ordem crescente de A a Z. Aqui está um exemplo válido:
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
Este é um lobo - marinho , este é um hawfinch , este é um kalanchoe , este é um nudibrânquios e um pedaço de galinha .
Regras
- Nenhuma leitura diretamente do repositório ou de outras brechas.
- Você pode selecionar 26 das palavras fornecidas no link .
- Você escolhe as palavras e estas são as palavras que seu programa deve produzir sempre.
- Uma palavra começando com cada uma das seguintes letras deve ser selecionada:
[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]
- Isso é código-golfe , vitórias mais baixas na contagem de bytes.
Alguma outra sugestão de spin-offs usando as listas de palavras?
Além disso, fique à vontade para roubar minhas listas de palavras e fazer desafios.
code-golf
kolmogorov-complexity
natural-language
Urna de polvo mágico
fonte
fonte
Respostas:
Chiclete ,
10099 bytesExperimente online!
Resultado:
As palavras foram novamente selecionadas com recozimento simulado:
fonte
uglinesses
é uma possibilidade para a letra U que você perdeu, mas isso não ajuda muito, pois você ainda tem Q, X e Y para lidar. Nada vem à mente para aqueles.uneasiness
de compactar bem comeasinesses
equeasiness
. É muito consistente sobre essas escolhas.JavaScript (ES6), 168 bytes
Para cada letra inicial, gera a primeira palavra que termina em -inesses ou a primeira palavra disponível.
Demo
Mostrar snippet de código
fonte
Geléia , 69 bytes
Esta é a abordagem ingênua que pode ser improvável por alguns tiques inteligentes
Experimente online!
(Supõe que "Separadores válidos são caracteres não alfabéticos imprimíveis em ASCII (números pares, não se importam)" se mantém do desafio anterior)
fonte
Geléia , 49 bytes
Experimente online!(Demora cerca de 22 segundos no TIO)
Saídas:
Como funciona
fonte
Python 2 ,
256231220 bytesEconomizei 36 bytes graças a Jonathan Allan, que fez a maior parte do trabalho duro para isso (acabei de encontrar as palavras: P)
Experimente online!
fonte
print
)Japonês ,
169107 bytesExperimente online!
Eu escrevi um programa que me ajuda a otimizar a compactação. Classifica uma lista por seu tamanho de compactação shoco .
fonte
inesses
com1
o cálculo do comprimento de compressão embora;)liminesses
Japt , 85 bytes
onde os dois pares de reticulares representam cadeias de caracteres imprimíveis e imprimíveis aparentemente aleatórios. Experimente online! Resultado:
Explicação
A técnica básica é:
Descobri
cozinesses
começando comnesses
outras respostas que foram usadas e encontrando repetidamente a letra anterior que apareceu entre as 26 letras com mais frequência. Como as técnicas gananciosas geralmente não são ótimas, mais tarde escrevi um script para encontrar a palavra ideal real:(Não me importo que seja incrivelmente feio. Foi assim que o PPCG me ensinou a codificar: P Não se preocupe, não faço isso na produção.)
De qualquer forma, quando executado no console do navegador na lista de 10 letras , isso gera
A
57
sendo o número de cartas que teriam de aparecer na seqüência de várias linhas. Também levou cerca de 17 segundos no meu computador; portanto, seja paciente ao executá-lo.Substituindo a
f=
linha porvocê pode obter todos os sufixos dentro de 20 caracteres do ideal. (Altere
20
no final para outra coisa para ajustar isso. Nota: esta função provavelmente só funciona no Firefox.) Você pode encontrar uma lista de todos os sufixos abaixo de 100 aqui .De qualquer forma, a partir daí é apenas uma tarefa de encontrar a palavra para cada letra do alfabeto com o maior sufixo em comum
ozinesses
. Eu escrevi um script japt para fazer isso, além de comprimir os prefixos necessários para mim e me dizer quanto tempo o programa resultante será. (Você precisará colar manualmente a lista de palavras entre as aspas.)Essa explicação provavelmente foi um pouco confusa; portanto, fique à vontade para fazer qualquer pergunta que possa ter.
fonte
Chiclete ,
110106 bytesHexdump:
Experimente online!
Impressões:
fonte
Javascript (ES6), 163 bytes
Mostrar snippet de código
fonte
/.+/g
para/.*/g
,-ozinesses
paracozinesses
e removendo o solitárioc
?/.*/g
corresponde a um grupo de 0 caracteres após cada linha.Python 2 ,
168166 bytesExperimente online!
Quão?
Inicializa
i
em97
(o ordinal do caracterea
), em seguida, percorre uma lista formada porsplit
ting uma string em espaços formando eprint
digitando as palavras, aumentandoi
medida que avança. A maioria das entradas,w
na lista são de comprimento dois, estas são palavras que começam com a letra alfabética e terminam eminesses
, ou seja, da forma:chr(i)+w+'inesses'
.As entradas de comprimento 6 estão no formato:
chr(i)+w+'ies'
Isso significa que uma formatação pode ser usada para acrescentar a letra alfabética e adicionar um final com o
'ness'
inserido como'i'+?+'es'
quandow
é curto assim:"%c%si%ses"%(i,w,"ness"*(len(w)<3))
-% c converte
i
em um caractere; as duas%s
inserçõesw
e"ness"*(len(w)<3)
, onde esta estiver"ness"
sew
for curta ou""
sew
é longo.fonte
SOGL V0.12 , 66 bytes
Experimente aqui!
Uma simples compilação de dicionário com o problema de que nenhuma palavra que começa com X estava no dicionário SOGLs, então eu compensei com xenotrópico - trópico estava no dicionário. E eu precisava adicionar a citação inicial porque, caso contrário, o analisador pensava que
[
iniciou um loop: /fonte
Carvão , 84 bytes
Experimente online! Usa a lista de palavras de @ HermanLauenstein, mas salvei um byte porque posso perder o
f
. Pela primeira vez, um pouco competitivo, mesmo no modo detalhado, que é de apenas 166 bytes. Experimente online!fonte