Dieser Blog-Beitrag zum Generieren von zufälligen CSS-Farbcodes in JavaScript bietet mehrere Lösungen zum Generieren einer zufälligen Farbe in JavaScript. Das kürzeste, das ich finden kann, ist das Folgende:
'#'+(Math.random()*0xffffff).toString(16).slice(-6)
Wenn Sie mit dem CSS-Farbcode nicht vertraut sind lesen Sie hier die Dokumentationen.
Können wir es besser machen? Was ist mit anderen Sprachen?
+
nach dem'#'
#'+(Math.random()*0xffffff|0).toString(16)
Math.random().toString(16)
kann eine Darstellung mit weniger als 6 Hexadezimalstellen nach dem (Hexa-) Dezimalpunkt erstellt werden. In diesem Fall würde die Funktion unterbrochen. Zum Beispiel wird 0,1658172607421875 zu 0,2A73 in hex.Antworten:
PHP 23 Bytes
Wo
ÿ
ist das Zeichen 255. Bitweise und schneidet die zurückgegebene Zeichenfolge abmd5
, die bereits im hexadezimalen Format vorliegt .quelle
Drei Zeichencodes sind ebenfalls gültig, sodass ich einige Zeichen (
4095 == 0xfff
) speichern kann :Ruby,
24232218Wenn ich habe ein 6-char man verwenden, dann gilt :
Ruby,
2827262420Rasierte einen Charakter ab, weil
8**8-1 == 0xffffff
Dank chron für die Formatzeichenfolge, die 4 Zeichen spart!
Betrug (mit Blick auf diesen xkcd-Streifen ):
Ruby / JS / Python / Perl / viele mehr, 6 (oder 5)
Ich versichere Ihnen, ich habe es zufällig generiert!
Eine noch betrügerischere Version:
quelle
to_s
an,4095
wenn ich sie weglasse.'#%06x'%rand(8**8-1)
Javascript
Mit 42 nur etwas kürzer.
Code-Snippet anzeigen
quelle
#'+Math.random().toString(16).slice(-6)
Fisch 79
Nicht die kürzeste Lösung der Welt, aber es hat Spaß gemacht zu programmieren :)
Es ist auch keine gleichmäßige Verteilung, aber alle Ausgänge haben eine Wahrscheinlichkeit ungleich Null 7 und F sind höchstwahrscheinlich Ziffern.
Ausgänge:
quelle
APL (17)
Erläuterung:
6?16
: 6 Zufallszahlen von 1 bis 16⎕D,⎕A
: die Ziffern (0..9
) gefolgt vom Alphabet (A..Z
) (aber nur die ersten 16 Werte werden jemals verwendet, dh0..F
)'#',
: Fügen Sie ein#
vorne hinzuquelle
6?16
ist 6 nicht wiederholte zufällige Werte, die den Farbraum ein wenig verengt ...Bash (51)
quelle
Python 3 , 53 Bytes
Probieren Sie es online aus!
quelle