Ce billet de blog sur la génération de codes de couleur CSS aléatoires en JavaScript propose plusieurs solutions pour générer une couleur aléatoire en JavaScript. Le plus court que je puisse trouver est le suivant:
'#'+(Math.random()*0xffffff).toString(16).slice(-6)
Si vous n'êtes pas familier avec le code couleur CSS, consultez les documentations ici.
Pouvons-nous faire mieux? Et les autres langues?
+
après la'#'
#'+(Math.random()*0xffffff|0).toString(16)
Math.random().toString(16)
peut produire une représentation avec moins de 6 chiffres hexadécimaux après le point décimal (hexa), auquel cas la fonction se briserait. Par exemple, 0.1658172607421875 devient 0.2A73 en hex.Réponses:
PHP 23 octets
Où
ÿ
est le caractère 255. Au niveau du bit et tronquera la chaîne renvoyéemd5
, qui est déjà au format hexadécimal.la source
Trois codes de caractères sont également valides, je peux donc enregistrer quelques caractères (
4095 == 0xfff
):Rubis,
24232218Si je dois utiliser un 6 caractères, alors:
Rubis,
2827262420Rasé un personnage parce que
8**8-1 == 0xffffff
Merci à chron pour la chaîne de format, économisant 4 caractères!
Tricher (avec cette bande xkcd à l'esprit):
Ruby / JS / Python / Perl / beaucoup plus, 6 (ou 5)
Je vous assure, je l'ai généré au hasard!
Une version encore plus cheat:
la source
to_s
à4095
si je les laisse de côté.'#%06x'%rand(8**8-1)
Javascript
Un peu plus court à 42 ans.
Afficher l'extrait de code
la source
#'+Math.random().toString(16).slice(-6)
Poissons 79
Pas la solution la plus courte au monde, mais c'était amusant de coder :)
Ce n'est pas non plus une distribution uniforme, mais toutes les sorties ont une probabilité non nulle 7 et F sont les chiffres les plus probables.
Les sorties:
la source
APL (17)
Explication:
6?16
: 6 nombres aléatoires de 1 à 16⎕D,⎕A
: les chiffres (0..9
) suivis de l'alphabet (A..Z
) (mais seules les 16 premières valeurs sont utilisées, ie0..F
)'#',
: ajouter un#
devantla source
6?16
est 6 valeurs aléatoires non répétitives cependant, qui rétrécit un peu l'espace colorimétrique ...Coup (51)
la source
Python 3 , 53 octets
Essayez-le en ligne!
la source