Pour faire suite à mon précédent défi Comptez jusqu'à 20 avec des mots! , nous utiliserons à nouveau la liste de mots de ce défi pour effectuer une autre tâche. Cette fois, vous utiliserez exclusivement:
https://github.com/Magic Octopus Urn / wordListsByLength / blob / master / 10.txt
Pour choisir 26 mots différents, chacun commençant par une lettre unique, et les sortir par ordre croissant de A à Z. Voici un exemple valide:
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
C'est un loup - garou , c'est un trèfle , c'est un kalanchoe , c'est un nudibranche et un goletrap .
Règles
- Pas de lecture directement depuis le référentiel ou toute autre faille.
- Vous pouvez sélectionner 26 des mots fournis dans le lien .
- Vous choisissez des mots et ce sont les mots que votre programme doit sortir à chaque fois.
- Un mot commençant par chacune des lettres suivantes doit être sélectionné:
[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]
- Il s'agit du code-golf , le plus petit nombre de victoires d'octets.
Avez-vous d'autres suggestions de retombées en utilisant les listes de mots?
Aussi, n'hésitez pas à voler mes listes de mots et à lancer des défis.
code-golf
kolmogorov-complexity
natural-language
Urne de poulpe magique
la source
la source
Réponses:
Bubblegum ,
10099 octetsEssayez-le en ligne!
Production:
Les mots ont de nouveau été sélectionnés avec un recuit simulé:
la source
uglinesses
est une possibilité pour la lettre U que vous avez manquée, mais cela n'aide pas beaucoup, car vous avez encore Q, X et Y à gérer. Rien ne leur vient à l'esprit.uneasiness
bien compresser aveceasinesses
etqueasiness
. C'est très cohérent dans ces choix.JavaScript (ES6), 168 octets
Pour chaque lettre de départ, sort le premier mot se terminant par -inesses ou le premier mot disponible.
Démo
Afficher l'extrait de code
la source
Gelée , 69 octets
C'est l'approche naïve qui peut être améliorée par quelques tiques intelligentes
Essayez-le en ligne!
(Suppose que "les séparateurs valides sont des caractères non alphabétiques imprimables en ASCII (nombres pairs, peu importe)") du défi précédent)
la source
Gelée , 49 octets
Essayez-le en ligne!(Prend environ 22 secondes sur TIO)
Les sorties:
Comment ça fonctionne
la source
Python 2 ,
256231220 octetsEnregistré 36 octets grâce à Jonathan Allan, qui a fait la plupart du travail acharné pour cela (je viens de trouver les mots: P)
Essayez-le en ligne!
la source
print
)Japt ,
169107 octetsEssayez-le en ligne!
J'ai écrit un programme qui m'aide à optimiser la compression. Il trie une liste en fonction de sa taille de compression shoco .
la source
inesses
avec1
lors du calcul de la longueur de compression;)liminesses
Japt , 85 octets
où les deux paires de crochets représentent des chaînes de caractères imprimables et non imprimables apparemment aléatoires. Essayez-le en ligne! Production:
Explication
La technique de base est:
J'ai trouvé
cozinesses
en commençant parnesses
que d'autres réponses ont utilisé et en trouvant à plusieurs reprises la lettre précédente qui apparaissait parmi la plupart des 26 lettres. Comme les techniques gourmandes ne sont pas souvent optimales, j'ai écrit plus tard un script pour trouver le vrai mot optimal:(Je m'en fous que ce soit incroyablement moche. C'est ainsi que PPCG m'a appris à coder: P Ne vous inquiétez pas, je ne fais pas ça en production.)
Quoi qu'il en soit, lorsqu'il est exécuté dans la console du navigateur sur la liste de mots à 10 lettres , cela génère
le
57
étant le nombre de lettres qui devraient apparaître dans la chaîne multiligne. Cela a également pris environ 17 secondes sur mon ordinateur, alors soyez patient lorsque vous l'exécutez.En remplaçant la
f=
ligne parvous pouvez obtenir tous les suffixes à moins de 20 caractères de l'optimum. (Remplacez le
20
à la fin par quelque chose d'autre pour régler cela. Remarque: cette fonction ne fonctionne probablement que dans Firefox.) Vous pouvez trouver une liste de tous les suffixes sous 100 ici. .Quoi qu'il en soit, à partir de là, il ne reste plus qu'à trouver le mot pour chaque lettre de l'alphabet qui a le plus long suffixe en commun avec
ozinesses
. J'ai écrit un script Japt pour cela, ainsi que compresser les préfixes nécessaires pour moi et me dire combien de temps le programme résultant sera. (Vous devrez cependant coller manuellement la liste de mots entre les guillemets.)Cette explication était probablement un peu confuse, alors n'hésitez pas à poser toutes les questions que vous pourriez avoir.
la source
Bubblegum ,
110106 bytesHexdump:
Essayez-le en ligne!
Tirages:
la source
Javascript (ES6), 163 octets
Afficher l'extrait de code
la source
/.+/g
à/.*/g
,-ozinesses
àcozinesses
, et le retrait du seulc
?/.*/g
correspond à un groupe de 0 caractères après chaque ligne.Python 2 ,
168166 octetsEssayez-le en ligne!
Comment?
Initialise
i
à97
(l'ordinal du caractèrea
) puis parcourt une liste formée ensplit
tingant une chaîne aux espaces formant etprint
ing les mots, incrémentant aui
fur et à mesure. La plupart des entrées,w
dans la liste sont de deux longueurs, ce sont des mots qui commencent par la lettre de l' alphabet et à la fin dansinesses
, par exemple de la forme:chr(i)+w+'inesses'
.Les entrées de longueur 6 sont de la forme:
chr(i)+w+'ies'
Cela signifie qu'un formatage peut être utilisé pour ajouter la lettre alphabétique et ajouter une fin avec l'
'ness'
inséré comme'i'+?+'es'
quandw
est court comme ceci:"%c%si%ses"%(i,w,"ness"*(len(w)<3))
-% c se convertit
i
en caractère; les deux%s
insèrentw
et"ness"*(len(w)<3)
, lorsque ce dernier est si est long."ness"
siw
est court ou""
w
la source
SOGL V0.12 , 66 octets
Essayez-le ici!
Une simple compression de dictionnaire avec le problème qu'aucun mot commençant par X n'était dans le dictionnaire SOGL, donc j'ai compensé avec xénotropique - tropique était dans le dictionnaire. Et je devais ajouter la citation de départ, car sinon l'analyseur pensait que cela
[
commençait une boucle: /la source
Fusain , 84 octets
Essayez-le en ligne! Utilise la liste de mots de @ HermanLauenstein, mais j'ai enregistré un octet car je peux manquer le
f
. Pour une fois, quelque peu compétitif même en mode verbeux, qui ne fait que 166 octets. Essayez-le en ligne!la source