Tantangan
Dengan diberi nomor alami, tampilkan dalam bentuk ASCII dalam sistem angka Agrippa.
Deskripsi
Saya suka huruf aneh dan sistem angka. Sistem angka favorit saya adalah yang diberikan oleh Heinrich Cornelius Agrippa . Ini memberi cara ringkas untuk menulis angka dalam rentang [0,9999]
, di mana satu digit dituliskan sebagai berikut:
Angka yang lebih besar kurang dari 10^4
kombinasi angka tunggal, tetapi diputar / dicerminkan secara horizontal pada bar pusat tunggal sebagai berikut:
[0° mirrored, 10's ] | [0°, 1's ]
[180°, 1000's] | [180° mirrored, 100's]
Berikut ini beberapa contoh:
Setara ASCII adalah:
Ones:
0 1 2 3 4 5 6 7 8 9
| |- |_ |\ |/ |~ || |^ |v |]
| | | | | | | | | |
Tens:
0 1 2 3 4 5 6 7 8 9
| -| _| /| \| ~| || ^| v| [|
| | | | | | | | | |
Hundreds:
0 1 2 3 4 5 6 7 8 9
| | | | | | | | | |
| |_ |- |/ |\ |~ || |v |^ |]
Thousands:
0 1 2 3 4 5 6 7 8 9
| | | | | | | | | |
| _| -| \| /| ~| || v| ^| [|
1510: 1511: 1471: 1486: 3421:
-| -|- ^|- v|| _|-
_|~ _|~ _|\ -|\ \|\
Angka yang lebih besar dari 9999
yang dipecah menjadi bagian-bagian dari 4 digit (dengan nol di depan ditambahkan untuk mendapatkan kelipatan empat) dan masing-masing dikonversi. Sebagai contoh:
314159: (0031 4159)
/|- ~|]
| /|_
Aturan
- Jawaban Anda mungkin fungsi atau program lengkap
- Inputnya adalah bilangan bulat positif
- Entri harus mendukung input
10^8
- Setiap bagian empat digit membutuhkan tepat enam karakter
- Bagian empat dipisahkan oleh satu ruang
- Mengejar baris baru adalah opsional
- Hingga dua ruang trailing per baris diperbolehkan
- Saya tidak akan menerima jawaban saya sendiri
- Skor dalam byte, skor terendah menang!
code-golf
ascii-art
kolmogorov-complexity
Michael Klein
sumber
sumber
Jawaban:
Haskell, 310 byte
reverse
(seperti yang saya lakukanr
:) adalah satu byte lebih pendek daripada mengimporData.List
dan menggunakannya hanya sekaliz=0:z
dan(!)=(!!).(++z)
merupakan cara terpendek yang saya temukan untuk kembali0
tanpa batastake4s
fungsinya, tetapi masih terasa ajaib bagi sayaBerikut kodenya:
Kurang golf:
Tes (karakter pelepasan dihapus):
sumber
JavaScript (ES6),
180159 byteDimana
\n
mewakili karakter baris baru literal.Sunting: Diperbarui untuk beralih dari
,'
ke|
. Disimpan 14 byte dengan menggunakan satureplace
untuk melakukan semua pekerjaan. Disimpan 3 byte dengan menggunakan&-4
bukan<<2>>2
. Disimpan 2 byte dengan menyalahgunakan penugasan perusakan. Disimpan 2 byte dengan menyalahgunakan string template.sumber