নিকটতম তিন-অঙ্কের হেক্স রঙটি সন্ধান করুন


23

সিএসএসে, রঙগুলি একটি "হেক্স ট্রিপলেট" দ্বারা নির্দিষ্ট করা যেতে পারে - একটি তিন বাইট (ছয় অঙ্ক) হেক্সাডেসিমাল সংখ্যা যেখানে প্রতিটি বাইট রঙের লাল, সবুজ, বা নীল উপাদান উপস্থাপন করে। উদাহরণস্বরূপ, #FF0000সম্পূর্ণ লাল, এবং এর সমতুল্য rgb(255, 0, 0)

রঙগুলি শর্টহ্যান্ড স্বরলিপি দ্বারাও উপস্থাপন করা যেতে পারে যা তিনটি হেক্সাডেসিমাল অঙ্ক ব্যবহার করে। শর্টহ্যান্ড প্রতিটি অঙ্কের নকল করে ছয় ডিজিট ফর্মে প্রসারিত করে। উদাহরণস্বরূপ, #ABCহয়ে যায় #AABBCC

যেহেতু হেক্স শর্টহ্যান্ডে অল্প সংখ্যক সংখ্যা রয়েছে তাই কম রঙের প্রতিনিধিত্ব করা যায়।

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ছয় অঙ্কের হেক্সাডেসিমাল রঙের কোড নেয় এবং নিকটতম তিন-অঙ্কের রঙের কোডটি আউটপুট করে।

এখানে একটি উদাহরণ:

  • ইনপুট হেক্স কোড: # 28a086
  • লাল উপাদান
    • 0x28 = 40 (দশমিক)
    • 0x22 = 34
    • 0x33 = 51
    • 0x22 কাছাকাছি, সুতরাং সংক্ষিপ্ত বর্ণ কোডটির প্রথম সংখ্যা 2 হয়
  • সবুজ উপাদান
    • 0xa0 = 160
    • 0x99 = 153
    • 0xaa = 170
    • 0x99 কাছাকাছি, তাই দ্বিতীয় সংখ্যা 9
  • নীল উপাদান
    • 0x86 = 134
    • 0x77 = 119
    • 0x88 = 136
    • 0x88 কাছাকাছি, তৃতীয় সংখ্যা 8 হয়
  • সংক্ষিপ্ত রঙের কোডটি # 298 (যা প্রসারিত # 229988)

আপনার প্রোগ্রাম বা ফাংশনটি অবশ্যই ছয় অঙ্কের হেক্সাডেসিমাল কালার কোডটি ইনপুট হিসাবে গ্রহণ করবে #এবং তিন অঙ্কের রঙ কোড প্রেরণ করে আউটপুট দিতে হবে #

উদাহরণ

  • # FF0000 → # F00
  • # 00FF00 → # 0F0
  • # ডি 913 সি 4 → # ডি 1 সি
  • # C0DD39 → # বিডি 3
  • # 28A086 → # 298
  • # C0CF6F BC # বিসি 7

স্কোরিং

এটি একটি কোড-গল্ফ চ্যালেঞ্জ, তাই আপনার ভাষায় সবচেয়ে সংক্ষিপ্ত উত্তর! স্ট্যান্ডার্ড বিধি প্রয়োগ।


1
"সম্পূর্ণ রঙের কোডের প্রতিটি উপাদান এবং শর্টহ্যান্ড রঙের কোডের সাথে সম্পর্কিত উপাদানগুলির মধ্যে পার্থক্য যুক্ত করে" - এই অংশটি বিভ্রান্তিকর। কোথাও কোন যোগ নেই, তাই না?
গ্রজেগোর্জ ওলেডজকি

3
মনে রাখবেন যে আপনি যদি বিকল্প অঙ্কগুলি কেবল বাদ দেন তবে প্রতিটি সংক্ষিপ্ত রঙ সমান সংখ্যক পূর্ণ রঙের প্রতিনিধিত্ব করে, যাতে এটি নিকটতম রঙের চেয়ে ভাল উপস্থাপনা হিসাবে বিবেচনা করা যেতে পারে।
নিল

6
এটি স্যান্ডবক্সে দেখেছি তবে উল্লেখ করতে ভুলে গেছি যে আমি #চ্যালেঞ্জের সাথে কিছু যুক্ত করার প্রয়োজন বলে মনে করি না।
শেগি

