Une carte de Bingo est composée de cinq colonnes de cinq carrés chacune, le carré du milieu étant désigné "GRATUIT". Les nombres ne peuvent pas être dupliqués.
Les cinq colonnes sont remplies avec la plage de nombres suivante:
- B: 1-15
- I: 16-30
- N: 31-45
- G: 46-60
- O: 61-75
En aussi peu de caractères que possible, sortez une chaîne qui peut être interprétée comme une carte de bingo aléatoire. Par exemple:
1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65
Cet exemple n'est pas randomisé pour que je puisse montrer que la colonne 1 est remplie avec 1,2,3,4,5. Notez également que l'espace libre n'a reçu aucun traitement spécial car le frontal qui interprète cette chaîne le sautera.
Un autre exemple serait:
1,16,31,46,61,2,17,32,47,62 ...
Dans cet exemple, la sortie se fait par ligne au lieu de par colonne.
Un troisième exemple pourrait être:
01020304051617181920313233343546474849506162636465
Il s'agit de la même sortie que le 1er exemple, sauf en longueur fixe.
Réponses:
PHP, 86
la source
join
est un alias pourìmplode
et vous pouvez placer l'assignation dans la boucle after. Cela raccourcira votre idée àfor($o=[];25>$i=count($o);$o[$n]=$n)$n=rand(1,15)+($i-$i%5)*3;echo join(",",$o);
Ruby 1.9, 48 caractères
la source
Windows PowerShell, 51
54Je ne sais pas si j'ai bien compris votre tâche.
Exemples de sorties:
la source
PHP 106
Je ne suis pas sûr d'avoir bien compris le problème ... Pouvez-vous fournir une explication plus détaillée?
la source
R,
6351504945 octetsMerci à Billywob pour ses suggestions continues et pour avoir encouragé ma séquence de compétitions.
la source
cat(sapply(list(15,16:30,31:45,46:60,61:75),sample,5))
Edit: peu importe l'impression, ajouté à lacat
placecat(sapply(split(1:75,ceiling(1:75/15)),sample,5))
. Fonctionne en divisant le vecteur1:75
en une liste où chaque élément est un vecteur de longueur15
au lieu d'utiliserlist()
pour passer des objetssapply
.labels = FALSE
option pourcut
. Parce que tout ce qui compte, c'est qu'il y ait5
des facteurs répétitifs passés à la fonction de division, indépendamment des noms.Clojure - 52 caractères
Exemple de sortie (notez qu'il fournit les lignes séparées sous forme de sous-listes):
la source
Python 2, 84 octets
Si la sortie en tant que liste si listes est correcte, il existe une solution à 75 octets :
la source