Le défi est simple:
générer un mot.
Caractéristiques:
- Le mot doit être prononçable.
- Ceci est défini comme «alternant entre une consonne et une voyelle».
- Une consonne est l'une des lettres suivantes:
bcdfghjklmnpqrstvwxz
- Une voyelle est l'une des lettres suivantes:
aeiouy
- Le mot doit être généré de manière aléatoire.
- Les mots doivent pouvoir contenir chaque consonne et voyelle. (Vous ne pouvez pas simplement utiliser
bcdf
pour les consonnes et lesaei
voyelles.) - Le mot doit contenir 10 lettres.
- Le code le plus court (en nombre de caractères) gagne.
code-golf
random
natural-language
generation
Poignée de porte
la source
la source
echo buxitiwymu
est techniquement conforme aux spécifications. Je vous assure, j'ai généré le mot au hasard: Py
comme une voyelle, où vous pouvez utiliserq
etx
, et quand vous pouvez utiliser des combinaisons de deux lettres commeng
ouea
Réponses:
GolfScript, 32 caractères
Exécutez-le en ligne .
la source
Ruby: 56 caractères
Exemples de sorties:
la source
'aeiouy'.chars
serait un caractère plus court.TypeError: can't convert Enumerator into Array
Python, 81
Bonne chance pour les prononcer.
la source
:P
python grc.py | say
sur ma machine. Merci pour l'idée.COBOL, 255
J'apprends donc COBOL en ce moment. Utilisé cette question comme pratique. J'ai essayé de jouer au golf.
C'est 255 sans le premier espace blanc et 286 octets avec.
Pour ce que ça vaut, cela fonctionne dans Microfocus COBOL pour VS2012, et je n'ai aucune idée si cela fonctionnera ailleurs.
la source
APL (34)
la source
JavaScript, 74
Ne génère pas toutes les combinaisons, mais je pense que toutes les consonnes et voyelles apparaissent.
JavaScript, 79
Version plus "aléatoire".
la source
^0
sert?Math.random
donne un flottant, nous avons besoin d'un entier.^0
tronque le nombre^
opérateur en JavaScript auparavant et j'ai moins entendu parler de son utilisation pour tronquer un flottant. Merci!^
Ruby:
7066 caractèresExemple d'exécution:
la source
10.times
pour un caractère de moins.*10
->*4
, ignorer*3
,rand 60
->rand 20
et vous avez enregistré 3 caractères.R: 105 caractères
la source
J (51)
la source
Traitement,
100999387En examinant de plus près la question, je vois qu'elle ne nécessite aucune sortie. J'ai ajusté cela en conséquence.
la source
Objectif-C, 129
Avec l'aide de Daniero
(J'adore utiliser l' opérateur de tendance (->)
la source
Java AKA la langue la plus verbeuse jamais créée, 176 avec l'aide de Doorknob, Daniero et Peter Taylor (merci les gars!)
Non golfé:
}
la source
String a[]
àString[]a
(-1 caractères), passerw W = new w();
àw W=new w();
(-2 caractères)f
et utilisez à lai%2
place. De plus, lafor
boucle peut être raccourcie, et vous pouvez placer les deux chaînes à l'intérieur de l'opérateur conditionnel (également, pas besoin de parens ici), et utiliser lecharAt
à l'extérieur. Voici le tout, 195 CHARS, 38 ENREGISTRÉS :import java.util.*;class w{public static void main(String[]a){Random r=new Random();for(int i=0;++i<11;)System.out.print((i%2>0?"bcdfghjklmnpqrstvwxz":"aeiouy").charAt(r.nextInt(6+(i%2)*14)));}}
Javascript, 85
S'il est exécuté à partir de la console, la sortie est affichée. L'affichage explicite ajouterait
alert(s)
8 caractères, encore plus court que les autres solutions JS.Merci C5H8NNaO4 et Howard!
la source
~~(###)
vous pouvez écrire###|0
ce qui enregistre 4 caractères.Javascript,
1351229686 caractèresla source
PHP, 100 caractères
la source
Outils Unix: 73 octets
Et le temps de fonctionnement n'est pas garanti :)
Le seul problème est que la chaîne générée commencera à chaque fois par une "voyelle".
(edit: changé
' '
en''
dans les args de paste) (un autre edit: supprimé -P des options grep, grâce au manatwork )la source
grep
paramètres. J'ai obtenu «de e ap ag ak».-a
serait suffisant.-P
c'est celui-là. Semble que l'homme met en garde contre son statut hautement expérimental avec une raison. (grep
2.16) Mais de toute façon, cela fonctionne très bien sans-P
.-P
en premier lieu. Je vais modifier ma réponse.tr -d \\n
est plus court pour rejoindre les lignes.Pyth, 26 caractères
Vous pouvez l'essayer dans le compilateur en ligne ici.
Quelqu'un a posté un défi très similaire, mais il a été clôturé après avoir trouvé une solution. Je ne m'en étais pas rendu compte, mais cette question est antérieure à la création de Pyth. Quoi qu'il en soit, voici la répartition:
Chaque fois que la boucle est exécutée, J passe d'une liste de consonnes à une liste de voyelles. De cette façon, nous pouvons simplement choisir une lettre aléatoire de J à chaque fois.
Il peut y avoir un moyen d'initialiser J dans la boucle ou de supprimer les affectations explicites de la boucle, mais je n'ai pas encore réussi avec les deux.
la source
APL
3026L'explication est très similaire à la version précédente ci-dessous, juste réorganisée un peu pour jouer au golf avec la solution.
Remarque: ⎕IO est défini sur 0
Explication:
Tryapl.org
la source
('AEIOUY'∪⎕A) ≡ (∪'AEIOUY',⎕A)
mais c'est un octet plus court.⎕A
enregistrer un autre octet:,('EIOUY'∪⎕A)[6(|,+)⍪5?20]
PHP 79 octets
Assez concis.
la source
C: 101
la source
Javascript,
10487golfé beaucoup de choses inutiles simples, toujours pas aussi belles que celles de copys
Oh, et celui-là vient de se produire pendant le golf: "dydudelidu"
Maintenant, j'en ai essayé un en utilisant l'approche des 2 caractères à la fois. Il s'avère que c'est presque le même que le deuxième copys, donc je ne peux pas le compter, également à 79.
a="";for(e=5;e--;)a+="bcdfghjklmnpqrstvwxz"[m=0|20*Math.random()]+"aeiouy"[m%6]
la source
Brachylog , 9 octets
Essayez-le en ligne!
Donne la sortie sous forme de liste de lettres via la variable de sortie.
la source
F # , 166 caractères
la source
K, 40 octets
5?"abc"
générera 5 lettres aléatoires à partir de la chaîne donnée.5?/:
générera 5 lettres aléatoires à partir de chacune des chaînes de droite, produisant deux listes.+
transpose ces deux listes, nous donnant une liste de tuples avec un caractère aléatoire de la première liste, puis un de la deuxième liste.,/
est "raze" - fusionnez tous ces tuples en séquence.K5 peut le faire en 33 octets en construisant l'alphabet plus intelligemment puis en utilisant "except" (
^
) pour supprimer les voyelles, mais K5 est beaucoup trop nouveau pour être légal dans cette question:la source
R, 83 octets
Générez toutes les séquences de voyelles-consonnes possibles dans une matrice, puis échantillonnez au hasard 5 d'entre elles, ce qui donne un mot de 10 lettres.
la source
05AB1E , 10 octets
Essayez-le en ligne ou sortezn quantité de mots aléatoires .
Explication:
Assez simple:
la source
Gelée , 13 octets
Explication:
Essayez-le en ligne!
la source