2
আমরা কি ছোট হাতের আউটপুট দিতে পারি?
আর্নৌল্ড

2
0x22 হ'ল 34, 30 নয়
ক্রুগা

উত্তর:


4

জাভাস্ক্রিপ্ট (ES6), 55 বাইট

s=>s.replace(/\w./g,x=>(('0x'+x)/17+.5|0).toString(16))

এটি অনলাইন চেষ্টা করুন!


টাস্টস্ট্রিংয়ের দুর্দান্ত ব্যবহার! আমি বুঝতে পারি নি যে এটি একটি রেডিক্স পরম নিতে পারে।
wrymug

8

05 এ বি 1 ই , 13 বাইট

ćs2ôH8+17÷hJ«

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

ćs2ôH8+17÷hJ« | string, S   e.g. stack: "#B23F08"
ć             | decapitate              "B23F08", "#"
 s            | swap                    "#", "B23F08"
  2           | two                     "#", "B23F08", 2
   ô          | chuncks                 "#", ["B2", "3F", "08"]
    H         | from hexadecimal        "#", [178, 63, 8]
     8        | eight                   "#", [178, 63, 8], 8
      +       | add                     "#", [186, 71, 16]
       17     | seventeen               "#", [186, 71, 16], 17
         ÷    | integer divide          "#", [10, 4, 0]
          h   | to hexadecimal          "#", ["A", "4", "0"]
           J  | join                    "#", "A40"
            « | concatenate             "#A40"
              | print top of stack

1
আমি এন 05 এএবি 1 ই উত্তরটি করার বিষয়েও ভেবেছিলাম - যদি আমি কিছু মিস না করি তবে জেলির হেক্সাডেসিমাল রূপান্তরটি বেশ অনেকগুলি বাইট নেয়!
নিক কেনেডি

1
হ্যাঁ, জেলিতে কোনও পাঠ্য ভিত্তিক রূপান্তরগুলির জন্য অন্তর্নির্মিত নেই।
জোনাথন অ্যালান

1
" ćডিক্যাপিটেট " এটি বর্ণনা করার অন্য একটি উপায়, হ'ল : ডি ভাল উত্তর যদিও, আমার কাছ থেকে +1।
কেভিন ক্রুইজসেন

6

Japt , 16 বাইট

r"%w"²_n16_r17Ãg

এটি ব্যবহার করে দেখুন বা সমস্ত পরীক্ষার কেস চালান

r"%w"²_n16_r17Ãg     :Implicit input of string
r                    :Replace
 "%w"                :RegEx /\w/g
     ²               :Duplicate, giving /\w\w/g
      _              :Pass each match through a function
       n16           :  Convert to decimal
          _          :  Pass through the following function, and convert back to hex
           r17       :    Round to the nearest multiple of 17
              Ã      :  End function
               g     :  Get first character

5

8088 বিধানসভা, আইবিএম পিসি ডস, 59 58 বাইট

অ-জমায়েত তালিকা:

BE 0082     MOV  SI, 82H    ; SI to begining of input string 
AC          LODSB           ; load first '#' char into AL 
B4 0E       MOV  AH, 0EH    ; BIOS display char function  
CD 10       INT  10H        ; call BIOS 
B3 11       MOV  BL, 17     ; set up for divide by 17 
B9 0304     MOV  CX, 0304H  ; hex byte loop counter (CH=3), shift counter (CL=4) 
        LOOP_BYTE: 
AD          LODSW           ; load next two ASCII hex chars into AX 
B7 02       MOV  BH, 2      ; hex chars loop counter
        LOOP_ALPHA:
2C 30       SUB  AL, '0'    ; convert from ASCII 
3C 0A       CMP  AL, 10     ; is digit > 10 (A-F)? 
7C 02       JL   NOT_ALPHA  ; if not, jump to next char
2C 07       SUB  AL, 7      ; ASCII adjust alpha char to binary 
        NOT_ALPHA: 
