พิมพ์ colorings ทั้งหมดของตาราง 3x3


21

คุณมีตาราง 3x3 แต่ละเซลล์สามารถเป็นสีดำหรือสีขาว แสดงสีทั้งหมด 512 สี ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ

คุณสามารถแสดงกริดในรูปแบบใด ๆ ตราบเท่าที่พวกเขาจะแยกทางสายตาและระยะห่างดูปกติ คุณสามารถใช้งานศิลปะหรือรูปภาพของ ASCII สามารถใช้สัญลักษณ์หรือสีที่มองเห็นได้สองแบบสำหรับสีดำและสีขาว ช่องว่างใด ๆ ก็ใช้ได้ตราบใดที่ผลลัพธ์นั้นถูกต้อง

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

...
...
...

...
...
..X

...
...
.X.

...
...
.XX

...
...
X..

...
...
X.X

...
...
XX.

...
...
XXX

...
..X
...

...
..X
..X

...
..X
.X.

...
..X
.XX

...
..X
X..

...
..X
X.X

...
..X
XX.

...
..X
XXX

...
.X.
...

...
.X.
..X

...
.X.
.X.

...
.X.
.XX

...
.X.
X..

...
.X.
X.X

...
.X.
XX.

...
.X.
XXX

...
.XX
...

...
.XX
..X

...
.XX
.X.

...
.XX
.XX

...
.XX
X..

...
.XX
X.X

...
.XX
XX.

...
.XX
XXX

...
X..
...

...
X..
..X

...
X..
.X.

...
X..
.XX

...
X..
X..

...
X..
X.X

...
X..
XX.

...
X..
XXX

...
X.X
...

...
X.X
..X

...
X.X
.X.

...
X.X
.XX

...
X.X
X..

...
X.X
X.X

...
X.X
XX.

...
X.X
XXX

...
XX.
...

...
XX.
..X

...
XX.
.X.

...
XX.
.XX

...
XX.
X..

...
XX.
X.X

...
XX.
XX.

...
XX.
XXX

...
XXX
...

...
XXX
..X

...
XXX
.X.

...
XXX
.XX

...
XXX
X..

...
XXX
X.X

...
XXX
XX.

...
XXX
XXX

..X
...
...

..X
...
..X

..X
...
.X.

..X
...
.XX

..X
...
X..

..X
...
X.X

..X
...
XX.

..X
...
XXX

..X
..X
...

..X
..X
..X

..X
..X
.X.

..X
..X
.XX

..X
..X
X..

..X
..X
X.X

..X
..X
XX.

..X
..X
XXX

..X
.X.
...

..X
.X.
..X

..X
.X.
.X.

..X
.X.
.XX

..X
.X.
X..

..X
.X.
X.X

..X
.X.
XX.

..X
.X.
XXX

..X
.XX
...

..X
.XX
..X

..X
.XX
.X.

..X
.XX
.XX

..X
.XX
X..

..X
.XX
X.X

..X
.XX
XX.

..X
.XX
XXX

..X
X..
...

..X
X..
..X

..X
X..
.X.

..X
X..
.XX

..X
X..
X..

..X
X..
X.X

..X
X..
XX.

..X
X..
XXX

..X
X.X
...

..X
X.X
..X

..X
X.X
.X.

..X
X.X
.XX

..X
X.X
X..

..X
X.X
X.X

..X
X.X
XX.

..X
X.X
XXX

..X
XX.
...

..X
XX.
..X

..X
XX.
.X.

..X
XX.
.XX

..X
XX.
X..

..X
XX.
X.X

..X
XX.
XX.

..X
XX.
XXX

..X
XXX
...

..X
XXX
..X

..X
XXX
.X.

..X
XXX
.XX

..X
XXX
X..

..X
XXX
X.X

..X
XXX
XX.

..X
XXX
XXX

.X.
...
...

.X.
...
..X

.X.
...
.X.

.X.
...
.XX

.X.
...
X..

.X.
...
X.X

.X.
...
XX.

.X.
...
XXX

.X.
..X
...

.X.
..X
..X

.X.
..X
.X.

.X.
..X
.XX

.X.
..X
X..

.X.
..X
X.X

.X.
..X
XX.

