Como seguimiento de mi desafío anterior, ¡ cuente hasta 20 con palabras! , una vez más, utilizaremos la lista de palabras de ese desafío para realizar otra tarea. Esta vez, usarás exclusivamente:
https://github.com/Magic Octopus Urn / wordListsByLength / blob / master / 10.txt
Para elegir 26 palabras diferentes, cada una comenzando con una letra única, y emitiéndolas en orden ascendente de la A a la Z. Aquí hay un ejemplo 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 es un lobo hormiguero , este es un jilguero , este es un kalanchoe , este es un nudibranquio y una goletrap .
Reglas
- No se puede leer directamente desde el repositorio, ni ninguna otra laguna.
- Puede seleccionar cualquiera de las 26 palabras proporcionadas en el enlace .
- Eliges palabras y estas son las palabras que tu programa debería generar cada vez.
- Se debe seleccionar una palabra que comience con cada una de las siguientes letras:
[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]
- Este es el código de golf , el menor recuento de bytes gana.
¿Alguna otra sugerencia para spin-offs usando las listas de palabras?
Además, siéntase libre de robar mis listas de palabras y hacer desafíos.
code-golf
kolmogorov-complexity
natural-language
Urna de pulpo mágico
fuente
fuente
Respuestas:
Chicle ,
10099 bytesPruébalo en línea!
Salida:
Las palabras fueron nuevamente seleccionadas con recocido simulado:
fuente
uglinesses
es una posibilidad para la letra U que te perdiste, pero esto no ayuda mucho, ya que todavía tienes Q, X e Y para tratar. No se me ocurre nada para eso.uneasiness
comprimir bien coneasinesses
yqueasiness
. Es muy consistente con esas elecciones.JavaScript (ES6), 168 bytes
Para cada letra inicial, genera la primera palabra que termina en -inesses o la primera palabra disponible.
Manifestación
Mostrar fragmento de código
fuente
Jalea , 69 bytes
Este es el enfoque ingenuo que puede ser mejorado por algunas garrapatas inteligentes
Pruébalo en línea!
(Se supone que "los separadores válidos son caracteres no alfabéticos imprimibles en ASCII (números pares, no me importa)" del desafío anterior)
fuente
Jalea , 49 bytes
Pruébalo en línea! (Toma unos 22 segundos en TIO)
Salidas:
Cómo funciona
fuente
Python 2 ,
256231220 bytesAhorré 36 bytes gracias a Jonathan Allan, quien hizo la mayor parte del trabajo duro por esto (acabo de encontrar las palabras: P)
Pruébalo en línea!
fuente
print
)Japt ,
169107 bytesPruébalo en línea!
Yo escribí un programa que me ayuda a optimizar la compresión. Ordena una lista por su tamaño de compresión shoco .
fuente
inesses
con1
el cálculo de la longitud de compresión sin embargo;)liminesses
Japt , 85 bytes
donde los dos pares de backticks representan cadenas de caracteres imprimibles y no imprimibles aparentemente aleatorios. Pruébalo en línea! Salida:
Explicación
La técnica básica es:
Encontré
cozinesses
comenzando connesses
algunas respuestas que he usado y encontrando repetidamente la letra anterior que apareció entre la mayoría de las 26 letras. Como las técnicas codiciosas no suelen ser óptimas, más tarde escribí un guión para encontrar la palabra óptima real:(No me importa que sea increíblemente feo. Así es como PPCG me ha enseñado a codificar: P No te preocupes, no hago esto en producción).
De todos modos, cuando se ejecuta en la consola del navegador en la lista de palabras de 10 letras , esto genera
los
57
ser el número de letras que tendrían que aparecer en la cadena multilínea. También tardó unos 17 segundos en mi computadora, así que tenga paciencia cuando lo ejecute.Al reemplazar la
f=
línea conPuede obtener todos los sufijos dentro de los 20 caracteres del óptimo. (Cambie
20
al final a algo más para ajustar esto. Nota: esta función probablemente solo funcione en Firefox) . Aquí puede encontrar una lista de todos los sufijos menores de 100 .De todos modos, a partir de ahí, es solo una tarea encontrar la palabra para cada letra del alfabeto que tenga el sufijo más largo en común
ozinesses
. Escribí un script Japt para hacer esto, así como comprimir los prefijos necesarios para mí y decirme cuánto tiempo durará el programa resultante. (Sin embargo, deberá pegar manualmente la lista de palabras entre comillas).Esta explicación probablemente fue algo confusa, así que no dude en hacer cualquier pregunta que pueda tener.
fuente
Bubblegum ,
110106 bytesHexdump:
Pruébalo en línea!
Huellas dactilares:
fuente
Javascript (ES6), 163 bytes
Mostrar fragmento de código
fuente
/.+/g
a/.*/g
,-ozinesses
acozinesses
, y la eliminación de la solitariac
?/.*/g
coincide con un grupo de 0 caracteres después de cada línea.Python 2 ,
168166 bytesPruébalo en línea!
¿Cómo?
Inicializa
i
a97
(el ordinal del caráctera
) y luego recorre una lista formadasplit
marcando una cadena en los espacios que forman eprint
ing de las palabras, incrementándose ai
medida que avanza. La mayoría de las entradas,w
en la lista son de longitud dos, estas son las palabras que comienzan con la letra del alfabeto y terminan eninesses
, es decir, de la forma:chr(i)+w+'inesses'
.Las entradas de longitud 6 son de la forma:
chr(i)+w+'ies'
Esto significa que se puede usar un formato para anteponer la letra alfabética y agregar un final con el
'ness'
insertado como'i'+?+'es'
cuandow
es corto así:"%c%si%ses"%(i,w,"ness"*(len(w)<3))
-% c se convierte
i
en un carácter; los dos%s
insertosw
y"ness"*(len(w)<3)
, donde este último es"ness"
siw
es corto o""
siw
es largofuente
SOGL V0.12 , 66 bytes
Pruébalo aquí!
Una simple competencia del diccionario con el problema de que ninguna palabra que comienza con X estaba en el diccionario SOGL, por lo que compensé con xenotropic - tropic estaba en el diccionario. Y necesitaba agregar la cita de inicio porque de lo contrario el analizador pensó que
[
comenzó un ciclo: /fuente
Carbón , 84 bytes
Pruébalo en línea! Utiliza la lista de palabras de @ HermanLauenstein, pero guardé un byte porque puedo perderme el
f
. Por una vez, algo competitivo incluso en modo detallado, que solo tiene 166 bytes. Pruébalo en línea!fuente