พิมพ์ตาราง× f × f


46

งานของคุณคือพิมพ์ตารางเวลาฐานสิบหก:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 
00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e 
00 03 06 09 0c 0f 12 15 18 1b 1e 21 24 27 2a 2d 
00 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c 
00 05 0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b 
00 06 0c 12 18 1e 24 2a 30 36 3c 42 48 4e 54 5a 
00 07 0e 15 1c 23 2a 31 38 3f 46 4d 54 5b 62 69 
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78 
00 09 12 1b 24 2d 36 3f 48 51 5a 63 6c 75 7e 87 
00 0a 14 1e 28 32 3c 46 50 5a 64 6e 78 82 8c 96 
00 0b 16 21 2c 37 42 4d 58 63 6e 79 84 8f 9a a5 
00 0c 18 24 30 3c 48 54 60 6c 78 84 90 9c a8 b4 
00 0d 1a 27 34 41 4e 5b 68 75 82 8f 9c a9 b6 c3 
00 0e 1c 2a 38 46 54 62 70 7e 8c 9a a8 b6 c4 d2 
00 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1 

ข้อมูลจำเพาะ:

  • คุณสามารถพิมพ์ค่าฐานสิบหกเป็นตัวพิมพ์ใหญ่
  • บรรทัดของคุณสามารถลงท้ายด้วยช่องว่างต่อท้ายและผลลัพธ์ของโปรแกรมสามารถจบลงด้วยการขึ้นบรรทัดใหม่
  • ค่าฐานสิบหกทุกค่าจะต้องมีค่าเป็น 2 หลัก0ตามที่แสดง

นี่คือดังนั้นคำตอบที่สั้นที่สุด (วัดเป็นไบต์) ชนะ




4
ตารางการคูณจะไม่รวมปัจจัย 0 ... :-)
Luis Mendo เมื่อ

28
@ Luis Mendo: เด็กนักเรียนจะสามารถจดจำได้ว่า 0 ครั้งต่อจำนวนคืออะไร? : P
milk