.X.
..X
XXX

.X.
.X.
...

.X.
.X.
..X

.X.
.X.
.X.

.X.
.X.
.XX

.X.
.X.
X..

.X.
.X.
X.X

.X.
.X.
XX.

.X.
.X.
XXX

.X.
.XX
...

.X.
.XX
..X

.X.
.XX
.X.

.X.
.XX
.XX

.X.
.XX
X..

.X.
.XX
X.X

.X.
.XX
XX.

.X.
.XX
XXX

.X.
X..
...

.X.
X..
..X

.X.
X..
.X.

.X.
X..
.XX

.X.
X..
X..

.X.
X..
X.X

.X.
X..
XX.

.X.
X..
XXX

.X.
X.X
...

.X.
X.X
..X

.X.
X.X
.X.

.X.
X.X
.XX

.X.
X.X
X..

.X.
X.X
X.X

.X.
X.X
XX.

.X.
X.X
XXX

.X.
XX.
...

.X.
XX.
..X

.X.
XX.
.X.

.X.
XX.
.XX

.X.
XX.
X..

.X.
XX.
X.X

.X.
XX.
XX.

.X.
XX.
XXX

.X.
XXX
...

.X.
XXX
..X

.X.
XXX
.X.

.X.
XXX
.XX

.X.
XXX
X..

.X.
XXX
X.X

.X.
XXX
XX.

.X.
XXX
XXX

.XX
...
...

.XX
...
..X

.XX
...
.X.

.XX
...
.XX

.XX
...
X..

.XX
...
X.X

.XX
...
XX.

.XX
...
XXX

.XX
..X
...

.XX
..X
..X

.XX
..X
.X.

.XX
..X
.XX

.XX
..X
X..

.XX
..X
X.X

.XX
..X
XX.

.XX
..X
XXX

.XX
.X.
...

.XX
.X.
..X

.XX
.X.
.X.

.XX
.X.
.XX

.XX
.X.
X..

.XX
.X.
X.X

.XX
.X.
XX.

.XX
.X.
XXX

.XX
.XX
...

.XX
.XX
..X

.XX
.XX
.X.

.XX
.XX
.XX

.XX
.XX
X..

.XX
.XX
X.X

.XX
.XX
XX.

.XX
.XX
XXX

.XX
X..
...

.XX
X..
..X

.XX
X..
.X.

.XX
X..
.XX

.XX
X..
X..

.XX
X..
X.X

.XX
X..
XX.

.XX
X..
XXX

.XX
X.X
...

.XX
X.X
..X

.XX
X.X
.X.

.XX
X.X
.XX

.XX
X.X
X..

.XX
X.X
X.X

.XX
X.X
XX.

.XX
X.X
XXX

.XX
XX.
...

.XX
XX.
..X

.XX
XX.
.X.

.XX
XX.
.XX

.XX
XX.
X..

.XX
XX.
X.X

.XX
XX.
XX.

.XX
XX.
XXX

.XX
XXX
...

.XX
XXX
..X

.XX
XXX
.X.

.XX
XXX
.XX

.XX
XXX
X..

.XX
XXX
X.X

.XX
XXX
XX.

.XX
XXX
XXX

X..
...
...

X..
...
..X

X..
...
.X.

X..
...
.XX

X..
...
X..

X..
...
X.X

X..
...
XX.

X..
...
XXX

X..
..X
...

X..
..X
..X

X..
..X
.X.

X..
..X
.XX

X..
..X
X..

X..
..X
X.X

X..
..X
XX.

X..
..X
XXX

X..
.X.
...

X..
.X.
..X

X..
.X.
.X.

X..
.X.
.XX

X..
.X.
X..

X..
.X.
X.X

X..
.X.
XX.

X..
.X.
XXX

X..
.XX
...

X..
.XX
..X

X..
.XX
.X.

X..
.XX
.XX

X..
.XX
X..

X..
.XX
X.X

X..
.XX
XX.

X..
.XX
XXX

X..
X..
...

X..
X..
..X

X..
X..
.X.

X..
X..
.XX

X..
X..
X..

X..
X..
X.X

X..
X..
XX.

X..
X..
XXX

X..
X.X
...

