रंग गणना, घटनाओं द्वारा क्रमबद्ध


14

यह वर्णन करने के लिए सरल है और मैं शायद ही विश्वास कर सकता हूं कि यह पहले गोल्फ नहीं था:

किसी दिए गए चित्र के लिए (जो भी स्वरूप आपकी भाषा द्वारा समर्थित है), अद्वितीय रंग ढूंढें और रंगों की सूची तैयार करें।

  • हेक्स आरजीबी में रंग कोड प्रिंट करें, यह एक हैश साइन है #जिसके बाद आर के लिए 2 अंक, जी के लिए 2 अंक और बी के लिए 2 अंक ( #xxxxxxजहां एक्स 0-9, एएफ और / या एफआर हो सकता है)।
  • हेक्स कोड एक स्थान और दशमलव पिक्सेल गणना के बाद होगा, फिर एक नई रेखा ( \nया \r\n)।
  • सूची को अवरोही (शीर्ष पर सबसे अक्सर रंग) द्वारा क्रमबद्ध किया जाएगा।
  • यदि एक टाई (एक ही राशि वाले दो रंग) हैं, तो आदेश महत्वपूर्ण नहीं है।
  • छवि में पारदर्शिता नहीं होगी, इसलिए कोई भी अल्फा मान महत्वपूर्ण नहीं है। अल्फ़ा मान आउटपुट का हिस्सा नहीं हो सकता है।
  • 4000x3000 का एक छवि आकार समर्थित होना चाहिए (जो परिभाषाएँ टाइप करने के लिए महत्वपूर्ण हो सकता है)

नमूना छवि "10red 20blue 30black 40white": नमूना छवि 1

अपेक्षित उत्पादन:

#FFFFFF 40
#000000 30
#0000FF 20
#FF0000 10

नमूना छवि "नीली ढाल": नमूना छवि 2

अपेक्षित आउटपुट में से एक (चूंकि समान रंगों का क्रम भिन्न हो सकता है):

#718DFF 19
#5571FF 15
#3855FF 11
#8DAAFF 11
#1C38FF 7
#AAAAFF 7
#8D8DFF 6
#AAC6FF 6
#C6C6FF 5
#C6E2FF 4
#001CFF 3
#E2E2FF 3
#FFFFFF 3

नमूना छवि "testImage", कृपया @Luis मेंडो द्वारा प्रदान की गई है :

नमूना छवि 3

अपेक्षित उत्पादन:

#FFFFFF 18042
#000000 1754
#FF3300 204

इस प्रश्न के समान , लेकिन आउटपुट पाठ है, न कि एक छवि।


count descendingथोड़ा अस्पष्ट है। हम इसे कैसे सुलझाते हैं?
R

@ E @s frequentIʀᴋ: अवरोही: सबसे ऊपर लगातार रंग
थॉमस वेलर

ठीक है, मैं कहूंगा कि थोड़ा और स्पष्ट होने की जरूरत है। शायद कुछ कहें the most frequent colors at the top?
R

@ E @s theIʀᴋ: मैं सहमत हूं, दोनों के लिए सवाल को अद्यतन किया
थॉमस वेलर

1
कुछ परीक्षण के मामले अच्छे होंगे।
मार्टिन एंडर

जवाबों:


4

गणितज्ञ, 91 बाइट्स