86 E0       XCHG AH, AL     ; swap first and second chars 
FE CF       DEC  BH         ; decrement loop counter
75 F2       JNZ  LOOP_ALPHA ; loop to next hex char
D2 E0       SHL  AL, CL     ; shift low nibble to high nibble 
02 C4       ADD  AL, AH     ; add first and second nibbles
32 E4       XOR  AH, AH     ; clear AH for add/division
05 0008     ADD  AX, 8      ; add 0.5 (8/16) to round (with overflow) 
F6 F3       DIV  BL         ; divide by 17 
3C 0A       CMP  AL, 10     ; is digit > 10? 
7C 02       JL   DISP_CHAR  ; if not, jump to display digit 
04 07       ADD  AL, 7      ; binary adjust alpha char to ASCII 
        DISP_CHAR: 
04 30       ADD  AL, '0'    ; convert to ASCII 
B4 0E       MOV  AH, 0EH    ; BIOS display char function  
CD 10       INT  10H        ; call BIOS 
FE CD       DEC  CH         ; decrement loop counter 
75 D4       JNZ  LOOP_BYTE  ; loop to next hex byte
C3          RET             ; return to DOS 

স্বতন্ত্র পিসি ডস কার্যকর। ইনপুটটি কমান্ড লাইনের মাধ্যমে হয়, আউটপুট কনসোল করতে হয়।

কোড দৈর্ঘ্যের বেশিরভাগটি প্রয়োজনীয় হেক্স স্ট্রিং I / O কে বাইটে রূপান্তর করতে পরিচালনা করছে, যেহেতু ডস / এক্স 86 মেশিন কোডটির জন্য কোনও বিল্ট-ইন নেই।

ইনপুট / আউটপুট:

এখানে চিত্র বর্ণনা লিখুন

HEXCLR.COM বা xxdহেক্সডাম্প ডাউনলোড এবং পরীক্ষা করুন :

0000000: be82 00ac b40e cd10 b311 b904 03ad b702  ................
0000010: 2c30 3c0a 7c02 2c07 86e0 fecf 75f2 d2e0  ,0<.|.,.....u...
0000020: 02c4 32e4 0508 00f6 f33c 0a7c 0204 0704  ..2......<.|....
0000030: 30b4 0ecd 10fe cd75 d4c3                 0......u..

3

রেটিনা 0.8.2 , 88 বাইট

(\w)(.)
$1,$2;
[A-F]
1$&
T`L`d
\d+
$*
+`1,
,16$*
,
8$*
(1{17})*1*;
$#1;
T`d`L`1\d
B\B|;

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

(\w)(.)
$1,$2;

হেক্স সংখ্যাগুলি জুড়ুন।

[A-F]
1$&
T`L`d

প্রতিটি অঙ্ককে পৃথক দশমিক রূপান্তর করুন।

\d+
$*

প্রতিটি দশমিক অঙ্ককে অ্যানারিতে রূপান্তর করুন।

+`1,
,16$*

অঙ্কের জোড়ার হেক্সাডেসিমাল রূপান্তর শেষ করুন।

,
8$*
(1{17})*1*;
$#1;

8 যোগ করুন এবং 17 দ্বারা ভাগ করুন।

T`d`L`1\d
B\B|;

হেক্সাডেসিমলে ফিরে রূপান্তর করুন।



3

পাইথন 3 , 72 70 68 বাইট

lambda x:'#'+''.join(f"{(int(x[i:i+2],16)+8)//17:X}"for i in(1,3,5))

এটি অনলাইন চেষ্টা করুন!

এটি গ্রজেগোর্জ ওলেডজকিসের আসল উত্তরের একটি বন্দর , যা আমি তাকে গল্ফ করতে সাহায্য করেছি।

পাইথন 3 এর দুটি বৈশিষ্ট্য আমাদের বাইটগুলি সংরক্ষণ করতে সহায়তা করে:

  • ডিফল্টরূপে ভাসমান পয়েন্ট বিভাগ
  • ফর্ম্যাট স্ট্রিং আক্ষরিক

জোনাথন অ্যালানকে -২ বাইট থেক্স


2
(int(x[i:i+2],16)+8)//172 টি সঞ্চয়
জনাথন অ্যালান



2

ওল্ফ্রাম ভাষা (গণিত) , 63 48 বাইট