X..
X.X
..X

X..
X.X
.X.

X..
X.X
.XX

X..
X.X
X..

X..
X.X
X.X

X..
X.X
XX.

X..
X.X
XXX

X..
XX.
...

X..
XX.
..X

X..
XX.
.X.

X..
XX.
.XX

X..
XX.
X..

X..
XX.
X.X

X..
XX.
XX.

X..
XX.
XXX

X..
XXX
...

X..
XXX
..X

X..
XXX
.X.

X..
XXX
.XX

X..
XXX
X..

X..
XXX
X.X

X..
XXX
XX.

X..
XXX
XXX

X.X
...
...

X.X
...
..X

X.X
...
.X.

X.X
...
.XX

X.X
...
X..

X.X
...
X.X

X.X
...
XX.

X.X
...
XXX

X.X
..X
...

X.X
..X
..X

X.X
..X
.X.

X.X
..X
.XX

X.X
..X
X..

X.X
..X
X.X

X.X
..X
XX.

X.X
..X
XXX

X.X
.X.
...

X.X
.X.
..X

X.X
.X.
.X.

X.X
.X.
.XX

X.X
.X.
X..

X.X
.X.
X.X

X.X
.X.
XX.

X.X
.X.
XXX

X.X
.XX
...

X.X
.XX
..X

X.X
.XX
.X.

X.X
.XX
.XX

X.X
.XX
X..

X.X
.XX
X.X

X.X
.XX
XX.

X.X
.XX
XXX

X.X
X..
...

X.X
X..
..X

X.X
X..
.X.

X.X
X..
.XX

X.X
X..
X..

X.X
X..
X.X

X.X
X..
XX.

X.X
X..
XXX

X.X
X.X
...

X.X
X.X
..X

X.X
X.X
.X.

X.X
X.X
.XX

X.X
X.X
X..

X.X
X.X
X.X

X.X
X.X
XX.

X.X
X.X
XXX

X.X
XX.
...

X.X
XX.
..X

X.X
XX.
.X.

X.X
XX.
.XX

X.X
XX.
X..

X.X
XX.
X.X

X.X
XX.
XX.

X.X
XX.
XXX

X.X
XXX
...

X.X
XXX
..X

X.X
XXX
.X.

X.X
XXX
.XX

X.X
XXX
X..

X.X
XXX
X.X

X.X
XXX
XX.

X.X
XXX
XXX

XX.
...
...

XX.
...
..X

XX.
...
.X.

XX.
...
.XX

XX.
...
X..

XX.
...
X.X

XX.
...
XX.

XX.
...
XXX

XX.
..X
...

XX.
..X
..X

XX.
..X
.X.

XX.
..X
.XX

XX.
..X
X..

XX.
..X
X.X

XX.
..X
XX.

XX.
..X
XXX

XX.
.X.
...

XX.
.X.
..X

XX.
.X.
.X.

XX.
.X.
.XX

XX.
.X.
X..

XX.
.X.
X.X

XX.
.X.
XX.

XX.
.X.
XXX

XX.
.XX
...

XX.
.XX
..X

XX.
.XX
.X.

XX.
.XX
.XX

XX.
.XX
X..

XX.
.XX
X.X

XX.
.XX
XX.

XX.
.XX
XXX

XX.
X..
...

XX.
X..
..X

XX.
X..
.X.

XX.
X..
.XX

XX.
X..
X..

XX.
X..
X.X

XX.
X..
XX.

XX.
X..
XXX

XX.
X.X
...

XX.
X.X
..X

XX.
X.X
.X.

XX.
X.X
.XX

XX.
X.X
X..

XX.
X.X
X.X

XX.
X.X
XX.

XX.
X.X
XXX

XX.
XX.
...

XX.
XX.
..X

XX.
XX.
.X.

XX.
XX.
.XX

XX.
XX.
X..

XX.
XX.
X.X

XX.
XX.
XX.

XX.
XX.
XXX

XX.
XXX
...

XX.
XXX
..X

XX.
XXX
.X.

XX.
XXX
.XX

XX.
XXX
X..

XX.
XXX
X.X

XX.
XXX
XX.

XX.
XXX
XXX

XXX
...
...

XXX
...
..X