StringRiffle@SortBy[Tally["#"<>IntegerString[#,16,2]&/@Join@@#~ImageData~"Byte"],-Last@#&]&

@ डेविडसी के उत्तर से पूरी तरह से अलग विधि का उपयोग करता है । उस एक के विपरीत, यह किसी भी आकार और रंग गणना के साथ छवियों का समर्थन कर सकता है। स्पष्टीकरण:

#~ImageData~"Byte"                   Take the RGB values of the image...
Join@@(...)                          Flatten to a list of colors...
"#"<>IntegerString[#,16,2]&/@(...)   Convert each color to #012def format...
Tally[(...)]                         Convert to a list of {color, multiplicity}
                                      pairs (this does most of the work)...
SortBy[(...),-Last@#&]               Order by the multiplicity descending...
StringRiffle@(...)                   And create a string with the desired format.

अच्छा लगा। मुझे पसंद है कि कैसे "बाइट" छवि डेटा लौटाता है।
डेविड

4

बाश + कोरुटिल्स, 54

  • 7 बाइट्स ने @manatwork को धन्यवाद दिया
grep -oE '#\w+'|sort|uniq -c|sort -nr|awk '$0=$2" "$1'

यह इमेजमाटिक के .txt प्रारूप के STDIN इनपुट को मानता है ।

Ideone।


यदि उपरोक्त इनपुट प्रारूप बहुत अधिक है, तो हम किसी भी प्रारूप से Imagemagick रूपांतरण जोड़ सकते हैं:

बैश + कोरुटिल्स + इमेजमैजिक, 71

convert $1 txt:-|grep -oE '#\w+'|sort|uniq -c|sort -nr|awk '$0=$2" "$1'

यहां, इनपुट छवि फ़ाइल नाम को कमांड-लाइन पैरामीटर के रूप में पास किया गया है।


2
awk का डिफॉल्ट OFS एक स्पेस है, आप ट्रेड कर सकते हैं "" के लिए,
n0741337

1
या उससे भी छोटा awkहिस्सा awk '$0=$2" "$1':।
मैनटवर्क

3

जावास्क्रिप्ट (ईएस 6), 359 355 बाइट्स

4 बाइट्स @Neil की बदौलत सहेजे गए

u=>{i=new Image;i.src=u;e=document.createElement`canvas`;c=e.getContext`2d`;i.onload=_=>{w=e.width=i.width;h=e.height=i.height;c.drawImage(i,0,0);d=c.getImageData(0,0,w,h).data;for(o={},i=0;i<d.length;i+=4)++o[s='#'+`00000${(d[i]<<16|d[i+1]<<8|d[i+2]).toString(16)} `.slice(-7)]?0:o[s]=1;Object.keys(o).sort((a,b)=>o[b]-o[a]).map(c=>console.log(c+o[c]))}}

डेमो

f=u=>{i=new Image;i.crossOrigin='';i.src=u;e=document.createElement`canvas`;c=e.getContext`2d`;i.onload=_=>{w=e.width=i.width;h=e.height=i.height;c.drawImage(i,0,0);d=c.getImageData(0,0,w,h).data;for(o={},i=0;i<d.length;i+=4)++o[s='#'+`00000${(d[i]<<16|d[i+1]<<8|d[i+2]).toString(16)} `.slice(-7)]?0:o[s]=1;Object.keys(o).sort((a,b)=>o[b]-o[a]).map(c=>console.log(c+o[c]))}}
f('http://i.imgur.com/acPudA9.gif')
<input value="https://i.imgur.com/acPudA9.gif" onchange="console.log('-------');f(this.value)">

अन्य परीक्षण मामले जो मैंने कॉर्ग का समर्थन करने के लिए इमगुर में अपलोड किए थे:

इन दोनों पर विशिष्ट रंग डेटा किसी कारण से अपलोड करते समय थोड़ा बदल गया है, लेकिन यह अभी भी उन दो परीक्षण मामलों के लिए समान मात्रा में प्रिंट करता है।


मुझे लगता |है कि <<यदि आप इसके बजाय इसका उपयोग करते हैं +तो आपको इसकी पूर्वता कम है, इसलिए आपको इतने सारे ()एस की आवश्यकता नहीं होगी ।
नील

@ user2428118 अगली बार अगर आप किसी टिप्पणी में चिंता छोड़ते हैं तो मैं सराहना करूंगा और मुझे अपना उत्तर संपादित करने के बजाय स्वयं संपादित करने को कहा। आपने वास्तव <!-- language: lang-js -->में स्निपेट से हटाकर मेरे डेमो को तोड़ दिया , जावास्क्रिप्ट को प्रभावी ढंग से अक्षम कर दिया।
पैट्रिक रॉबर्ट्स

@Patrick क्षमा करें, मैं अगली बार अधिक सावधान रहूंगा। इसके अलावा, मुझे बस कुछ बाइट्स को बचाने का एक तरीका मिला:u=>{document.write`<img src=${u} id=i><canvas id=e>`;c=e.getContext`2d`;i.onload=_=>{w=e.width=i.width;h=e.height=i.height;c.drawImage(i,0,0);d=c.getImageData(0,0,w,h).data;for(o={},i=0;i<d.length;i+=4)++o[s='#'+`00000${(d[i]<<16|d[i+1]<<8|d[i+2]).toString(16)} `.slice(-7)]?0:o[s]=1;Object.keys(o).sort((a,b)=>o[b]-o[a]).map(c=>console.log(c+o[c]))}}
user2428118

2

पायथ , 29 बाइट्स

jmj;_d_SrSm+\#.[\06.Hid256'Q8

इसे ऑनलाइन आज़माएं!

(ऑनलाइन दुभाषिया छवि को नहीं पढ़ सकता है, इसलिए मैंने उस हिस्से को छीन लिया और उस छवि को पढ़ने के परिणाम को इनपुट किया, जो कि रंग त्रिकोणीय की एक सूची है। छवि को पढ़ने के लिए जिम्मेदार हिस्सा 'एक एकल बृहदान्त्र है।)

'एकल बृहदान्त्र की कार्यक्षमता का प्रमाण


आपको sपहले एक की आवश्यकता है 'Q, क्योंकि एक छवि को ट्रिपलेट्स की सूची के रूप में दर्शाया गया है।
जक्यूब

यहाँ एक सही (और छोटा) समाधान हैV_SrS%L+\#*3"%02X"s'z8jd_N
जकुबे

2

गणितज्ञ 103 92 बाइट्स

{"#"<>IntegerString[255Round[List@@#],16,2],#2}&@@@DominantColors[#,9999,{"Color","Count"}]&

उदाहरण

पिक


व्याख्या

DominantColorsआम तौर पर रंगों की एक सूची देता है और एक चित्र में मुख्य समूहों का प्रतिनिधित्व करता है। जब अनुरोध किए गए रंगों की संख्या छवि में रंगों की संख्या से अधिक हो जाती है, तो सटीक पिक्सेल रंग वापस आ जाते हैं। (मैं मान रहा हूं कि 10 000 से कम रंग इनपुट इमेज में होंगे।)

चित्र


{"#"<>IntegerString[255Round[List@@#],16,2],#2} बेस 10 रंग मूल्यों को हेक्साडेसिमल मानों के साथ परिवर्तित करता है।


नोट: मैनड्रिल छवि में केवल 5 रंग हैं। (मैं ColorQuantize[<image>,5]मानक मैनड्रिल छवि में रंगों की संख्या कम करता था।)


बस आपको बाहर निकाला गया;)
लीजनमैमल 978

थोड़ा-थोड़ा करके। लेकिन आपका दृष्टिकोण असीमित संख्या में रंग लेता है।
डेविड

1

PowerShell v2 +, 187 बाइट्स

$a=New-Object System.Drawing.Bitmap $args[0]
$b=@{}
0..($a.Height-1)|%{$h=$_;0..($a.Width-1)|%{$b["#"+-join($a.GetPixel($_,$h).Name[2..7])]++}}
$b.GetEnumerator()|Sort value -des|FT -h -a

सबसे प्रभावी रंग प्राप्त करें पर मेरे उत्तर से लगभग सभी कोड का पुन: उपयोग करता है । इसलिए, कृपया पूर्ण विवरण के लिए संदर्भ लें।

यहाँ परिवर्तन का अनुक्रमण में हैं $bतीसरी लाइन स्पष्ट उत्पादन प्रारूप आवश्यकताओं से मेल करने के लिए, और अंतिम पंक्ति हम में sortसे valueमें -desकरने के लिए पाइप cending, तो Format-Tableसाथ -HideTableHeaders और -AutoSize पैरामीटर के रूप में। FTपीपीसीजी पर वास्तव में यहां उपयोग करना बहुत दुर्लभ है , क्योंकि आउटपुट निष्पादन के अंत में निहित है, लेकिन यहां यह सुनिश्चित करने के लिए बहुत उपयोगी है कि हमें केवल सही भागों का आउटपुट मिलता है।

उदाहरण

पहला डोमिनेंट कलर चैलेंज से "रेड" टेस्ट इमेज है, दूसरा इस चैलेंज से "टेस्टिमेज" है।

PS C:\Tools\Scripts\golfing> .\color-count.ps1 C:\Tools\Scripts\golfing\img\red.png

#ff0000 139876
#dcd9cf 3056  
#f2f1ed 1512  
#ffffff 1508  
#ffe6e6 1488  
#ffe3e3 8     
#eae8e2 4     
#fffbfb 4     


PS C:\Tools\Scripts\golfing> .\color-count.ps1 C:\Tools\Scripts\golfing\img\z07VA.gif

#ffffff 18042
#000000 1754 
#ff3300 204  

1

Tcl / Tk , 134 बाइट्स

console s
lmap s [concat {*}[[image c photo -fi $argv] d]] {dict inc D $s}
dict fo k\ v [lsort -int -s 2 -inde 1 -de $D] {puts $k\ $v}

dके लिए है data

Tcl / Tk , 232 बाइट्स

console s
set I [image c photo -fi $argv]
set i 0
time {set j 0
time {dict inc D #[join [lmap s [$I g $i $j] {format %02X $s}] ""]
incr j} [image h $I]
incr i} [image w $I]
dict fo k\ v [lsort -int -s 2 -inde 1 -de $D] {puts $k\ $v}

wish sort_pix.tcl QTE4O.png

यहाँ छवि विवरण दर्ज करें


wish sort_pix.tcl 5s1Ob.png

यहाँ छवि विवरण दर्ज करें


wish sort_pix.tcl z07VA.gif

यहाँ छवि विवरण दर्ज करें


1

ब्रेन-फ्लैक , 1110 बाइट्स

{{}({}[(()()()()()){}])}{}(<>)<>([]){{}({}()<({}()<({}()<>)>)>)<>([])}{}<>{({}<({}<({}<(()()<>)>)>)>)<>{(<>)<>(()()()){({}[()]<<>({}<([([(({})<>[({})]<>)])]<>)<>{({}()<([{}])<>({}<>)<>>)<>}{}<>{}<>>{})({}<({}<({}<>)<>({}<>)<>({}<>)<>>)<>({}<>)<>({}<>)<>({}<>)>)<>({}<({}<>)<>({}<>)<>>)<>({}<>)<>({}<>)>)}{}<>((){[()](<{}>)}{})((){[()](<{}({}())<>{}{}{}>)}{}){{}(<<>(()()()){({}[()]<({}<(([])<{{}({}<>)<>([])}{}<>>)<>>)<>{({}[()]<({}<>)<>>)}{}<>>)}{}>)}{}<>({}<({}<>)<>({}<>)<>({}<>)<>>)<>({}<>)<>({}<>)<>({}<>)<>}({}<(([])<{{}({}<>)<>([])}{}<>>)<>>)<>{({}[()]<({}<>)<>>)}{}(()()()()){((({}[()])<{({}[()]<({}<({}<>)<>>)>)}{}>)<{({}[()]<<>({}<>)>)}{}>)}{}<>}{}<>(()()()())([][()])({}(<>))<>([()]{()<(({})){({}[()])<>}{}>}{}<><{}{}>){({}[()]<(<(()()()())([][()])({}(<>))><>([()]{()<(({})){({}[()])<>}{}>}{}<><{}{}>)<{({}[()]<([([({}<({}<({}<({}<(({})<>)<>>)>)>)>)<><({}<>)>]{}<(())>)](<>)){({}())<>}{}({}<><{}{}>){{}<>(<({}<({}<({}<({}<({}<({}<({}<({}<>)>)>)>)<>>)>)>)>)<>({}<({}<({}<({}<<>>)>)>)>)>)}{}({}<({}<({}<({}<>)>)>)>)<>>)}{}<>{}{}{}{}>[()]){({}[()]<({}<({}<({}<({}<>)>)>)>)<>>)}{}<>>)}{}{({}[()]<>)<>}<>

इसे ऑनलाइन आज़माएं!

वैसे यह एक साहसिक कार्य था। पता चलता है, छवि प्रसंस्करण में ब्रेन-फ्लैक बहुत अच्छा नहीं है। किसे पता था?

मैं यह देखते हुए शुरू करूँगा कि यह तकनीकी रूप से अनुरोधित सख्त आउटपुट प्रारूप को पूरा नहीं करता है। यदि आप चाहते हैं कि लागू होने की मुझे जानकारी है और मैं अनुवाद कोड जोड़ने का प्रयास करूंगा। अभी के लिए यह दशमलव संख्याओं को आउटपुट करता है: प्रत्येक 4 नंबर RED GREEN BLUE COUNT के क्रम में एक रंग का प्रतिनिधित्व करता है।

अगला, इनपुट अनुमति प्राप्त इनपुट प्रारूप अधिक लचीले थे इसलिए मैंने ब्रेन-फ्लैक से पार्स के लिए सबसे आसान प्रारूप का उपयोग किया (जो मुझे मिल सकता है): नेटपब्लम पी 6। दुर्भाग्य से, ब्रेन-फ्लैक पी 3 फॉर्मेट से दशमलव संख्याओं को पार्स नहीं कर सका क्योंकि सभी नेटपब्लम चित्र चरित्र से शुरू होते हैं Pऔर ब्रेन-फ्लैक गैर-संख्यात्मक अक्षरों वाली फाइलों से दशमलव इनपुट को संभाल नहीं सकता है। इसलिए पी 6 का उपयोग इसके बजाय किया गया था, क्योंकि पी 6 बाइट के रूप में रंग जानकारी संग्रहीत करता है, जिन्हें एएससीआईआई इनपुट मोड में संख्याओं के रूप में माना जाता है। एक चुनौती बनी रही क्योंकि हेडर की जानकारी उपयोगी रूप से एन्कोड नहीं की गई थी , लेकिन सौभाग्य से मुझे उस जानकारी की कोई आवश्यकता नहीं थी, इसलिए इसे छोड़ दिया गया है। यह प्रोग्राम पूरी तरह से Netpbm मानक का पालन नहीं करता है क्योंकि यह हेडर के भीतर नईलाइनों की अनुमति नहीं देता है, लेकिन नई सूचियाँ नहीं हैंमानक द्वारा आवश्यक है ताकि इनपुट मान्य Netpbm फाइलें हों।

अंतिम चेतावनी, TIO पर संस्करण वास्तव में "आधिकारिक" ऑपरेशन के लिए सही ढंग से कॉन्फ़िगर नहीं किया गया है, क्योंकि (मेरी जानकारी के लिए) मैं TIO पर इनपुट के रूप में फ़ाइलों की आपूर्ति नहीं कर सकता, और न ही मैं प्रत्यक्ष इनपुट में unprintable ASCII के अनुरूप बाइट्स की आपूर्ति कर सकता हूं। आधिकारिक ऑपरेशन के लिए -aध्वज को कच्चे बाइट्स के रूप में इनपुट लेने और -fफ़ाइल से इनपुट लेने की आवश्यकता होती है। TIO लिंक पर नमूना इनपुट को मैन्युअल रूप से Netpbm विकी पृष्ठ पर उदाहरण से अनुवादित किया गया था ।

इसके अतिरिक्त, मैं काम करने के लिए कोड के सहायक स्निपेट प्रदान करने के लिए ब्रेन-फ्लैक विकी को धन्यवाद देना चाहता हूं। विशेष रूप से, बबल-सॉर्ट कार्यान्वयन यहां अंतिम चरण के लिए महत्वपूर्ण था, क्योंकि मुझे हर रंग के लिए एक गिनती मिल गई थी, क्योंकि मुझे वास्तव में कोई विचार नहीं था कि अन्यथा कहां से शुरू करना है। इसमें भारी संशोधन हुआ, लेकिन मुझे खुशी है कि मुझे खरोंच से शुरुआत नहीं करनी पड़ी।

यहाँ कोड का असम्बद्ध और टिप्पणी किया गया संस्करण है। ब्रेन-फ्लैक इस पोस्ट में एक उपयोगी स्वरूपित स्पष्टीकरण को शामिल करने के लिए थोड़ा बहुत क्रिया है, लेकिन टीआईओ पर अनलॉफ़्ड संस्करण में वह सब कुछ शामिल है जो मैं यहां प्रबंधित करने की तुलना में बेहतर स्वरूपण के साथ एक में शामिल कर सकता हूं, इसलिए यदि आप रुचि रखते हैं तो आप इसे ले सकते हैं। देखो।

अभी तक गोल्फिंग हो सकती है, मेरा पिछला ब्रेन-फ्लैक जवाब बहुत सारे संशोधनों के माध्यम से गया था, लेकिन उम्मीद है कि वहां सीखे गए पाठों ने इसे एक बेहतर शुरुआती बिंदु दिया।


0

पायथन 2, 186 बाइट्स

import Image
I=Image.open(input()).convert('RGB')
w,h=I.size
r=['#'+('%0.2X'*3)%I.getpixel((i%w,i/h))for i in range(w*h)]
for a,b in sorted(set((r.count(v),v)for v in r))[::-1]:print b,a

इसे ऑनलाइन आज़माएं!

अस्वीकरण: प्रस्तुत आउटपुट पठनीयता के लिए एक-लाइनर हैं। कोड आउटपुट चुनौती के अनुरोध के अनुसार अंतरिक्ष और लाइन जुदाई के साथ परिणाम देता है।

10red 20blue 30black 40white के लिए आउटपुट:

[('#FFFFFF', 40), ('#000000', 30), ('#0000FF', 20), ('#FF0000', 10)]

नीले ढाल के लिए ऊपुत:

[('#718DFF', 19), ('#5571FF', 15), ('#8DAAFF', 11), ('#3855FF', 11), ('#AAAAFF', 7), ('#1C38FF', 7), ('#AAC6FF', 6), ('#8D8DFF', 6), ('#C6C6FF', 5), ('#C6E2FF', 4), ('#FFFFFF', 3), ('#E2E2FF', 3), ('#001CFF', 3)]

परीक्षण छवि के लिए आउटपुट

[('#FFFFFF', 18042), ('#000000', 1754), ('#FF3300', 204)]

स्पष्टीकरण:

w,h=I.size # field size stores tuple of values of width and height of image

I.getpixel((i%w,i/h)) # returns tuple of base10 RGB values

('%0.2X'*3) # format string to convert int into hex

set((r.count(v),v)for v in r) # generate set of unique pairs count-color 

sorted(set(...))[::-1] # apply sorted(), as it sorts set of tuples by firts elements and reverse sort

print b,a  # swap values in tuples and print

0

जावा (1.4+) , 483 428 बाइट्स

import java.util.*;class I {public static void main(String[] a) throws Exception {java.awt.image.BufferedImage i = javax.imageio.ImageIO.read(new java.io.File(a[0]));Map m=new HashMap();String s;for(Integer x=0,y=0,c;y<i.getHeight();y++)for(x=0;x<i.getWidth();m.put(s=x.toHexString(((c=i.getRGB(x++,y))&0xff0000)>>16)+x.toHexString((c & 0xff00)>>8)+x.toHexString(c&0xff),m.get(s)==null?1:(int)m.get(s)+1));System.out.print(m);}}

इसे ऑनलाइन आज़माएं! (ऑनलाइन काम नहीं करता है)


Ungolfed:

import java.util.*;

class I {
    public static void main(String[] a) throws Exception {
        java.awt.image.BufferedImage i = javax.imageio.ImageIO
                .read(new java.io.File(a[0]));
        Map m = new HashMap();
        String s;
        for (Integer x = 0, y = 0, c; y < i.getHeight(); y++)
            for (x = 0; x < i.getWidth(); m
                    .put(s = x.toHexString(((c = i.getRGB(x++, y)) & 0xff0000) >> 16)
                            + x.toHexString((c & 0xff00) >> 8)
                            + x.toHexString(c & 0xff), m.get(s) == null ? 1
                            : (int) m.get(s) + 1))
                ;
        System.out.print(m);
    }
}

toString()नक्शे के इस तरह आउटपुट:

{7c7c7c=6, 1d57a5=20468, 121212=7, d3d3d3=3, bdbdbd=9, 949494=2, 333=14, 626262=3, cacaca=2, 141414=5, fff=11, c9c9c9=1, e8e8e8=1, 919191=4, 161616=5, c2c2c2=1, 646464=7, 979797=12, fafafa=2, 808080=1, 7b7b7b=1, 484848=4, b9b9b9=2, f1f1f1=2, 6b6b6b=6, 363636=15, 262626=4, d8d8d8=2, 868686=4, 757575=1, 575757=3, a7a7a7=2, cecece=2, dcdcdc=2, c3c3c3=2, 1d1d1d=5, 727272=9, 656565=2, 3a3a3a=3, 7d7d7d=10, 393939=5, 797979=3, 222=31, 8f8f8f=2, 454545=4, 181818=9, 2e2e2e=2, 222222=1, 1c1c1c=19, b8b8b8=2, e1e1e1=5, 232323=5, 8a8a8a=3, 959595=7, 6a6a6a=9, 434343=7, 5c5c5c=3, 111=20, 909090=3, 424242=4, 212121=1, 1a1a1a=6, 202020=7, efefef=1, 565656=5, 6e6e6e=7, 767676=3, 323232=2, eee=5, 444=18, 2c62ab=1, 717171=2, b1b1b1=3, 6c6c6c=3, 545454=7, 515151=17, 2f2f2f=2, 4a4a4a=3, 888888=6, 6d6d6d=3, 898989=3, a3a3a3=5, 7e7e7e=9, ddd=9, b6b6b6=3, 2b2b2b=5, 313131=5, 8d8d8d=1, a2a2a2=2, 696969=3, a5a5a5=3, 4f4f4f=5, 828282=7, 191919=5, 606060=4, 6f6f6f=4, 8b8b8b=3, ebebeb=2, 555=19, 929292=3, 131313=11, 999999=5, d2d2d2=2, 444444=9, 474747=4, dddddd=1, 585858=8, 5a5a5a=3, 000=9887, afafaf=2, dfdfdf=3, 747474=3, 666666=4, a1a1a1=4, 2a2a2a=11, 4d4d4d=6, 818181=2, 878787=5, 215aa6=1, d9d9d9=4, b5b5b5=3, b4b4b4=3, 737373=4, aeaeae=3, bbb=15, 242424=4, 2d2d2d=8, 888=19, c1c1c1=1, 494949=9, dbdbdb=5, ccc=19, 5d5d5d=3, 5f5f5f=1, 414141=6, c8c8c8=3, aaa=16, 1e1e1e=3, 707070=2, 9e9e9e=2, 373737=7, 9d9d9d=2, 1b1b1b=4, 303030=7, 535353=10, 595959=2, 8e8e8e=3, 383838=5, 939393=18, 616161=2, 686868=6, dadada=1, e3e3e3=2, 5b5b5b=3, a4a4a4=5, 8c8c8c=5, a6a6a6=11, 292929=6, 4c4c4c=3, 151515=6, fefefe=2, 787878=2, 505050=2, e2e2e2=1, 1f1f1f=9, adadad=2, ababab=1, 5e5e5e=6, 252525=4, 4e4e4e=3, 282828=7, a8a8a8=4, 9c9c9c=3, aaaaaa=1, 101010=5, b7b7b7=2, 969696=6, 7f7f7f=4, 555555=2, a9a9a9=5, 343434=8, 999=17, 777777=3, ffffff=76669, f0f0f0=4, bbbbbb=1, 1e58a5=1, b3b3b3=4, 777=20, 636363=2, d4d4d4=1, 2c2c2c=5, 848484=1, 3c3c3c=3, bfbfbf=2, 3e3e3e=9, 333333=4, 7a7a7a=3, 858585=4, 4b4b4b=3, 272727=7, 111111=6, 666=13, 9b9b9b=1, bcbcbc=4, cfcfcf=2, 9a9a9a=1, 404040=21, 525252=3, 989898=4, 171717=5, 3b3b3b=2, c4c4c4=1, 3f3f3f=7, 464646=1, cdcdcd=2, b2b2b2=33, c5c5c5=2, bababa=2}

कृपया 1.8 विशिष्ट गोल्फ सुझाव पोस्ट न करें, जब तक कि यह पुराने जावा में काम न करे, मुझे नहीं चाहिए।

उदाहरण: लैम्बदास जावा के अधिक संस्करणों में काम नहीं करते हैं जितना वे काम करते हैं।


" कृपया 1.8 विशिष्ट गोल्फ सुझाव पोस्ट न करें, जब तक कि यह पुराने जावा में काम न करे, मुझे नहीं चाहिए। " जिज्ञासा से बाहर: क्यों जावा 4 जबकि जावा 10 पहले से ही उपलब्ध है?
केविन क्रूज़सेन

कुछ गोल्फ जो कि जावा 4 (मुझे लगता है) में काम करना चाहिए: import java.util.*;class M{public static void main(String[]a)throws Exception{java.awt.image.BufferedImage i=javax.imageio.ImageIO.read(new java.io.File(a[0]));Map m=new HashMap();String s;for(Integer x=0,y=0,c;y<i.getHeight();y++)for(x=0;x<i.getWidth();m.put(s=x.toHexString((c&0xff0000)>>16)+x.toHexString((c&0xff00)>>8)+x.toHexString(c&0xff),m.get(s)==null?1:(int)m.get(s)+1))c=i.getRGB(x++,y);System.out.print(m);}}( 419 बाइट्स )
केविन क्रूज़सेन

@ केविनक्रूजसेन क्योंकि 1.8 था, यकीनन, कोड के संदर्भ में सबसे बड़ी रिलीज जो पिछले संस्करणों के साथ नहीं चलेगी । अधिकांश अन्य रिलीज जेआरई के लिए कक्षाओं के फिक्स और जोड़ थे। 1.8 पिछले JRE के साथ सबसे कम संगत था।
मैजिक ऑक्टोपस Urn

@KevinCruijssen x.toHexIntegerएक स्थिर आयात की तुलना में अधिक स्मार्ट था।
मैजिक ऑक्टोपस Urn

जावा 3 भी नहीं, क्योंकि जावा 3 ... वास्तव में ... में इतने कम शॉर्टकट हैं ...
मैजिक ऑक्टोपस Urn

0

स्माइलबासिक, 165 बाइट्स

DEF C A
L=LEN(A)DIM C[L],N[L]FOR J=0TO L-1FOR I=0TO U-1ON A[J]-C[I]GOTO@L
NEXT
U=U+1@L
C[I]=A[J]INC N[I]NEXT
RSORT.,U,N,C
FOR I=0TO U-1?"#";HEX$(C[I],6),N[I]NEXT
END

छवि को 32 बिट ARGB रंग मानों के एक सरणी के रूप में दिया गया है (जब संख्या 6 अंकों के एक्सएक्सएक्स में बदल जाती है तो अल्फा मान छंट जाता है)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.