"#"<>Round[15List@@RGBColor@#]~IntegerString~16&

এটি অনলাইন চেষ্টা করুন!

-15 বাইট ধন্যবাদ অ্যাটিনেট ! সিনট্যাক্সের StringJoinসাথে প্রতিস্থাপন <>এবং সংক্ষেপণ।

  1. RGBColor@#RGBColor[r, g, b]০.১ এর পরিসরে তিনটি ভাসমান-পয়েন্ট আর্গুমেন্টের সাহায্যে ইনপুট স্ট্রিংটিকে ফর্মের রঙে রূপান্তরিত করে ।

  2. Round[15 List @@ %]তিনটি আর্গুমেন্টের তালিকাটিকে 15 দ্বারা গুণিত করে এবং তাদের নিকটতম পূর্ণসংখ্যায় বৃত্তাকার করে। আমাদের কাছে এখন তিনটি পছন্দসই হেক্সাডেসিমাল অঙ্কের সাথে সম্পর্কিত তিনটি পূর্ণসংখ্যার মানগুলির একটি তালিকা রয়েছে।

  3. %~IntegerString~16 তিনটি পূর্ণসংখ্যার এই তালিকাটিকে প্রতিটি চরিত্রের তিনটি হেক্সাডেসিমাল স্ট্রিংয়ের তালিকায় রূপান্তর করে।

  4. "#"<>%একটি #চরিত্র প্রস্তুত করে এবং এই সমস্ত চরিত্রের সাথে একত্রিত হয়।



2

ম্যাথগল্ফ , 19 12 বাইট

╞2/¢8+F/¢'#▌

অক্ষর-তালিকা হিসাবে আউটপুট। যদি এটি অনুমোদিত না হয় তবে একটি অতিরিক্ত ট্রেলিংy হয় তবে একটি স্ট্রিংয়ে অক্ষর-তালিকায় যোগ দিতে যুক্ত করতে হবে।

-7 বাইটস @ ম্যাক্সবকে ধন্যবাদ , যেহেতু আমি একটি বিল্টিন ( 2ô_2<\1>]টু 2/) এর অতীত দেখলাম ।

এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা:

              # Remove the first character from the (implicit) input-string
 2/            # Split the string into parts of size 2
   ¢           # Convert each part from hexadecimal to integer
    8+         # Add 8 to each integer
      F/       # Integer-divide each integer by 17
        ¢      # Then convert back from integer to hexadecimal
         '#▌  '# Prepend '#' in front of the list
               # (which is output implicitly as result)

2

রুবি (2.5.3), 45 , 44 , 42 বাইট

->a{a.gsub(/\w./){|b|"%X"%((8+b.hex)/17)}}

সম্পাদনা: একটি বাইট সংরক্ষিত হয়েছে কারণ রেইগেক্সে দ্বিতীয় চরিত্রের জন্য আমাদের কোনও অক্ষর গোষ্ঠীর প্রয়োজন নেই (নীল এর উত্তর দ্বারা অনুপ্রাণিত)

সম্পাদনা 2: 2 বাইট সংরক্ষণ করা হয়েছে কারণ ড্যাশ রকেট ল্যাম্বডা সিনট্যাক্সের পক্ষে আর্গুমেন্টের চারপাশে বন্ধনী প্রয়োজন নেই


2
স্টিডিনে ইনপুট নিয়ে এবং ব্লকের ভিতরে যুক্তির পরিবর্তে পতাকা এবং অন্য 2 ব্যবহার করে-p আপনি 7 বাইট সংরক্ষণ করতে পারেন $&: tio.run/##KypNqvz/…
জর্ডান

1
@ জর্দান ধন্যবাদ! আমি তাদের কারও সম্পর্কেও জানতাম না তাই ভবিষ্যতের গল্ফিংয়ের চেষ্টার জন্য এটি আসল সহায়ক
ডেভমঙ্গুজ

1

পাইথন 2 ( 109 101 97 85 83 74 বাইট)

lambda x:'#'+''.join(hex(int(int(x[i:i+2],16)/17.+.5))[2:]for i in[1,3,5])

"নিকটতম দূরত্ব" বিভাগ দ্বারা 17 দ্বারা পরিচালিত হয় এবং গোল হয়।

উন্নতি:

এর int(...+.5)পরিবর্তে ট্রিকটি ব্যবহার করে -8 বাইটint(round(...))

পরিবর্তে তালিকা বোধগম্যতা ব্যবহার করে -4 বাইট map()

#আউটপুটটিতে হার্ডকোডিং করে -1 বাইট (ধন্যবাদ @ মোভ্যাটিকা)

re.findall("..",...)সুস্পষ্ট স্ট্রিং স্প্লাইসিংয়ের পক্ষে না ব্যবহার করে -10 বাইট

