Saat melakukan riset untuk tantangan berbeda yang saya rumuskan, saya menemukan grafik Cayley , khususnya yang ini . Karena saya salah satu penulis tantangan seni ascii terbaik , tentu saja saya harus membuat tantangan seni ASCII untuk ini.
Tantangan Anda adalah untuk menghasilkan penggambaran seni ASCII ini dari grafik Cayley dari kelompok bebas pada dua generator sebagai berikut:
+
+++
+ | +
++-+-++
+ | +
+ | +
+++ | +++
+ | | | +
++-+----+----+-++
+ | | | +
+++ | +++
+ | +
+ | +
+++ | +++
+ | + | + | +
++-+-++ | ++-+-++
+ | + | + | +
+ | | | +
+++ | | | +++
+ | | | | | +
++-+----+-----------+-----------+----+-++
+ | | | | | +
+++ | | | +++
+ | | | +
+ | + | + | +
++-+-++ | ++-+-++
+ | + | + | +
+ +++ | +++ +
+++ + | + +++
+ | + | + | +
++-+-++ | ++-+-++
+ | + | + | +
+ | + | + | +
+++ | +++ | +++ | +++
+ | | | + | + | | | +
++-+----+----+-++ | ++-+----+----+-++
+ | | | + | + | | | +
+++ | +++ | +++ | +++
+ | + | + | +
+ | | | +
+++ | | | +++
+ | + | | | + | +
++-+-++ | | | ++-+-++
+ | + | | | + | +
+ | | | | | +
+++ | | | | | +++
+ | | | | | | | +
++-+----+-----------+--------------------------+--------------------------+-----------+----+-++
+ | | | | | | | +
+++ | | | | | +++
+ | | | | | +
+ | + | | | + | +
++-+-++ | | | ++-+-++
+ | + | | | + | +
+++ | | | +++
+ | | | +
+ | + | + | +
+++ | +++ | +++ | +++
+ | | | + | + | | | +
++-+----+----+-++ | ++-+----+----+-++
+ | | | + | + | | | +
+++ | +++ | +++ | +++
+ | + | + | +
+ | + | + | +
++-+-++ | ++-+-++
+ | + | + | +
+++ + | + +++
+ +++ | +++ +
+ | + | + | +
++-+-++ | ++-+-++
+ | + | + | +
+ | | | +
+++ | | | +++
+ | | | | | +
++-+----+-----------+-----------+----+-++
+ | | | | | +
+++ | | | +++
+ | | | +
+ | + | + | +
++-+-++ | ++-+-++
+ | + | + | +
+++ | +++
+ | +
+ | +
+++ | +++
+ | | | +
++-+----+----+-++
+ | | | +
+++ | +++
+ | +
+ | +
++-+-++
+ | +
+++
+
Memasukkan
Tanpa input, kecuali bahasa Anda secara eksplisit membutuhkan input untuk dijalankan.
Keluaran
Representasi seni ASCII ditunjukkan di atas.
MD5 Hash
Karena ini adalah keluaran yang cukup besar, untuk memeriksa pekerjaan Anda di sini ada beberapa hash MD5 dari contoh bentuk keluaran (semuanya UTF-8 tanpa BOM):
- Padding ruang persegi,
CR/LF
linefeed, dan trailing newline -954B93871DAAE7A9C05CCDF79B00BF3C
- ini adalah representasi yang digunakan di atas. - Padding ruang persegi,
CR/LF
umpan garis, tidak ada baris baru tertinggal -28405EF91DA305C406BD03F9275A175C
- Padding ruang persegi,
LF
umpan garis, dan baris baru tertinggal -8CA65FB455DA7EE5A4C10F25CBD49D7E
- Padding ruang persegi,
LF
umpan garis, tidak ada baris baru tertinggal -FDB1547D68023281BB60DBEC82C8D281
- Tidak ada spasi tambahan,
CR/LF
umpan baris, dan tambahan baris baru -77FDE8CE5D7BD1BDD47610BA23264A19
- Tidak ada spasi tambahan,
CR/LF
umpan baris, tidak ada tambahan baris baru -EAD390C3EFD37F0FCACE55A84B793AB5
- Tidak ada spasi tambahan,
LF
umpan baris, dan tambahan baris baru -1F6CAB740F87881EB2E65BED65D08C36
- Tidak ada spasi tambahan,
LF
umpan baris, tidak ada tambahan baris baru -7D41CE1E637619FEA9515D090BFA2E9C
- Jika ada MD5 tambahan yang ingin Anda perbandingan, beri tahu saya dan saya akan membuatnya dan memperbarui tantangan.
Aturan
- Leading atau trailing newlines atau whitespace semuanya opsional, asalkan karakternya berbaris dengan benar.
- Program lengkap atau fungsi dapat diterima. Jika suatu fungsi, Anda dapat mengembalikan output daripada mencetaknya.
- Jika memungkinkan, harap sertakan tautan ke lingkungan pengujian online agar orang lain dapat mencoba kode Anda!
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
code-golf
ascii-art
kolmogorov-complexity
fractal
AdmBorkBork
sumber
sumber
-
/|
s mengikuti rumus(2<<n)-n-2
daripada(1<<n)-1
yang merupakan dugaan asli saya.Jawaban:
JavaScript (ES6),
204195188180 byteSquare space padding, LF linefeeds,
dantidak ada baris baru, meskipun saya belum memeriksa MD5.Versi parameter untuk
222216207199 byte. Penjelasan: Ukuran output adalah 9119 karakter ASCII, termasuk 46 baris baru. (Untuk versi parametris, ukuran output dihitung termasuk baris baru.) Setiap karakter ditentukan secara individual, pertama dengan memeriksa apakah baris baru jatuh tempo, sebaliknya dengan memanggil fungsi pada koordinat relatif terhadap asal di tengah final diagram. Fungsi ini secara rekursif memeriksa titik terhadap persilangan terdekat dari masing-masing ukuran ke titik, dan mengembalikan karakter yang sesuai tergantung pada apakah titik tersebut ditemukan terletak di tengah atau sumbu salib.sumber
Röda ,
284280238234 byteCobalah online!
Ini adalah fungsi anonim. Saya menggunakan baris baru alih-alih titik koma sehingga diformat dengan sangat baik!
Fungsi rekursif
f
membuat grafik dalam array dua dimensit
, yang kemudian dicetak pada baris terakhir.Saya tidak menemukan cara untuk menghitung
27,12,5,2,1
dalam beberapa byte, jadi mereka hard-coded.sumber
b_shiftl
Operator ada, tapi terlalu lama untuk digunakan dalam program ini, saya pikir.10000110001200020001
->1168671727
ragu Anda dapat mengonversi dan membagi dengan kurang dari 2 byte meskipun heh ...Arang ,
5043 byteCobalah online! Tautan adalah untuk mengucapkan versi kode. Saya awalnya mencoba berbagai refleksi dan rotasi tetapi mereka tidak melakukan apa yang saya inginkan atau dalam beberapa kasus kereta. Saya kemudian mencoba pendekatan loop bersarang tetapi saya sekarang telah beralih ke metode iteratif ini yang bekerja dengan menggambar sejumlah garis di antara setiap salib batin tergantung pada berapa banyak kekuatan dari 3 nomor langkah yang dapat dibagi. Bahkan dapat dengan mudah dimodifikasi untuk menerima parameter ukuran dengan biaya hanya 4 byte:
Sunting: Saya telah menemukan cara menggunakannya
RotateShutterOverlap
untuk mencapai tugas ini, tetapi yang mengganggu saya butuh 44 byte:Jika
RotateShutterOverlap
menerima integer rotasi variabel, itu akan menguranginya menjadi 40 byte:Karena itu, menggunakan parameter daftar rotasi membutuhkan 45 byte:
sumber
05AB1E , 620 byte
Cobalah online!
Yang saya lakukan adalah memotong pola menjadi empat, mengubah simbol menjadi basis-4, mengkompresi 1/4 dari pola menjadi basis-214 dan kemudian membalikkannya di atas garis simetri. Saya sedang mengerjakan sesuatu yang lebih pintar menggunakan algoritma yang sebenarnya, tetapi sampai saya selesai bahwa inilah yang akan ada di sini untuk saya.
sumber
05AB1E
jawaban terbesar yang saya lihat. xD Biasanya mendekati 6.20 bukannya 620 dengan jawaban dalam bahasa ini. ;)Python 3, 264 byte
Menggunakan sepasang fungsi yang saling rekursif. F menggambar garis dan P menyisipkan tanda '+'. Dapat bermain golf lebih banyak, tetapi kehabisan waktu untuk saat ini.
sumber
C, 236 byte
Hanya membangun tabel karakter secara rekursif sebelum menampilkannya.
Cobalah online!
Terima kasih @Neil untuk membuat saya menyadari bahwa panjang cabang mengikuti aturan yang sebenarnya.
sumber