XXX
...
.X.

XXX
...
.XX

XXX
...
X..

XXX
...
X.X

XXX
...
XX.

XXX
...
XXX

XXX
..X
...

XXX
..X
..X

XXX
..X
.X.

XXX
..X
.XX

XXX
..X
X..

XXX
..X
X.X

XXX
..X
XX.

XXX
..X
XXX

XXX
.X.
...

XXX
.X.
..X

XXX
.X.
.X.

XXX
.X.
.XX

XXX
.X.
X..

XXX
.X.
X.X

XXX
.X.
XX.

XXX
.X.
XXX

XXX
.XX
...

XXX
.XX
..X

XXX
.XX
.X.

XXX
.XX
.XX

XXX
.XX
X..

XXX
.XX
X.X

XXX
.XX
XX.

XXX
.XX
XXX

XXX
X..
...

XXX
X..
..X

XXX
X..
.X.

XXX
X..
.XX

XXX
X..
X..

XXX
X..
X.X

XXX
X..
XX.

XXX
X..
XXX

XXX
X.X
...

XXX
X.X
..X

XXX
X.X
.X.

XXX
X.X
.XX

XXX
X.X
X..

XXX
X.X
X.X

XXX
X.X
XX.

XXX
X.X
XXX

XXX
XX.
...

XXX
XX.
..X

XXX
XX.
.X.

XXX
XX.
.XX

XXX
XX.
X..

XXX
XX.
X.X

XXX
XX.
XX.

XXX
XX.
XXX

XXX
XXX
...

XXX
XXX
..X

XXX
XXX
.X.

XXX
XXX
.XX

XXX
XXX
X..

XXX
XXX
X.X

XXX
XXX
XX.

XXX
XXX
XXX

@ edc65 xnor ทำการแก้ไขและ Filipe อนุมัติ (หลังจากที่ฉันลบความคิดเห็น) ฉันเพิ่งเพิ่มแท็ก
Martin Ender

เราสามารถย้ายตัวอย่างไปที่ PasteBin ได้หรือไม่? มันเป็นโลหิตจางเพื่อเลื่อนในขณะนี้ นอกจากนี้นี่เป็นเพียงชุดกำลังของอินพุตกำลังสองซึ่งแบ่งออกเป็นบรรทัดของอินพุตที่แทนที่1s และ0s Xและ.
Stan Strum

คำตอบ:


16

K, 11 ไบต์