তালিকা অনুধাবন না করে -2 বাইট, তবে একটি ইনলাইন জেনারেটর এক্সপ্রেশন join(ধন্যবাদ @ মোভ্যাটিকা)

-1 বাইটটি :7নীল অংশের জন্য শেষটি স্প্লিক না করে

বর্ণের তুলনায় -9 বাইটগুলি আরও ভাল পুনরাবৃত্তি দ্বারা - যেমন সূচকগুলির উপর পুনরাবৃত্তি, প্রকৃত অক্ষর নয় (ধন্যবাদ @ মোভাটিকা)


1
@ মোভাত্তিকা - আপনি ঠিক বলেছেন, এটি যুক্ত করেছেন
গ্রেজগোর্জ ওলেদজকি

1
এর '#'পরিবর্তে হার্ডকোডিং করে 1 বাইট সংরক্ষণ করুন x[0]
মোভাটিকা

1
আপনি ভিতরে ভিতরে তালিকা বোধগম্যতা এড়াতে পারেন ''.join(...), কারণ এটি একটি জেনারেটর এক্সপ্রেশনও পরিচালনা করে। কেবলমাত্র অপসারণ করুন []এবং আরও 2 টি বাইট সংরক্ষণ করুন :)
মোভাটিকা

1
ধন্যবাদ! range(1,6,2)এর সাথে আরও ভাল[1,3,5]
গ্রেজগোর্জ ওলেদস্কি

1
জনাথন অ্যালেন এমজেড পিজনথন 3 সংস্করণে গোল করার জন্য একটি আলাদা কৌশল প্রস্তাব করেছিলেন। এটি এখানেও প্রযোজ্য: lambda x:'#'+''.join(hex((int(x[i:i+2],16)+8)/17)[2:]for i in[1,3,5])-> 69 বাইট
মুভ্যাটিকা

1

পার্ল 5 -p , 35 34 বাইট

@ ননহ্নহফ একটি বাইট সংরক্ষণ করেছেন

s|\w.|sprintf'%X',.5+(hex$&)/17|ge

এটি অনলাইন চেষ্টা করুন!

এসটিডিআইএন থেকে পাওয়া, প্রতিটি জোড় আইটেম প্রতিস্থাপন করে #যা নিকটতম খুঁজে বের করার জন্য 17 পদ্ধতি দ্বারা বিভাগটি ব্যবহার করে উপযুক্ত একক চরিত্রের সাথে নেই এবং ফলাফলটি স্পষ্টভাবে ফলাফলকে আউটপুট করে ( -p)।


1

পাইথন 3, 67 বাইট

f=lambda x:(f(x[:-2])if x[3:]else"#")+f'{(int(x[-2:],16)+8)//17:X}'

স্বাগত. কোনও অনলাইন অনুবাদক, যেমন টিআইও যেখানে আমরা আপনার কোড চালাতে পারি তার সাথে একটি বর্ণনা, ব্যাখ্যা বা লিঙ্ক যুক্ত করার বিষয়ে বিবেচনা করুন । কোড-কেবলমাত্র উত্তরগুলি স্ব-মানের হিসাবে স্বয়ংক্রিয়ভাবে পতাকাঙ্কিত হয়। উদাহরণের জন্য অন্যান্য বিদ্যমান উত্তর দেখুন।
mbomb007

0

লাল , 103 বাইট

func[c][r: to 1 c to #1 rejoin reverse collect[loop 3[keep to-hex/size r % 256 + 8 / 17 1 r: r / 256]]]

এটি অনলাইন চেষ্টা করুন!

দেখা গেল যে রেডের বর্তমান লিনাক্স সংস্করণটির কোনও hex-to-rgbকার্যকারিতা নেই, এই কারণেই আমি বেস রূপান্তরটি "ম্যানুয়ালি" করি :)

এটি উইন্ডোতে রেড জিইউআই কনসোলে দুর্দান্ত কাজ করে:

লাল , 94 বাইট