1
แย่ฉันอยากจะแก้ปัญหาโดยใช้ hexdump แต่กลุ่มนั้นเป็นบล็อก 4 ไบต์ :(
HyperNeutrino

คำตอบ:



14

Python 2 , 60 ไบต์

for n in range(256):r=n%16;print'%02x%s'%(n/16*r,r/15*'\n'),

ลองออนไลน์!

มันทำงานอย่างไร

สำหรับจำนวนเต็มทั้งหมดnจาก0ถึง255เราทำดังต่อไปนี้

  • เราคำนวณ(n / 16) × (n% 16)

    ในช่วงของnทั้งn / 16และn% 16ครอบคลุมช่วง0, …, 15อย่างอิสระดังนั้นสิ่งนี้จะสร้างรายการทั้งหมดของตารางการคูณ

  • เราซ้ำอักขระ linefeed ( '\n') (n% 16) / 15ครั้งซึ่งส่งผลให้มีอักขระเหมือนกันเมื่อn% 16 = 15และสตริงว่าง

  • สตริงการจัดรูปแบบ'%02x%s'เปลี่ยนผลลัพธ์ก่อนหน้านี้สองรายการให้เป็นสตริงเดียวอันดับแรกการแทนค่าจำนวนเต็มฐานสิบหกตัวเล็กตัวแรกการเว้นศูนย์ให้เป็น (อย่างน้อย) สองหลักจากนั้นสตริงที่สร้างขึ้น

  • ในที่สุดprint...,พิมพ์ผลลัพธ์ที่จัดรูปแบบ

    เนื่องจากคำสั่งพิมพ์ลงท้ายด้วยเครื่องหมายจุลภาค Python จะไม่ต่อท้ายรายการป้อนบรรทัด นอกจากนี้ก่อนพิมพ์สตริงถัดไป Python จะเติมช่องว่างให้เว้นเสียแต่ว่าเราจะอยู่ที่จุดเริ่มต้นของบรรทัดใหม่ ( แหล่งที่มา ) สิ่งนี้เกิดขึ้นกับการจัดรูปแบบผลลัพธ์ที่เราต้องการ


14

เยลลี่ 12 ไบต์

⁴Ḷ×þ`d⁴‘ịØhG

ลองออนไลน์!

มันทำงานอย่างไร

⁴Ḷ×þ`d⁴‘ịØhG  Main link. No arguments.

⁴             Set the return value to 16.
 Ḷ            Unlength; yield [0, ..., 15].
  ×þ`         Build the multiplication table of [0, ..., 15] and itself.
     d⁴       Divmod 16; yield [p : 16, p % 16] for each product p.
       ‘      Increment quotients and remainders (1-based indexing).
        ịØh   Index into the lowercase hexadecimal alphabet.
           G  Grid; join columns by spaces, rows by newlines.

นั่นคือ 12 ตัวอักษรไม่ใช่ไบต์ ตามคำถามคำตอบเป็นวัดในไบต์และคำตอบของคุณคือ 25 ไบต์และ 12 ตัวอักษร อย่างน้อยตามเว็บไซต์นี้mothereff.in/byte-counter
Ciprum

18
ใน UTF-8 แน่นอน อย่างไรก็ตาม Jelly ใช้SBCSดังนั้นอักขระแต่ละตัวสามารถเข้ารหัสโดยใช้ไบต์เดียว
เดนนิส

11

R, 42 ไบต์

as.hexmode(sapply(0:15,function(x)x*0:15))

พิมพ์สิ่งต่อไปนี้:

      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16]
 [1,] "00" "00" "00" "00" "00" "00" "00" "00" "00" "00"  "00"  "00"  "00"  "00"  "00"  "00" 
 [2,] "00" "01" "02" "03" "04" "05" "06" "07" "08" "09"  "0a"  "0b"  "0c"  "0d"  "0e"  "0f" 
 [3,] "00" "02" "04" "06" "08" "0a" "0c" "0e" "10" "12"  "14"  "16"  "18"  "1a"  "1c"  "1e" 
 [4,] "00" "03" "06" "09" "0c" "0f" "12" "15" "18" "1b"  "1e"  "21"  "24"  "27"  "2a"  "2d" 
 [5,] "00" "04" "08" "0c" "10" "14" "18" "1c" "20" "24"  "28"  "2c"  "30"  "34"  "38"  "3c" 
 [6,] "00" "05" "0a" "0f" "14" "19" "1e" "23" "28" "2d"  "32"  "37"  "3c"  "41"  "46"  "4b" 
 [7,] "00" "06" "0c" "12" "18" "1e" "24" "2a" "30" "36"  "3c"  "42"  "48"  "4e"  "54"  "5a" 
 [8,] "00" "07" "0e" "15" "1c" "23" "2a" "31" "38" "3f"  "46"  "4d"  "54"  "5b"  "62"  "69" 
 [9,] "00" "08" "10" "18" "20" "28" "30" "38" "40" "48"  "50"  "58"  "60"  "68"  "70"  "78" 
[10,] "00" "09" "12" "1b" "24" "2d" "36" "3f" "48" "51"  "5a"  "63"  "6c"  "75"  "7e"  "87" 
[11,] "00" "0a" "14" "1e" "28" "32" "3c" "46" "50" "5a"  "64"  "6e"  "78"  "82"  "8c"  "96" 
[12,] "00" "0b" "16" "21" "2c" "37" "42" "4d" "58" "63"  "6e"  "79"  "84"  "8f"  "9a"  "a5" 
[13,] "00" "0c" "18" "24" "30" "3c" "48" "54" "60" "6c"  "78"  "84"  "90"  "9c"  "a8"  "b4" 
[14,] "00" "0d" "1a" "27" "34" "41" "4e" "5b" "68" "75"  "82"  "8f"  "9c"  "a9"  "b6"  "c3" 
[15,] "00" "0e" "1c" "2a" "38" "46" "54" "62" "70" "7e"  "8c"  "9a"  "a8"  "b6"  "c4"  "d2" 
[16,] "00" "0f" "1e" "2d" "3c" "4b" "5a" "69" "78" "87"  "96"  "a5"  "b4"  "c3"  "d2"  "e1" 

1
วิธีการเกี่ยวกับ: as.hexmode (ด้านนอก (0: 15,0: 15, `*`))
ixodesbeta

2
หรือดีกว่ายังas.hexmode(0:15%o%0:15)
Giuseppe

10

Bash + coreutils, 40

  • บันทึก 1 ไบต์ด้วย @MitchellSpector
printf %02x\  $[{0..15}*{0..15}]|fmt -52
  • ทุบตีขยายขยายรั้งก่อนที่จะขยายการทางคณิตศาสตร์เพื่อสตริงขยายตัวแรกที่จะ$[{0..15}*{0..15}]$[0*0] $[0*1] $[0*2] ... $[0*15] $[1*0] ... $[15*15]
  • ชุดของการขยายเลขคณิตข้างต้นจากนั้นขยายไปยังเนื้อหาตารางตัวเลขเป็นจำนวนเต็มทศนิยม
  • printf '%02x 'เป็นการแสดงออกถึงรายการของจำนวนเต็มทศนิยมเป็นฐานสิบหกนี้ศูนย์เบาะสองตัวละคร
  • fmt -52จัดรูปแบบจำนวนเต็มเป็นเส้นกว้าง 47 อักขระเพื่อให้การจัดตำแหน่งที่ต้องการ หมายเหตุfmtพยายามทำให้อักขระเป้าหมายของบรรทัดกว้าง โดยค่าเริ่มต้นนี้จะสั้นกว่าความกว้าง 7% 52 * 93% -1 (สำหรับบรรทัดใหม่) = 47

ลองมันออนไลน์


1
ทางออกที่ดี ดูเหมือนว่าคุณสามารถโกนหนึ่งไบต์โดยใช้ fmt -52 (โดยไม่ใช้ w)
Mitchell Spector

ดี! BTW ใน zsh มันอาจจะเป็น{0..15}\*{0..15}ซึ่งเป็น 2 ไบต์สั้น :)
ბიმო

5

C # 6, 98 ไบต์

()=>{int i,j;for(i=-1;++i<16;)for(j=-1;++j<16;)System.Console.Write($"{i*j:x2} {j<15?"":"\n"}");};

repl.it การสาธิต

มาตรฐานซ้อนกัน for-loop เคล็ดลับคือพิมพ์ newline เมื่อ j> = 15


+1 แต่ดูเหมือนว่า repl.it ไม่ชอบ$""
Metoniem

@Metoniem tio.run/#ยอดเยี่ยมมาก
HyperNeutrino

4

JavaScript (ES6), 79 78 77 ไบต์

f=(i=256)=>i?f(--i)+(i%16*(i>>4)+256).toString(16).slice(1)+`
 `[~i&15&&1]:``

document.write('<pre>'+f())

แก้ไข: บันทึก 1 ไบต์ด้วย @ETHproductions และอีกหนึ่งไบต์ต้องขอบคุณ @YairRand


@ETHproductions Bah ที่ถูกทิ้งมาจากตอนที่ผมกำลังทำอยู่.slice(-2) ('0'+toString(16))ฉันคิดว่าฉันได้ลองไป' \n'[+!(~i&15)]แล้วแต่ความยาวเท่ากัน
Neil

@ETHproductions ฉันบันทึกได้ 1 ไบต์ ...
Neil

คุณสามารถบันทึกไบต์โดยการแทนที่ด้วย(~i&15?' ':'\n') ' \n'[~i&15&&1]
Yair Rand

@YairRand ฉันคิดว่าคุณหมายถึง'\n 'แต่ฉันได้รับความคิดขอบคุณ!
Neil


3

PowerShellขนาด 46 ไบต์

0..15|%{$i=$_;"$(0..15|%{"{0:X2}"-f($i*$_)})"}

ลองออนไลน์!

วนรอบจาก0เป็น15ตั้งค่า$iเป็นหมายเลขปัจจุบันนั้นจากนั้นวนซ้ำอีกครั้ง ใช้-fโอเปอเรเตอร์ ormat พร้อมX2ระบุชื่อเพื่อระบุเอาต์พุตคือเขาXเพิ่มเบาะลงใน2ช่องว่างด้วยเลขศูนย์นำหน้า

หมายเหตุพิเศษและสนามกอล์ฟเพียงแห่งเดียวคือแทนที่จะใช้ a (...)-join' 'เพื่อรับผลลัพธ์เลขฐานสิบหกใส่ในอาร์เรย์และต่อเชื่อมเข้าด้วยกันเป็นสตริงเราใช้ประโยชน์จากความจริงที่ว่าค่าเริ่มต้น$OutputFieldSeparatorสำหรับการทำให้อาร์เรย์เป็นสตริง ช่องว่าง นั่นหมายความว่าเราสามารถทำสตริงด้วยบล็อกสคริปต์ในนั้น"$(...)"แทนการบันทึก 6 ไบต์

สตริงเหล่านั้นจะถูกทิ้งไว้ที่ไพพ์ไลน์และเอาต์พุตโดยปริยายWrite-Outputเมื่อโปรแกรมเสร็จสิ้นจะทำให้เรามีบรรทัดใหม่ระหว่างพวกเขาฟรี


3

Haskell , 87 ไบต์

import Numeric
main=mapM(\x->putStrLn$do y<-s;['0'|x*y<16]++showHex(x*y)" ")s
s=[0..15]

ลองออนไลน์!

ฉันคิดว่ามีวิธีที่ดีกว่า อาจขึ้นอยู่กับprintfแพ็คเกจ ....


2
การใช้การนำเข้าที่คุณสามารถทำไม่มีmapM(pure"0123456789abcdef")".."!!(x*y)++" "สำหรับ bytecount เดียวกัน แต่คุณขวากับprintf 81 ไบต์
ბიმო


2

Ruby, 49 ไบต์

256.times{|i|print"%02x "%(i/16*j=i%16),$/*j/=15}

การใช้ตัว%ดำเนินการที่sprintfค่อนข้างตรงไปตรงมานั้น

$/เป็นตัวแปรตัวแยกบรรทัด ( \nโดยค่าเริ่มต้น)

สังเกตการใช้งานที่มอบหมายเช่นj/=15เพื่อหลีกเลี่ยงวงเล็บที่ยาวกว่า(j/15)


2

Mathematica ขนาด 46 ไบต์

Grid@Array[IntegerString[1##,16,2]&,{16,16},0]

การดำเนินการตรงไปตรงมาใช้ในตัวIntegerStringในฐานรองให้มีความยาว16 มีตัวแปรทั้งสองทำงานแต่ละ 0-152Array[...,{16,16},0]


2

Matlab, 53 ไบต์

for i=[0:15]'*[0:15];fprintf('%02X ',i);disp(' ');end

ตัวอย่างผลลัพธ์:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  
00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E  
00 03 06 09 0C 0F 12 15 18 1B 1E 21 24 27 2A 2D  
00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 38 3C  
00 05 0A 0F 14 19 1E 23 28 2D 32 37 3C 41 46 4B  
00 06 0C 12 18 1E 24 2A 30 36 3C 42 48 4E 54 5A  
00 07 0E 15 1C 23 2A 31 38 3F 46 4D 54 5B 62 69  
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78  
00 09 12 1B 24 2D 36 3F 48 51 5A 63 6C 75 7E 87  
00 0A 14 1E 28 32 3C 46 50 5A 64 6E 78 82 8C 96  
00 0B 16 21 2C 37 42 4D 58 63 6E 79 84 8F 9A A5  
00 0C 18 24 30 3C 48 54 60 6C 78 84 90 9C A8 B4  
00 0D 1A 27 34 41 4E 5B 68 75 82 8F 9C A9 B6 C3  
00 0E 1C 2A 38 46 54 62 70 7E 8C 9A A8 B6 C4 D2  
00 0F 1E 2D 3C 4B 5A 69 78 87 96 A5 B4 C3 D2 E1 

ลองออนไลน์! (เรียงลำดับของ ... )
Pavel

2

Perl, 48 ไบต์

for$a(@%=0..15){printf"%02x "x@%.$/,map$a*$_,@%}

ลองออนไลน์!

ฉันคิดว่านี่ไม่ใช่การเล่นกอล์ฟที่ดีที่สุด แต่ฉันจะถูกสาปถ้าฉันสามารถหาอะไรที่ดีกว่าได้

การวิเคราะห์รหัส:

for$a(@%=0..15){printf"%02x "x@%.$/,map$a*$_,@%}
         0..15                                    #Create a list of the range 0 - 15...
      @%=                                         #...and store it in the array @%
for$a(        ){                               }  #Loop through @% with $a as the iterator
                printf[  string   ],[ params  ]   #Perl's port of the standard printf function
                      "%02x "                     #2-digit (hexit?) padding, followed by space...
                             x@%                  #...repeated 16 times (in scalar context, @% represents the size of array @%)...
                                .$/               #...followed by a newline
                                     map$a*$_,@%  #Loops through @%, and using $_ as the iterator, returns a list composed of each member of @% multiplied by the current $a

2

Perl 6 , 42 ไบต์

.fmt("%02x").put for (^16 X*^16).rotor: 16

ลองมัน

ขยาย:

.fmt("%02x") # format each element of list to lowercase hex
.put         # print with trailing newline

for          # for each of the following

(
  ^16  # Range upto ( and excluding ) 16
  X*   # cross multiplied with
  ^16
).rotor: 16 # break it up into chunks of 16 values

2

JavaScript, 104 ไบต์

s="";for(a=0;16>a;a++){for(b=0;16>b;b++)c=(a*b).toString(16),s=1==c.length?s+(" 0"+c):s+(" "+c);s+="\n"}

โทรโดยใช้ตัวแปรs:

console.log("HEX Table: " + s)

รหัสไม่ได้รับการตอบกลับ:

s=""; // Define s as empty string
for(a=0;16>a;a++){ // For y axis
  for(b=0;16>b;b++) // For x axis
    c=(a*b).toString(16),s=1==c.length?s+(" 0"+c):s+(" "+c); // Multiply and format
  s+="\n" // Add line breaks
}

ไม่ใช่"\n"เส้นแบ่งหรือ ว้าวมีคนใช้ECMA แท้ๆซักครั้ง
Zacharý

s+=2>c.length?" 0"+c:" "+cและคุณควรจะสามารถที่จะใช้
Zacharý

ฉันรู้ว่ามันเก่า แต่ฉันสังเกตเห็นการออมเล็กน้อยที่อาจช่วยในความท้าทายในอนาคตด้วย! คุณสามารถตั้งค่าทั้งสองaและsไป""ตั้งแต่ยังคงเป็น""*0 0เป็นไปได้ที่จะอินไลน์ของคุณb++ไปยังที่ที่มันถูกใช้a*bเพื่อประหยัดอีกเล็กน้อย แต่ถ้าคุณเขียนสตริงต่อท้าย: s+=" "+(0+(a*b++).toString(16)).substr(-2)นั่นจะช่วยประหยัดชิ้น ควรอยู่ที่ 86 ไบต์ด้วย! หวังว่าจะช่วย!
Dom Hastings

2

C, 68 66 ไบต์

f(i){for(i=0;i<256;)printf("%02x%c",i%16*(i++/16),i%16<15?32:10);}

-2 ไบต์ต้องขอบคุณแมวป่า!

Ungolfed:

f(i){
  for(i=0; i<256;)
    printf("%02x%c", i%16*(i++/16), i%16<15 ? 32 : 10);
}

พิมพ์ผลการเพิ่มศูนย์เป็นศูนย์และช่องว่างหรือขึ้นบรรทัดใหม่


มันiอนุมานว่าintเป็นคุณสมบัติมาตรฐานของ C หรือไม่?
sergiol

@sergiol ใช่intเป็นสมมติฐานเริ่มต้น
Karl Napf

น่าเศร้าที่เอาต์พุตไม่ได้ถูกกำหนดตามมาตรฐาน C (C99 - 6.5.2.2 การเรียกใช้ฟังก์ชัน)
Jasmes

แนะนำ~i%16แทนi%16<15
ceilingcat

2

Python 3, 55 ไบต์

r=range(16)
for x in r:print(*['%02x'%(x*y)for y in r])

การใช้การจัดรูปแบบ% จะบันทึกได้ค่อนข้างน้อยเมื่อเทียบกับการใช้ [2:] ดังนั้นใช้ * เครื่องหมายบนฟังก์ชันการพิมพ์


2

Japt -R , 20 15 ไบต์

GÆGÇ*X sGÃùT2 ¸

ลองออนไลน์!

GÆGÇ*X sGÃùT2 ¸
G                   :16
 Æ                  :Map each X in the range [0,G)
  GÇ                :  Map the range [0,G)
    *X              :    Multiply by X
       sG           :    Convert to base-16 string
         Ã          :  End map
          ù         :  Left pad each
           T        :    With 0
            2       :    To length 2
              ¸     :  Join with spaces
                    :Implicitly join with newlines and output

คุณสามารถทำได้อย่างง่ายดาย®แทนËP
ETHproductions

@ ETHproductions: ใช่ แต่ฉันต้องการที่จะเล่นกับทางลัดใหม่มัน! : D
Shaggy


1

05AB1E , 17 ไบต์

16F15ÝN*8o+h€¦ðý»

ลองออนไลน์!

16F               For N in [0,15]
   15Ý            Push [0, ..., 15]
      N*          Multiply by N
        8o+       Add 256
           h      Take the uppercase hexadecimal representation
            €¦    Remove the leading 1 of each value
              ðý  Join with spaces
                » End for and join everything with newlines

อาจมีวิธีที่ดีกว่าในการจัดการกับสิ่งนี้ใน 05AB1E



แน่นอน! ;) คำสั่งดังกล่าวไม่ได้มีอยู่แล้ว; ผลักดัน 256 žzเป็นคำสั่ง ดูinfo.txt บน 12 พฤศจิกายน 2016 ยินดีที่ได้เห็นว่าภาษายังคงพัฒนาอยู่และผู้คนก็ใช้มัน: D
Osable

อาโอเค. ผมรู้ว่าค่าคงที่ขนาดเล็กจำนวนมากยังใหม่สวย แต่คิดว่าสำหรับการ256อยู่ที่นั่นอีกต่อไป แต่ฉันเห็นคำตอบของคุณคือตั้งแต่เดือนธันวาคม 2559 ดังนั้นฉันสามารถเข้าใจได้ว่ายังไม่มีเวลา :) ฉันเห็นคำตอบ 05AB1E บางส่วนจากปี 2559 ที่ยังไม่ได้ป้อนข้อมูลโดยปริยายเลย ..
Kevin Cruijssen

1

C, 61 ไบต์

i;f(){while(i<256)printf("%02x%c",i%16*(i>>4),++i%16?32:10);}

Wandbox


ที่iอนุมานโดยนัยว่าเป็นintคุณสมบัติมาตรฐานของ C?
sergiol

1

Python2, 102 97 92 90 89 ไบต์

i=1
exec"print' '.join('%02x'%(j-x)*(i>0)for x,j in enumerate(range(0,16*i,i)));i+=1;"*16

เอาท์พุท:

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
00 02 04 06 08 0a 0c 0e 10 12 14 16 18 1a 1c 1e
00 03 06 09 0c 0f 12 15 18 1b 1e 21 24 27 2a 2d
00 04 08 0c 10 14 18 1c 20 24 28 2c 30 34 38 3c
00 05 0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b
00 06 0c 12 18 1e 24 2a 30 36 3c 42 48 4e 54 5a
00 07 0e 15 1c 23 2a 31 38 3f 46 4d 54 5b 62 69
00 08 10 18 20 28 30 38 40 48 50 58 60 68 70 78
00 09 12 1b 24 2d 36 3f 48 51 5a 63 6c 75 7e 87
00 0a 14 1e 28 32 3c 46 50 5a 64 6e 78 82 8c 96
00 0b 16 21 2c 37 42 4d 58 63 6e 79 84 8f 9a a5
00 0c 18 24 30 3c 48 54 60 6c 78 84 90 9c a8 b4
00 0d 1a 27 34 41 4e 5b 68 75 82 8f 9c a9 b6 c3
00 0e 1c 2a 38 46 54 62 70 7e 8c 9a a8 b6 c4 d2
00 0f 1e 2d 3c 4b 5a 69 78 87 96 a5 b4 c3 d2 e1

ลองออนไลน์!



1

k, 50 ไบต์

`0:" "/'("0123456789abcdef"@16 16\)''{x*\:/:x}@!16

อนิจจามันถูกขัดขวางโดยการขาดเครื่องพิมพ์เลขฐานสิบหกในตัว

อ่านจากขวาไปซ้ายมากหรือน้อย:

                                               !16 / make the array {0, 1, 2, ..., 15}
                                     {x*\:/:x}@    / cartesian product of the array multiplied by itself, results in a table
        (                         )''              / for each row, for each column
                            16 16\                 / decode int to two digits in base 16
         "0123456789abcdef"@                       / get the characters to form a string
   " "/'                                           / join the columns with a space, the table is now an array 
`0:                                                / print the array, each element is one line

1

/// , 588 ไบต์

/;/\/ //|/\/\///A/00 |B/
A|C;0|D;1|E;2|F;3|G;4|H;5|I;6|J;7|K;8/AAAAAAAAAAAAAAAAB01C2C3C4C5C6C7C8C9CaCbCcCdCeCf B02C4C6C8CaCcCeD0D2D4D6D8DaDcDe B03C6C9CcCfD2D5D8DbDeE1E4E7EaEd B04C8CcD0D4D8DcE0E4E8EcF0F4F8Fc B05CaCfD4D9DeE3E8EdF2F7FcG1G6Gb B06CcD2D8DeE4EaF0F6FcG2G8GeH4Ha B07CeD5 1cE3EaF1F8FfG6GdH4HbI2I9 B08D0D8E0E8F0F8G0G8H0H8I0I8J0J8 B09D2DbE4EdF6FfG8H1HaI3IcJ5JeK7 B0aD4DeE8F2FcG6H0HaI4IeJ8K2Kc 96 B0b 16E1EcF7G2Gd 58I3IeJ9K4Kf 9a a5 B0c 18E4F0FcG8 54I0IcJ8K4 90 9c a8 b4 B0d 1aE7F4G1GeHbI8J5K2Kf 9c a9 b6 c3 B0eDcEaF8G6H4I2J0JeKc 9a a8 b6 c4 d2 B0fDeEdFcGb 5aI9J8K7 96 a5 b4 c3 d2 e1 

เวอร์ชันที่สามารถอ่านได้มากขึ้นพร้อมกับการขึ้นบรรทัดใหม่:

/]
[///;/\/ //|/\/\///A/00 |B/
A|C;0|D;1|E;2|F;3|G;4|H;5|I;6|J;7|K;8/]
[AAAAAAAAAAAAAAAAB01C2C3C4C5C6C7C8C9CaCbCcCdCeCf ]
[B02C4C6C8CaCcCeD0D2D4D6D8DaDcDe B03C6C9CcCfD2D5D]
[8DbDeE1E4E7EaEd B04C8CcD0D4D8DcE0E4E8EcF0F4F8Fc ]
[B05CaCfD4D9DeE3E8EdF2F7FcG1G6Gb B06CcD2D8DeE4EaF]
[0F6FcG2G8GeH4Ha B07CeD5 1cE3EaF1F8FfG6GdH4HbI2I9]
[ B08D0D8E0E8F0F8G0G8H0H8I0I8J0J8 B09D2DbE4EdF6Ff]
[G8H1HaI3IcJ5JeK7 B0aD4DeE8F2FcG6H0HaI4IeJ8K2Kc 9]
[6 B0b 16E1EcF7G2Gd 58I3IeJ9K4Kf 9a a5 B0c 18E4F0]
[FcG8 54I0IcJ8K4 90 9c a8 b4 B0d 1aE7F4G1GeHbI8J5]
[K2Kf 9c a9 b6 c3 B0eDcEaF8G6H4I2J0JeKc 9a a8 b6 ]
[c4 d2 B0fDeEdFcGb 5aI9J8K7 96 a5 b4 c3 d2 e1 

ค่อนข้างง่ายถ้าคุณรู้ว่า /// ทำงานอย่างไร มันเป็นเพียงการเปลี่ยนสตริงไม่กี่


1

/// , 544 ไบต์

ตอนนี้ทุกคนกำลังทำ /// คำตอบตอนนี้:

/|/\/\///Z/\/ |P/
0B|MZ9|LZ8|KZ7|JZ6|IZ5|HZ4|GZ3|FZ2|EZ1|C/BBB|B/0A|AZ0/0CCCCC0P1A2A3A4A5A6A7A8A9AaAbAcAdAeAfP2A4A6A8AaAcAeE0E2E4E6E8EaEcEeP3A6A9AcAfE2E5E8EbEeF1F4F7FaFdP4A8AcE0E4E8EcF0F4F8FcG0G4G8GcP5AaAfE4E9EeF3F8FdG2G7GcH1H6HbP6AcE2E8EeF4FaG0G6GcH2H8HeI4IaP7AeE5EcF3FaG1G8GfH6HdI4IbJ2J9P8E0E8F0F8G0G8H0H8I0I8J0J8K0K8P9E2EbF4FdG6GfH8I1IaJ3JcK5KeL7PaE4EeF8G2GcH6I0IaJ4JeK8L2LcM6PbE6F1FcG7H2HdI8J3JeK9L4LfMa a5PcE8F4G0GcH8I4J0JcK8L4M0Mc a8 b4PdEaF7G4H1HeIbJ8K5L2LfMc a9 b6 c3PeEcFaG8H6I4J2K0KeLcMa a8 b6 c4 d2PfEeFdGcHbIaJ9K8L7M6 a5 b4 c3 d2 e1

ฉันแทนที่\s0ผ่าน\s9ด้วยAแล้วEผ่านM, 0 0กับC, \n00 0กับ P, /\sด้วยZและในที่สุดก็//มี|การเพิ่มทั้งหมดเหล่านี้ที่ด้านหน้าของรหัสที่ผมไป

ลองออนไลน์!



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