(3 3#)'!9#2

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

((0 0 0
  0 0 0
  0 0 0)
 (0 0 0
  0 0 0
  0 0 1)
 (0 0 0
  0 0 0
  0 1 0)
 (0 0 0
  0 0 0
  0 1 1)
…

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

และการตรวจสติอย่างรวดเร็วเพื่อแสดงให้เห็นว่ามีการสร้างเมทริกซ์ 512 รายการ:

  #(3 3#)'!9#2
512

ตรงไปตรงมามาก !ที่สุดของการทำงานอยู่ใน ก่อนอื่นเราสร้างเวกเตอร์ยาว 9 วินาทีโดยใช้ "take" ( 9#2) จากนั้นเราใช้ประโยชน์จากรูปแบบ "เครื่องวัดระยะทาง" ของ!ตัวอย่างสองสามตัวอย่างที่แสดงให้เห็นถึงพฤติกรรม:

  !2 2
(0 0
 0 1
 1 0
 1 1)
  !2 3
(0 0
 0 1
 0 2
 1 0
 1 1
 1 2)
  !2 2 2
(0 0 0
 0 0 1
 0 1 0
 0 1 1
 1 0 0
 1 0 1
 1 1 0
 1 1 1)

จากนั้นก็ทำการเปลี่ยนรูป 3x3 ( (3 3#)) ของแต่ละ ( ') ของเวกเตอร์ 9 ความยาว 0/1


34

Mathematica ขนาด 25 ไบต์

Image/@{0,1}~Tuples~{3,3}

ให้อาร์เรย์ที่มีกริดทั้งหมดเป็นรูปภาพซึ่งแสดงบนหน้าจอโดยตรงเช่นกัน:

ป้อนคำอธิบายรูปภาพที่นี่

(ครอบตัดเพื่อไม่ให้โพสต์ระเบิดโดยไม่จำเป็น)


3
upvoted สำหรับการส่งออกที่สวยที่สุด
Filipe Teixeira

14

JavaScript, 77 80

แก้ไขหลังจากการแก้ไขของ OP ตอนนี้เรามีคำถามดังนั้นนี่คือคำตอบ

เรียกใช้ตัวอย่างในเบราว์เซอร์ใดก็ได้เพื่อทดสอบ

// Test: redefine console to have output inside the snippet

console = { log: function(x) { O.textContent+=x+'\n\n';} }

// Solution: 77 chars (note, distinct outputs to console are automatically separed)
  
for(i=511;++i<1024;)console.log(i.toString(2).slice(1).match(/.../g).join`
`)
<pre id=O></pre>

โพสต์เก่า: แสดงกราฟิกในเบราว์เซอร์พร้อม javascript และ canvas ~ 300 ไบต์ของรหัส (สามารถทำให้สั้นลงได้)

เรียกใช้ตัวอย่างด้านล่าง

d=8, // Min block size
C.width=d*64,C.height=d*128,
T=C.getContext('2d')

for(i=0;i<512;i++)
{
  bx=4*(i/32|0)
  by=4*(i%32)
  for(b=1,j=0;j<9;j++,b+=b)    
  {
    if(b&i) 
      x=j/3|0, y=j%3, T.fillRect((bx+x)*d,(by+y)*d,d,d);
  }
  T.strokeRect(bx*d,by*d,d*3,d*3);
}
<canvas id=C></canvas>


หากคุณระบุ(ES6)คุณสามารถแทนที่.join('\n')ด้วย. join` `(ขึ้นบรรทัดใหม่ตามตัวอักษรไม่ใช่ที่ว่าง ... จัดรูปแบบความคิดเห็นที่โง่) เพื่อบันทึก 3 ไบต์
Patrick Roberts

@PatrickRoberts ใช่แล้วมีการใช้งานเทมเพลตสตริงใน Firefox 14 เดือนที่ผ่านมา แต่ฉันไม่ทราบ แก้ไขรหัสหลังจากใช้เวลานานมากนั่นคือการตายโดยไม่เจตนา
edc65

6

Matlab, 33

reshape(dec2bin(0:511,9)',3,3,[])

เป็นเรื่องที่น่าเล่นผิดเพื่อให้ได้มิติที่ถูกต้อง แต่ฉันมีความสุขมากกับผลลัพธ์!


6

POWERSHELL - 65

0..511|%{[convert]::ToString($_,2).padleft(9,'0')-split"(.{3})"}

ผล

000

000

000


000

000

001


000

000

010


000

000

011

การยืนยัน

(0..511|%{[convert]::ToString($_,2).padleft(9,'0')-split"(.{3})"} | measure -Line).lines/3

512

แก้ไขแรงบันดาลใจจากการแสดงผลคำตอบของ mathematica-617

Add-Type -AssemblyName System.Drawing
$a=new-object System.Drawing.Bitmap 992,496
$g=[Drawing.Graphics]::FromImage($a)
$b=@{};$y=@{};$i=$c=$d=$z=$k=$l=$m=0;
0..511|%{$y[$d++]=[convert]::ToString($_,2).padleft(9,'0')}
while($m-lt480){while($l-lt496){for($z=($m+0);$z-lt($m+32);$z++){
      $y[$z].tochararray()|%{if($_-eq"0"){$b[$i++]=[Drawing.Brushes]::Black}
        else{$b[$i++]=[Drawing.Brushes]::White}
      }
      for($j=($l+0);$j-lt($l+30);$j+=10){
        ($k+0),($k+10),($k+20)|%{$g.FillRectangle($b[$c++],$_,$j,10,10)}
      }$k+=31
    }$k=0;$l+=31;$m+=32
  }
}$a.save("$HOME/3X3_Grid.png")

ป้อนคำอธิบายรูปภาพที่นี่


6

Python 2, 49 ไบต์

i=2048;exec"print bin(i/4)[i%4*3+3:][:3];i+=1;"*i

iแยกการขยายตัวของฐาน ใช้ค่าไบนารียาว 10 ถึง 512 ถึง 1,023 ตัดส่วนเริ่มต้น 1 (และส่วนนำหน้า0b) ออก เหล่านี้จะถูกแบ่งออกเป็นชิ้น 3 เป็นหน้าต่าง[3:6], [6:9], [9:12]และ[12:15]กับคนสุดท้ายที่ว่างเปล่าจะทำให้บรรทัดว่าง การวนซ้ำทั้งสี่ชิ้นจะถูกยุบด้วยการวนรอบนอกของการนับถึง 512 หมายเลขด้วยเคล็ดลับ divmod


4

CJam, 12 ไบต์

2,9m*3f/N*N*

ทดสอบที่นี่

ใช้0และ1เป็นอักขระที่แตกต่าง

คำอธิบาย

2,  e# Push [0 1].
9m* e# Generate all 9-tuples of 0s and 1s.
3f/ e# Split each 9-tuple into 3 subarrays of length 3.
N*  e# Join all those grids with newlines.
N*  e# Put newlines between all the length-3 arrays.

โซลูชันทางเลือก (ยัง 12 ไบต์) คือ

2,3m*3m*N*N*

4

Ruby, 86 ไบต์

0.upto(511).map{|i|i.to_s(2).rjust(9,'0')}.each{|j|p j[0..2];p j[3..5];p j[6..8];puts}

ฉันพิมพ์ด้วยเครื่องหมายคำพูดเพราะpสั้นกว่าputsแต่ก็ยังพอดีกับกฎ


4

Haskell, 57 54 ไบต์

r x=sequence[x,x,x]
u=unlines
f=putStr$u$map u$r$r".X"

f ให้ผลลัพธ์เช่นเดียวกับในคำอธิบายการท้าทายคือเริ่มต้นด้วย

...
...
...

...
...
..X

...
...
.X.

แก้ไข: @Mauris พบ 3 ไบต์เพื่อบันทึก ขอบคุณ!


ฉันคิดว่าr x=sequence[x,x,x]ทำสิ่งเดียวกันและสั้นกว่า
ลินน์

@Mauris: ถูกต้อง แก้ไขโพสต์ของฉัน ขอบคุณ!
nimi

3

C # - 111

for(int i=0;i<512;i++)Console.WriteLine(Regex.Replace(Convert.ToString(i,2).PadLeft(9,'0'),"(.{3})","$1\r\n"));

แปลง int ทุกตัวเพื่อเป็นตัวแทนเลขฐานสองและแยกทุก 3 ตัวอักษร


2

Python 2, 95 ไบต์

ตัวละครที่แตกต่างกันจะมี0และแต่ละบล็อกจะถูกคั่นด้วย1\n\n

n='\n';print(n+n).join(y[:3]+n+y[3:6]+n+y[-3:]for y in[bin(x)[2:].zfill(9)for x in range(512)])


2

Ruby, 92 ไบต์

0.upto(511){|i|("%09d"%i.to_s(2)).scan(/.{3}/).map{|j|j.scan(/./)}.map{|j|puts j.join};puts}

นับ0เป็น s และ1s และแต่ละบล็อกถูกคั่นด้วยบรรทัดว่าง ( \n\n)


2

ทับทิม 68 ไบต์

พิมพ์เอาต์พุตที่แน่นอนเหมือนกับตัวอย่างที่กำหนดในคำถาม

puts (0..511).map{|i|("%09b"%i).tr("01",".X").gsub(/.../){$&+$/}}*$/

ไม่จำเป็นสำหรับการ trส่งออก0และ1เป็นเรื่องปกติ ข้อเสนอแนะเพิ่มเติมไม่กี่512.times{|i|$><<("%09b"%i).gsub(/.../){$&+$/}+$/}50 ไบต์
ระดับแม่น้ำเซนต์


2

PHP, 55 ไบต์

for(;$c<512;)echo chunk_split(sprintf("%09b ",$c++),3);

ใช้0และ1. -rทำงานด้วย


ฉันรักวิธีที่ผม impletemented ขึ้นบรรทัดใหม่แยก :)
ติตัส


2

Python 2 , 56 ไบต์

from itertools import*
print set(combinations('X.'*9,9))

ลองออนไลน์!

ส่งคืนการกำหนดค่า 512 รายการเป็นชุดวัตถุในหลาม อ้างอิงถึงเวอร์ชันที่ไม่ได้ปรับแต่งเพื่อให้เอาต์พุตอ่านง่ายขึ้น

Ungolfed Version เพื่อให้เอาต์พุตอ่านง่ายขึ้น:

Python 2 , 121 ไบต์

from itertools import*
for i in set(combinations('X.'*9,9)):
	for j in range(3):print''.join(list(i))[j*3:(j*3)+3]
	print

ลองออนไลน์!


1

C - 97 ไบต์

i;main(j){for(;i++<512;)for(j=0;j++<13;)putchar(j%4&&j<13?i%(1<<j-j/4)>(1<<j-j/4-1)-1?88:46:10);}

พิมพ์ตัวอย่างผลลัพธ์จากคำถามต้นฉบับโดยทั่วไป


1

สวิฟท์ 2, 92 ไบต์

Int ถึงสตริงไบนารีใน Swift ใช้ตัวอักษรมากเกินไปดังนั้นฉันจึงใช้ลูปซ้อนกันสองตัว ...

var s="";for x in 0..<512{(0..<9).map{s+=($0%3==0 ?"\n":"")+"\(x>>$0&1)"};s+="\n-"};print(s)

1

Prolog (SWI) 98 ไบต์

เอาต์พุตเป็นรายการของเมทริกซ์ 3x3 ที่มีองค์ประกอบ 0 และ 1

r([]).
r([H|T]):-between(0,1,H),r(T).
p(Y):-Z=[[_,_,_],[_,_,_],[_,_,_]],findall(Z,maplist(r,Z),Y).

ล่ามออนไลน์

ฉันรู้สึกว่าการสร้างเมทริกซ์อาจสั้นลง
มันควรจะเป็นไปได้ที่จะปรับให้พอดีระหว่างใน forall หรือสิ่งที่คล้ายกัน แต่ฉันไม่สามารถหาวิธี

เคล็ดลับการตีกอล์ฟชื่นชม



1

Python 3, 123 121 109 103 ไบต์

นี่คืออันเก่าของฉัน:

import itertools
[print(a+b+c,d+e+f,g+h+i,'\n',sep='\n') for a,b,c,d,e,f,g,h,i in itertools.product(['X','.'],repeat=9)]

และนี่คือใหม่ของฉัน:

import itertools as i
[print(a[:3],a[3:6],a[6:],'\n',sep='\n') for a in i.product(['X','.'],repeat=9)]

มันพิมพ์ตัวอักษรพิเศษ แต่ OP กล่าวว่าอนุญาตให้ใช้ ASCII art ซึ่งหมายถึงตัวละครหลายตัวนั้นใช้ได้


1

Python 3, 74 ไบต์

i=512;b="\n"
while i:i-=1;a=format(i,'09b');print(a[:3]+b+a[3:6]+b+a[6:],b)

สั้นกว่าคำตอบของ Destructible Lemon เพียงเล็กน้อย


0

Perl, 52 ไบต์

printf+("%03b
"x3).$/,$_&7,$_/8&7,$_>>6&7 for 0..511

หรือ 54 ไบต์:

print map$_.$/,sprintf('%09b',$_)=~/.../g,''for 0..511

หรือ Perl 5.14+, 48 ไบต์:

say sprintf('%09b',$_)=~s/.../$&\n/gr for 0..511

0

เยลลี่ , 17 ไบต์ (ไม่แข่งขัน)

512+ḶBḊ€s€3Y€j“¶¶

ลองออนไลน์!

01การใช้ประโยชน์ เนื่องจากข้อบกพร่องฉันจึงต้องใช้“¶¶แทน⁾¶¶เพราะอย่างอื่นแทนที่จะเป็นสองบรรทัดใหม่ pilcrows สองอันจะปรากฏในผลลัพธ์ อย่างที่คุณเห็นมันไม่ได้ทำให้ฉันต้องเสียค่าใช้จ่ายใด ๆ

K ชนะสิ่งนี้ดังนั้นจึงต้องลงเล่นกอล์ฟต่อไป





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