Wydrukuj wszystkie kolory siatki 3x3


21

Masz siatkę 3x3. Każda komórka może być w kolorze czarnym lub białym. Wyświetl wszystkie 512 z tych kolorów. Wygrywa najmniej bajtów.

Siatki można wyświetlać w dowolnej formacji, o ile są one wizualnie oddzielone, a odstępy wyglądają regularnie. Możesz użyć grafiki lub obrazów ASCII. W przypadku czerni i bieli można użyć dowolnych dwóch wyraźnych widocznych symboli lub kolorów. Wszelkie białe znaki są poprawne, o ile wynik jest poprawny wizualnie.

Przykładowe dane wyjściowe:

...
...
...

...
...
..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 dokonał edycji, a Filipe zatwierdził ją (po czym wyczyściłem komentarze). Właśnie dodałem tagi.
Martin Ender,

Czy możemy przenieść przykład do PasteBin? Przewijanie jest teraz anemiczne. Poza tym jest to tylko zestaw mocy kwadratu wejściowego podzielony na linie wejścia, gdzie 1s i 0s są zastąpione przez Xi.
Stan Strum

Odpowiedzi:


16

K, 11 bajtów

(3 3#)'!9#2

Przykład wyjściowy:

((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)
…

Jest to natywna, dość drukowana reprezentacja K listy macierzy, która moim zdaniem jest wystarczająca dla specyfikacji problemu. Każda matryca jest ograniczona załączonym zestawem nawiasów.

I szybkie sprawdzenie poczytalności w celu wykazania, że ​​skonstruowano 512 matryc:

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

Bardzo proste. Większość pracy znajduje się w !. Najpierw generujemy 9-metrowy wektor 2s za pomocą „take” ( 9#2). Następnie wykorzystujemy monadyczną formę „licznika przebiegu” !- kilka przykładów ilustruje jej zachowanie:

  !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)

Następnie po prostu wykonaj przekształcenie 3x3 ( (3 3#)) każdego ( ') z wektorów 0/1 o długości 9.


34

Mathematica, 25 bajtów

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

Daje tablicę ze wszystkimi siatkami jako obrazy, która jest również wyświetlana bezpośrednio na ekranie:

wprowadź opis zdjęcia tutaj

(Przycięte, aby niepotrzebnie wysadzić posta.)


3
głosowano za to, że jest najładniejszym wyjściem
Filipe Teixeira,

14

JavaScript, 77 80

Zmienione po aktualizacji PO. Teraz mamy pytanie, więc oto odpowiedź.

Uruchom fragment w dowolnej przeglądarce, aby go przetestować.

// 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>

Stary post: wyświetlanie graficzne w przeglądarce, z javascript i płótnem. ~ 300 bajtów kodu (może być skrócony).

Uruchom fragment kodu poniżej.

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>


Jeśli podasz (ES6), możesz zamienić na .join('\n').join '' (dosłowna nowa linia, nie spacja ... głupie formatowanie komentarzy), aby zaoszczędzić 3 bajty
Patrick Roberts

@PatrickRoberts tak, ciąg szablonu został już zaimplementowany w przeglądarce Firefox 14 miesięcy temu, ale nie wiedziałem o tym. Edycja kodu po tak długim czasie jest trochę nekropolią
edc65

6

Matlab, 33

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

To trochę dziwne, aby uzyskać prawidłowe wymiary, ale jestem bardzo zadowolony z wyniku!


6

POWERSHELL - 65

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

wynik

000

000

000


000

000

001


000

000

010


000

000

011

potwierdzenie

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

512

edycja zainspirowana wyświetlaniem wyników odpowiedzi matematycznej-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")

wprowadź opis zdjęcia tutaj


6

Python 2, 49 bajtów

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

Podziel binarne rozszerzenie i. Używane są wartości binarne o długości -10 od 512 do 1023, odcinające początkową wartość 1 (i prefiks 0b). Są one podzielone na kawałki 3, jak okna [3:6], [6:9], [9:12], i [12:15], z ostatnim jednego wykroju do pustego wiersza. Iteracja po czterech odcinkach jest zwinięta z zewnętrzną pętlą liczącą 512 liczb za pomocą sztuczki divmod.


4

CJam, 12 bajtów

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

Sprawdź to tutaj.

Używa 0i 1jako odrębne znaki.

Wyjaśnienie

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.

Alternatywnym (wciąż 12-bajtowym) rozwiązaniem jest

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

4

Rubinowy, 86 bajtów

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}

Wydruki drukuj z cudzysłowami, ponieważ psą one krótsze niż puts, ale nadal pasują do reguł.


4

Haskell, 57 54 bajtów

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

f daje taki sam wynik jak w opisie wyzwania, tzn. zaczyna się od

...
...
...

...
...
..X

...
...
.X.

Edycja: @ Mauris znalazł 3 bajty do zapisania. Dzięki!


Myślę, że r x=sequence[x,x,x]robi to samo i jest krótszy.
Lynn,

@Mauris: masz rację. Edytowałem mój post. Dzięki!
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"));

Konwertuje każdą liczbę całkowitą na jej reprezentację binarną i dzieli co 3 znaki.


2

Python 2, 95 bajtów

Odrębnymi znakami są 0i 1, każdy blok jest oddzielony \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

Python 2, 81

import re
for i in range(512):print re.sub('(.{3})','\\1\n',bin(i)[2:].zfill(9))

2

Rubin, 92 bajty

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

Liczy się 0 si 1si, a każdy blok jest oddzielony pustą linią ( \n\n)


2

Rubinowy, 68 bajtów

Drukuje dokładnie taki sam wynik jak w przykładzie podanym w pytaniu

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

Nie ma potrzeby tr, produkcja 0i 1jest w porządku. Jeszcze kilka sugestii 512.times{|i|$><<("%09b"%i).gsub(/.../){$&+$/}+$/}50 bajtów.
Level River St

2

Python 3, 80 bajtów

for i in range(512):print("\n".join(format(i,'09b')[j:j+3]for j in(0,3,6)),"\n")

Udało mi się kogoś ogłuszyć :)


Zapisz bajt za pomocą pętli while: i=512newlinewhile i:print("\n".join(format(i,'09b')[j:j+3]for j in(0,3,6)),"\n");i-=1
FlipTack

2

PHP, 55 bajtów

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

wykorzystuje 0i 1. Uruchom z -r.


Po prostu uwielbiam sposób, w jaki wprowadziłem separującą linię :)
Tytus


2

Python 2 , 56 bajtów

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

Wypróbuj online!

Zwraca 512 konfiguracji jako obiekt ustawiony w pythonie. Odwołaj się do wersji bez golfa, aby zwiększyć czytelność danych wyjściowych.

Wersja bez golfa, aby dane wyjściowe były bardziej czytelne:

Python 2 , 121 bajtów

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

Wypróbuj online!


1

C - 97 bajtów

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);}

