จำนวนสีเรียงลำดับตามเหตุการณ์ที่เกิดขึ้น


14

อันนี้ง่ายต่อการอธิบายและฉันแทบไม่อยากจะเชื่อว่านี่ไม่ได้เล่นกอล์ฟมาก่อน:

สำหรับรูปภาพที่กำหนด (ภาษาของคุณรองรับรูปแบบใดก็ตาม) ให้ค้นหาสีที่เป็นเอกลักษณ์และแสดงรายการสี

  • พิมพ์รหัสสีในรูปแบบ RGB ฐานสิบหกนั่นคือเครื่องหมายแฮช#ตามด้วย 2 หลักสำหรับ R, 2 หลักสำหรับ G และ 2 หลักสำหรับ B ( #xxxxxxโดยที่ x สามารถ 0-9, AF และ / หรือ af)
  • รหัสฐานสิบหกจะต้องตามด้วยช่องว่างและจำนวนพิกเซลทศนิยมจากนั้นขึ้นบรรทัดใหม่ ( \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 Mendo :

ภาพตัวอย่าง 3

ผลลัพธ์ที่คาดหวัง:

#FFFFFF 18042
#000000 1754
#FF3300 204

คล้ายกับคำถามนี้แต่ผลลัพธ์เป็นข้อความไม่ใช่รูปภาพ


count descendingค่อนข้างชัดเจน เราจะจัดเรียงมันได้อย่างไร
Rɪᴋᴇʀ

@ EᴀsᴛᴇʀʟʏIʀᴋ: จากมากไปน้อย: สีที่พบบ่อยที่สุดที่ด้านบน
โทมัสเวลเลอร์

โอเคฉันจะบอกว่าต้องมีความชัดเจนมากขึ้น อาจจะพูดอะไรบางอย่างเช่นthe most frequent colors at the top?
Rɪᴋᴇʀ

@ EᴀsᴛᴇʀʟʏIʀᴋ: ฉันเห็นด้วยเพิ่งปรับปรุงคำถามสำหรับทั้งสอง
โทมัสเวลเลอร์

1
สองสามกรณีทดสอบจะดี
Martin Ender

คำตอบ:


4

Mathematica, 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.

ดี ฉันชอบที่ "Byte" คืนค่าข้อมูลภาพ
DavidC

4

Bash + coreutils, 54

  • บันทึก 7 ไบต์ด้วย @manatwork
grep -oE '#\w+'|sort|uniq -c|sort -nr|awk '$0=$2" "$1'

นี้จะถือว่าการป้อนข้อมูล STDIN ของรูปแบบ .txt ImageMagick ของ

Ideone


หากรูปแบบอินพุตด้านบนยืดออกไปมากเกินไปเราสามารถเพิ่มการแปลง Imagemagick จากรูปแบบใดก็ได้:

Bash + coreutils + Imagemagick, 71

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

ที่นี่ชื่อไฟล์ภาพเข้าถูกส่งผ่านเป็นพารามิเตอร์บรรทัดคำสั่ง


2
ค่าเริ่มต้น OFS ของ awk เป็นช่องว่างคุณสามารถแลกเปลี่ยน "" "" สำหรับ,
n0741337

1
หรือแม้แต่awkส่วนที่สั้นกว่า: awk '$0=$2" "$1'.
จัดการ

3

JavaScript (ES6), 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)">

กรณีทดสอบอื่น ๆ ที่ฉันอัพโหลดไปยัง imgur เพื่อสนับสนุน CORS:

ข้อมูลสีเฉพาะของทั้งสองนี้ดูเหมือนว่าจะเปลี่ยนแปลงเล็กน้อยเมื่ออัปโหลดด้วยเหตุผลบางอย่าง แต่ก็ยังพิมพ์จำนวนครั้งที่เกิดขึ้นเท่ากันสำหรับกรณีทดสอบทั้งสองกรณี


ผมคิดว่า|มีความสำคัญต่ำกว่า<<ดังนั้นหากคุณใช้มันแทน+แล้วคุณจะไม่จำเป็นต้องมีจำนวนมากดังนั้น()s
Neil

@ user2428118 ครั้งต่อไปฉันจะขอบคุณถ้าคุณทิ้งความกังวลไว้ในความคิดเห็นและขอให้ฉันแก้ไขคำตอบของตัวเองแทนที่จะแก้ไขด้วยตัวเอง คุณทำลายการสาธิตของฉันโดยการลบออก<!-- language: lang-js -->จากตัวอย่างการปิดใช้งาน JavaScript อย่างมีประสิทธิภาพ
Patrick Roberts

@ แพทริกขออภัยฉันจะระมัดระวังมากขึ้นในครั้งต่อไป นอกจากนี้ฉันเพิ่งพบวิธีการบันทึกไบต์: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]))}}
2428118

2

Pyth , 29 ไบต์

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

ลองออนไลน์!

