ランダムCSSカラーコード


10

JavaScriptでランダムなCSSカラーコードを生成することに関するこのブログ投稿には、JavaScriptでランダムな色を生成するための複数のソリューションがあります。私が見つけることができる最も短いものはこれです:

'#'+(Math.random()*0xffffff).toString(16).slice(-6)

CSSカラーコードに慣れていない場合は、こちらのドキュメントをご覧ください。

もっと上手くできる?他の言語はどうですか?


あなたは壊れています、あなたは+後に欠けています'#'
ドアノブ

1
これを行うと、スライスを削除できます#'+(Math.random()*0xffffff|0).toString(16)
Griffin

1
「0xffffff」は何のために必要ですか?それなしでは結果に大きな違いは見られません。
path411 2013

4
@ path411理論的にMath.random().toString(16)は、(hexa)decimalポイントの後に6桁未満の16進数の表現を生成できます。その場合、関数は壊れます。例えば、0.1658172607421875はなり0.2A73進インチ
プリモ2013

回答:


26

PHP 23バイト

#<?=md5(rand())&ÿÿÿÿÿÿ;

どこにÿ文字255ビット単位であるから返された文字列切り捨てられますmd5進形式で既にあります、。


7
これは、サイトで私のお気に入りのソリューションの1つです。
グリフィン

7

3つの文字コードも有効であるため、いくつかの文字(4095 == 0xfff)を保存できます。

ルビー、24 23 22 18

'#%03x'%rand(4095)

6文字を使用する必要がある場合は、次のようにします。

Ruby、28 27 26 24 20

一人のキャラクターを剃ったから 8**8-1 == 0xffffff

'#%06x'%rand(8**8-1)

書式文字列のchronのおかげで、4文字節約されました!


不正行為(このxkcdストリップを念頭に置いて):

Ruby / JS / Python / Perl / lots、6(または5)

"#a83"

保証します、ランダムに生成しました!

さらに奇妙なバージョン:

"red"

Rubyのメソッド呼び出しに括弧は必要ありませんよね?
Mohsen 2013

@モーセンはい、しかしRubyは混乱to_s4095、私がそれらを省略した場合、私は呼びかけていると思います。
ドアノブ

あなたはsprintfの書式文字列で20にそれを得ることができます:'#%06x'%rand(8**8-1)
ポールPrestidge

@chronニース、ありがとう!編集
ドアノブ

6

Javascript

'#'+Math.random().toString(16).substr(2,6)

42で少し短いです。


1
なぜこれが反対投票されたのかはわかりません。私がテストしたすべてのブラウザで正常に動作します。+1
プリモ2013

5
#'+Math.random().toString(16).slice(-6)
Mohsen 2013

@モーセンいいね!スライスがネガを作成できることを知りませんでした。
Tristin 2013

3

フィッシュ79

vnnnnnnnn 
601234567;
>xxxxxxxx<
 89""""""?
 nnABCDEF:
 vv""""""-
 vvoooooo1
 >>>>>>>>^

世界で最も短い解決策ではありませんが、コーディングするのは楽しかったです:)

また、一様な分布ではありませんが、すべての出力はゼロ以外の確率7を持ち、Fはおそらく数字です。

出力:

python fish.py randomColor.fish
07FFF7

python fish.py randomColor.fish
07EFD7

python fish.py randomColor.fish
366F67

python fish.py randomColor.fish
977FD7

python fish.py randomColor.fish
97F7F7

python fish.py randomColor.fish
87F6FF

1

APL(17)

'#',(⎕D,⎕A)[6?16]

説明:

  • 6?16:1から16までの6つの乱数
  • ⎕D,⎕A:数字(0..9)の後にアルファベット(A..Z)が続きます(ただし、最初の16個の値のみが使用されます、つまり0..F
  • '#',:を#前に追加

6?16ただし、6つの非反復ランダム値であり、色空間が少し狭くなります...
mniip

1

バッシュ(51)

od -N4 -An -tx /dev/urandom | cut -c2-7 | sed s/^/#/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.