Zasadniczo drukuje przykładowe dane wyjściowe z pierwotnego pytania.


1

Swift 2, 92 bajty

Int do ciągu binarnego w Swift zajmuje zbyt wiele znaków, więc używam tylko dwóch zagnieżdżonych pętli ...

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 bajtów

Wyjście to lista macierzy 3x3 zawierających elementy 0 i 1.

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

Tłumacz online

Wydaje mi się, że generowanie macierzy może być krótsze.
Powinno być możliwe zmieszczenie między nimi w forallu lub czymś podobnym, ale nie mogę zrozumieć, jak to zrobić.

Docenione wskazówki golfowe.


1

Perl, 56 55 bajtów

print$_/9&1<<$_%9?1:0,$/x(!(++$_%3)+!($_%9))for+0..4607

Wydajność:

000
000
000

100
000
000
...

1

Python 3, 123 121 109 103 bajtów

Oto mój stary:

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)]

A oto mój nowy:

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

To drukuje dodatkowe znaki, ale OP powiedział, że grafika ASCII jest dozwolona, ​​co oznacza, że ​​wiele znaków jest w porządku.


1

Python 3, 74 bajty

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

Tylko trochę krótszy niż odpowiedź Destructible Lemon


0

Perl, 52 bajty

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

lub 54 bajty:

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

lub Perl 5.14+, 48 bajtów:

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

0

Galaretka , 17 bajtów (niekonkurencyjna)

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

Wypróbuj online!

Zastosowania 01. Z powodu błędu musiałem użyć “¶¶zamiast⁾¶¶ , ponieważ w przeciwnym razie zamiast dwóch nowych linii, dwa pilcrows pojawiłyby się na wyjściu. Jak widać, nie kosztowało mnie to wcale bajtów.

K bije to, więc to trzeba jeszcze pograć w golfa.





Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.