(ล่ามออนไลน์ไม่สามารถอ่านภาพได้ดังนั้นฉันถอดชิ้นส่วนนั้นแล้วป้อนผลลัพธ์ของการอ่านภาพนั้นซึ่งเป็นรายการของสีสามส่วนส่วนที่รับผิดชอบในการอ่านภาพคือ'ลำไส้ใหญ่เดียว)

พิสูจน์การทำงานของ'ลำไส้ใหญ่เดียว


คุณจำเป็นต้องมีsมาก่อน'Qเนื่องจากภาพจะแสดงเป็นรายการของรายการทริปเปิล
Jakube

นี่เป็นวิธีแก้ปัญหาที่ถูกต้อง (และสั้นกว่า)V_SrS%L+\#*3"%02X"s'z8jd_N
Jakube

2

Mathematica 103 92 ไบต์

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

ตัวอย่าง

pic


คำอธิบาย

DominantColorsปกติจะส่งคืนรายการสีและจำนวนที่แทนกลุ่มหลักในรูปภาพ เมื่อจำนวนสีที่ร้องขอเกินจำนวนสีในภาพสีพิกเซลที่แน่นอนจะถูกส่งกลับ (ฉันสมมติว่าสีน้อยกว่า 10,000 สีจะอยู่ในภาพอินพุต)

ภาพ


{"#"<>IntegerString[255Round[List@@#],16,2],#2} แปลงค่าสีพื้นฐาน 10 ด้วยค่าเลขฐานสิบหก


หมายเหตุ: รูปภาพ mandrill มี 5 สีเท่านั้น (ฉันใช้ColorQuantize[<image>,5]เพื่อลดจำนวนสีในภาพ mandrill มาตรฐาน)


เพิ่งออกไปเล่นกอล์ฟคุณ)
LegionMammal978

โดยเล็กน้อย แต่วิธีการของคุณใช้สีไม่ จำกัด จำนวน
DavidC

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

Re: การใช้งานเกือบทั้งหมดของรหัสจากคำตอบของฉันในการรับสีที่โดดเด่นมากที่สุด ดังนั้นโปรดอ้างอิงว่าสำหรับคำอธิบายแบบเต็ม

การเปลี่ยนแปลงที่นี่อยู่ในการจัดทำดัชนี$bในบรรทัดที่สามเพื่อให้ตรงกับความต้องการรูปแบบการออกอย่างชัดเจนและในบรรทัดสุดท้ายเราsortโดยvalueใน-descending สั่งซื้อแล้วท่อจะFormat-Tableมี-HideTableHeaders และ-AutoSize เป็นพารามิเตอร์ เป็นเรื่องยากมากที่จะใช้จริงFTที่นี่บน PPCG เนื่องจากผลลัพธ์นั้นโดยปริยายในตอนท้ายของการดำเนินการ แต่ที่นี่มีประโยชน์มากเพื่อให้แน่ใจว่าเราได้รับเฉพาะส่วนที่ถูกต้องเท่านั้น

ตัวอย่าง

ภาพแรกคือภาพทดสอบ "สีแดง" จากความท้าทายของสีที่โดดเด่นภาพที่สองคือภาพ "คำยืนยัน" จากความท้าทายนี้

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}

ddataสำหรับ

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

Brain-Flakขนาด 1110 ไบต์

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

ลองออนไลน์!

นั่นคือการผจญภัย ปรากฎว่า Brain-Flak ประมวลผลภาพได้ไม่ดีนัก ใครจะรู้

ฉันจะเริ่มด้วยการสังเกตว่าเทคนิคนี้ไม่เป็นไปตามรูปแบบผลลัพธ์ที่เข้มงวดที่ร้องขอ หากคุณต้องการให้มีการบังคับใช้ให้ฉันทราบและฉันจะพยายามเพิ่มรหัสการแปล สำหรับตอนนี้มันจะแสดงผลเป็นเลขทศนิยม: แต่ละหมายเลข 4 หมายถึงสีตามลำดับ RED GREEN BLUE COUNT

ถัดไปป้อนข้อมูล รูปแบบอินพุตที่อนุญาตมีความยืดหยุ่นมากกว่าดังนั้นฉันจึงใช้รูปแบบที่ง่ายที่สุดสำหรับ Brain-Flak ในการแยกวิเคราะห์ (ที่ฉันสามารถหาได้): Netpbm P6 น่าเสียดายที่ Brain-Flak ไม่สามารถแยกตัวเลขทศนิยมจากรูปแบบ P3 ได้เนื่องจากรูปภาพ Netpbm ทั้งหมดเริ่มต้นด้วยตัวอักษรPและ Brain-Flak ไม่สามารถจัดการกับอินพุตทศนิยมจากไฟล์ที่มีอักขระที่ไม่ใช่ตัวเลข ดังนั้นจึงใช้ P6 แทนเนื่องจาก P6 เก็บข้อมูลสีเป็นไบต์ซึ่งถือเป็นตัวเลขในโหมดอินพุต ASCII ยังคงมีความท้าทายอยู่เนื่องจากข้อมูลส่วนหัวไม่ได้รับการเข้ารหัสอย่างเป็นประโยชน์ แต่โชคดีที่ฉันไม่ต้องการข้อมูลใด ๆ เลยดังนั้นมันจึงถูกทิ้งไป โปรแกรมนี้ไม่เป็นไปตามมาตรฐาน Netpbm อย่างสมบูรณ์เพราะไม่อนุญาตให้ขึ้นบรรทัดใหม่ภายในส่วนหัว แต่ขึ้นบรรทัดใหม่ไม่ได้ถูกกำหนดโดยมาตรฐานดังนั้นอินพุตจึงเป็นไฟล์ Netpbm ที่ถูกต้อง

ข้อแม้สุดท้ายรุ่น TIO ไม่ได้รับการกำหนดค่าอย่างถูกต้องสำหรับการดำเนินการ "ทางการ" เพราะ (สำหรับความรู้ของฉัน) ฉันไม่สามารถจัดหาไฟล์เป็นอินพุตบน TIO และฉันไม่สามารถจัดหาไบต์ที่สอดคล้องกับ ASCII ที่ไม่สามารถพิมพ์ได้ในอินพุตโดยตรง สำหรับการดำเนินการอย่างเป็นทางการ-aจำเป็นต้องใช้แฟล็กเพื่อรับอินพุตเป็นไบต์ดิบและ-fเพื่อรับอินพุตจากไฟล์ การป้อนข้อมูลตัวอย่างที่ลิงค์ TIO ถูกแทนการแปลด้วยตนเองจากตัวอย่างที่หน้าวิกิพีเดีย Netpbm

นอกจากนี้ฉันขอขอบคุณ wiki Brain-Flak สำหรับการให้ข้อมูลโค้ดที่เป็นประโยชน์ในการทำงาน โดยเฉพาะอย่างยิ่งการนำ Bubble-Sort มาใช้ที่นี่เป็นเครื่องมือในขั้นตอนสุดท้ายเมื่อฉันได้รับการนับสำหรับทุกสีเนื่องจากฉันไม่ได้มีความคิดที่จะเริ่มต้นเป็นอย่างอื่น ต้องใช้การดัดแปลงหนัก แต่ฉันดีใจที่ฉันไม่ต้องเริ่มจากศูนย์

นี่คือโค้ดที่ไม่น่ารังเกียจและแสดงความคิดเห็น Brain-Flak ค่อนข้างละเอียดเกินไปที่จะรวมคำอธิบายที่มีการจัดรูปแบบที่เป็นประโยชน์ไว้ในโพสต์นี้ แต่เวอร์ชั่นที่ไม่ได้รับการยกย่องใน TIO มีทุกอย่างที่ฉันจะรวมไว้ในที่เดียวซึ่งมีการจัดรูปแบบที่ดีกว่าที่ฉันสามารถจัดการได้ ดู.

อาจมีการตีกอล์ฟที่ต้องทำคำตอบ Brain-Flak ก่อนหน้าของฉันต้องผ่านการแก้ไขมากมาย แต่หวังว่าบทเรียนที่เรียนรู้ที่นั่นจะทำให้จุดเริ่มต้นดีขึ้น


0

Python 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

ลองออนไลน์!

คำเตือน: ผลลัพธ์ที่นำเสนอเป็นหนึ่งใน liners สำหรับการอ่าน ผลลัพธ์รหัสมีช่องว่างและการแยกบรรทัดตามที่ร้องขอโดยความท้าทาย

ผลลัพธ์สำหรับ 10red 20blue 30black 40white:

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

Ouput สำหรับการไล่ระดับสีฟ้า:

[('#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

Java (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 กอล์ฟเว้นแต่จะใช้งานได้ใน Java รุ่นเก่าฉันไม่ต้องการ

ตัวอย่าง: Lambdas ไม่ทำงานใน Java รุ่นที่มากกว่าที่ทำงานอยู่


" โปรดอย่าโพสต์คำแนะนำเฉพาะของกอล์ฟ 1.8 ยกเว้นว่ามันจะทำงานใน Java รุ่นเก่าฉันไม่ต้องการ " หมดความอยากรู้: ทำไม Java 4 ในขณะที่ Java 10 มีอยู่แล้ว?
Kevin Cruijssen

นักกอล์ฟบางคนที่ควรใช้งานใน Java 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 bytes )
Kevin Cruijssen

@KevinCruijssen เพราะ 1.8 เป็นเนื้อหาที่ปล่อยที่ใหญ่ที่สุดในแง่ของรหัสที่จะไม่ทำงานกับรุ่นก่อนหน้า รีลีสอื่น ๆ ส่วนใหญ่เป็นการแก้ไขและการเพิ่มคลาสให้กับ JRE 1.8 เป็นอย่างน้อยเข้ากันได้กับ JRE ก่อนหน้านี้
Magic Octopus Urn

@KevinCruijssen x.toHexIntegerฉลาดกว่าการนำเข้าแบบคงที่
Magic Octopus Urn

ไม่ใช่ Java 3 เพราะ Java 3 ... จริง ๆ ... มีทางลัดน้อยมาก ...
Magic Octopus Urn

0

SmileBASIC ขนาด 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

รูปภาพได้รับเป็นอาร์เรย์ของค่าสี ARGB 32 บิต (ค่าอัลฟาถูกตัดแต่งเมื่อตัวเลขถูกแปลงเป็นสตริงเลขฐานสิบหก 6 หลัก)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.