Défi:
Dans un scénario hypothétique, le compte à rebours pour une course a des intervalles aléatoires entre les comptages, pour éviter un démarrage prématuré, par exemple
3 (0.82 seconds pass), 2 (0.67 seconds pass), 1
Contribution:
rien
Production:
Écrivez un programme (ou une fonction) qui imprime les 3 nombres avec un intervalle de temps aléatoire de 0,50 seconde à 1 seconde entre chaque comptage.
Remarque:
- Le programme doit sortir chaque nombre (3, 2, 1) avec l' intervalle de temps aléatoire ( n'importe quel nombre entre 0,50 et 1 au centième; pas de codage en dur) entre chacun. La précision de l'intervalle aléatoire doit aller aux centaines (ex: 0,52). Vous n'êtes pas obligé de sortir l'intervalle, seulement le nombre.
- Comme @JoKing l'a précisé, je veux dire uniformément aléatoire (vous pouvez utiliser le générateur pseudo-aléatoire de votre langue.
- Comme beaucoup de gens l'ont précisé, je veux vraiment dire n'importe quel nombre à 2 décimales entre 0,5 et 1. (0,50, 0,51, etc., jusqu'à 0,98, 0,99, 1)
Il s'agit de code-golf , donc le programme avec le plus petit nombre d'octets gagne.
Réponses:
05AB1E , 12 octets
Essayez-le en ligne!
Essayez-le avec le débogage activé: essayez-le en ligne!
la source
SmileBASIC,
6462 octetsMalheureusement, je ne peux pas utiliser WAIT car cela ne prend en charge que des intervalles de 1/60 de seconde (rien de moins n'est normalement utile car les entrées / sorties ne sont mises à jour qu'une fois par image)
Cela nécessite un ajustement en fonction de la vitesse du système sur lequel il fonctionne, il peut donc ne pas être valide (46 octets):
Version WAIT non valide (36 octets):
la source
R ,
4644 octetspour un compte à rebours réel:
Essayez-le en ligne!
intervalle d'impression car j'ai initialement mal compris le défi (46 octets) Merci Giuseppe d' avoir enregistré 2 caractères.
Essayez-le en ligne!
la source
runif()
par défaut a les extrémités gauche et droite0
et1
respectivement, de sorterunif(1,.5)
devraient travailler les mêmes pour -2 octets dans les deux.Python 2 , 58 octets
Essayez-le en ligne!
J'ai créé un générateur de nombres aléatoires très simple qui prend le temps de démarrage (comme beaucoup de gens le font).
Améliorations
la source
1-time()%.5
devrait faire l'affaire. (Vous avez besoin[3,2,1]
d'ailleurs)for a in'321'
ÉpargneAPL + WIN, 37 octets
la source
Java 8, 86 octets
Imprime sans délimiteur. Si cela n'est pas autorisé, c'est +2 octets en changeant
print
enprintln
(délimiteur de nouvelle ligne).Essayez-le en ligne.
Prouvez que les intervalles sont dans la plage correcte de
[500, 1000)
ms.Explication:
la source
Python 3, 122 octets
Essayez-le en ligne!
la source
JavaScript (Node.js) ,
756560 octetsEssayez-le en ligne!
la source
*1000%500+500
? Vous pouvez simplement utiliser*500+500
.Perl 5 , 39 octets
Amélioré progressivement à 39 octets, grâce à @ jonathan-allan + @xcali.
Essayez-le en ligne!
la source
1-rand(.5)
travailler?1-rand.5
aussi.Puce
-wingjj
, 33 octetsEssayez-le en ligne!
Dans Chip, nous ne pouvons pas attendre exactement 1 / 100 de seconde, mais nous pouvons attendre 1 / 256 de seconde, donc nous utilisons ici.
p
, Lorsqu'on lui demande, va interrompre l' exécution de la tête d'empilage (un octet) * 1 / 256 secondes. A chaque cycle, nous avons mis toujours le bit de la pile ( 128 / 256 ) et mis tous les autres bits de la pile au hasard (avec?
l »). Cela donne une distribution uniforme entre 0,50 et 1,00 seconde.Certains des arguments
-w
et-gjj
spécifient que l'entrée, au lieu d'utiliser stdin, doit être un compte à rebours de0xFF
à0x00
(puis encapsulation). Nous l'utilisons pour fournir les deux bits bas pour le compte à rebours. Tous les autres bits de sortie restent constants (à la valeur correspondant à ASCII0
).Enfin, une fois que nous avons terminé, nous terminons le programme avec
t
, empêchant une pause après le dernier numéro.la source
[GAWK], 57 octets
Essayez-le en ligne!
la source