f: func[c][r: hex-to-rgb c to #1 rejoin collect[repeat n 3[keep to-hex/size r/:n + 8 / 17 1]]]


0

কাঠকয়লা , 22 বাইট

#F⪪⮌…⮌S⁶¦²⍘÷⁺⁸⍘ι¹⁶¦¹⁷φ

এটি অনলাইন চেষ্টা করুন! লিঙ্কটি কোডটির ভার্জোজ সংস্করণ। ব্যাখ্যা:

#                       Literal `#`
      S                 Input string
     ⮌                  Reversed
    …  ⁶                Truncated to length 6
   ⮌                    Reversed
  ⪪      ²              Split into pairs of characters
 F                      Loop over each pair
               ι        Current pair
              ⍘ ¹⁶      Convert from base 16
            ⁺⁸          Add 8
           ÷       ¹⁷   Integer divide by 17
          ⍘          φ  Convert to large base
                        Implicitly print


0

পাইথ , 20 বাইট

+\#sm.H/+8id16 17c3t

এখানে চেষ্টা করুন।

দ্রষ্টব্য: যদি উপরের লিঙ্কটি একটি উত্থাপন করে তবে পরিবর্তে এখানেImportError যান ; "অফিসিয়াল" পৃষ্ঠায় বর্তমানে একটি বাগ রয়েছে এবং এটি মাল্টেসেনের একটি অস্থায়ী সমাধান । এই লিঙ্কটি অফিসিয়ালটি ঠিক হওয়ার পরে কাজ করা বন্ধ করতে পারে।


0

ফোরথ (গফার্থ) , 87 বাইট

: f d>s 1- hex ." #"3. do 2 + dup 2 s>number d>s 17 /mod swap 8 > - 1 .r loop decimal ;

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

  1. ইনপুট ( #) এর প্রথম অক্ষর উপেক্ষা / ছাঁটাই করুন
  2. হেক্সাডেসিমাল মোডে দোভাষী সেট করুন
  3. আউটপুট #
  4. প্রতিটি লুপে 3 বার লুপ করুন:
    1. স্ট্রিং শুরুর ঠিকানায় 2 যোগ করুন
    2. স্ট্রিংয়ের পরবর্তী 2 টি অক্ষরকে একটি হেক্সাডেসিমাল সংখ্যায় রূপান্তর করুন
    3. 17 দ্বারা বিভাগ এবং মডিউল ব্যবহার করুন (0x11সংক্ষিপ্ত উপাদানটির নিকটতম মান পেতে )
    4. পূর্ববর্তী স্থান ছাড়াই আউটপুট
  5. ডেসিমাল মোডে দোভাষী সেট করুন

কোড ব্যাখ্যা

: f                    \ start a new word definition
  d>s                  \ convert double-length int to single-length (cheaper drop)
  1- hex               \ subtract 1 from string address, set current base to 10
  ." #"                \ output #
  3. do                \ start a loop from 0 to 2 (inclusive)
    2 + dup            \ add 2 to string starting address and duplicate
    2 s>number         \ parse the next 2 characters to a hexadecimal value
    d>s                \ convert result to single-length value
    17 / mod           \ get the quotient and remainder of dividing by 17
    swap               \ move the remainder to the top of the stack
    8 > -              \ if remainder is greater than 8, add 1 to quotient
    1 .r               \ output result (as hexadecimal) with no space
  loop                 \ end the loop
  decimal              \ set interpreter back to base 10 (decimal)
;                      \ end the word definition


0

K4 , 39 বাইট

সমাধান:

"#",{x@_1%17%8+16/:x?y}[.Q.nA]@/:3 2#1_

ব্যাখ্যা:

এই উত্তরগুলির অনেকের মতো একই কৌশল ব্যবহার করে (যেমন 8 যোগ করুন, 17 দ্বারা ভাগ করুন):

"#",{x@_1%17%8+16/:x?y}[.Q.nA]@/:3 2#1_ / the solution
                                     1_ / drop first character
                                 3 2#   / reshape as 3x2 (e.g. "FF", "00", "00")
                              @/:       / apply each-right to left lambda
    {                 }[     ]          / lambda with first argument populated
                        .Q.nA           / "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
                   x?y                  / get index of hex character, e.g. "AA" => 10 10
               16/:                     / convert from base-16
             8+                         / add 8
          17%                           / 17 divided by...
        1%                              / 1 divided by...
       _                                / floor
     x@                                 / index into .Q.nA to get hex character
"#",                                    / prepend "#"

অতিরিক্ত:

  • "#",{x@*16\:a?&/a:abs(17*!16)-16/:x?y}[.Q.nA]@/:3 2#1_- 54 বাইট জন্য আমার আসল ধারণা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.