임의의 CSS 색상 코드


10

JavaScript에서 임의의 CSS 색상 코드 생성에 대한 이 블로그 게시물 에는 JavaScript에서 임의의 색상을 생성하기위한 여러 가지 솔루션이 있습니다. 내가 찾을 수있는 가장 짧은 것은 다음과 같습니다.

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

CSS 색상 코드에 익숙하지 않은 경우 여기에서 설명서를 읽으십시오.

더 잘할 수 있을까요? 다른 언어는 어떻습니까?


너의 문이 깨졌어, 너는+'#'
Doorknob

1
이렇게하면 슬라이스를 제거 할 수 있습니다#'+(Math.random()*0xffffff|0).toString(16)
Griffin

1
"0xffffff"는 무엇입니까? 나는 그것이 없으면 내 결과에 큰 차이가 보이지 않습니다.
path411

4
@ path411 이론적으로 ( Math.random().toString(16)16 진) 소수점 뒤 6 진수 미만의 6 진수 미만으로 표현할 수 있으며이 경우 함수가 중단됩니다. 예를 들어 0.1658172607421875 는 16 진수로 0.2A73 이됩니다 .
primo

답변:


26

PHP 23 바이트

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

어디 ÿ문자 255 비트 단위이며, 반환 된 문자열을 자릅니다 md516 진수 형식 이미.


7
이것은 사이트에서 내가 가장 좋아하는 솔루션 중 하나입니다.
그리핀

7

3 개의 문자 코드도 유효하므로 일부 문자 ( 4095 == 0xfff)를 저장할 수 있습니다 .

루비, 24 23 22 18

'#%03x'%rand(4095)

나는 경우 그 다음, 6 문자의 하나를 사용 :

루비, 28 27 26 24 20

한 캐릭터를 깎아서 8**8-1 == 0xffffff

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

형식 문자열을 사용하여 4자를 절약 할 수 있습니다.


부정 행위 ( 이 xkcd 스트립 을 염두에두고) :

Ruby / JS / Python / Perl / lots 더, 6 (또는 5)

"#a83"

나는 당신을 확신합니다, 나는 그것을 무작위로 생성했습니다!

더 치열한 버전 :

"red"

루비에서 메소드 호출에 괄호가 필요하지 않습니까?
Mohsen

예 @Mohsen하지만 루비는 혼란 내가 전화 한 생각됩니다 to_s4095내가 그들을 생략합니다.
Doorknob

sprintf 형식 문자열을 사용하여 20으로 줄일 수 있습니다.'#%06x'%rand(8**8-1)
Paul Prestidge

@chron Nice 감사합니다! 편집
Doorknob

6

자바 스크립트

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

42에서 조금 더 짧습니다.


1
이것이 왜 다운 보트인지 확실하지 않습니다. 테스트 한 모든 브라우저에서 제대로 작동합니다. +1
primo

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

@Mohsen 좋은! 슬라이스가 부정적인 것을 할 수 있다는 것을 몰랐습니다.
tristin

3

물고기 79

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

세계에서 가장 짧은 솔루션은 아니지만 코딩하는 것이 재미있었습니다. :)

또한 균일 분포는 아니지만 모든 결과는 0이 아닌 확률을 가지며 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.