Herausforderung
Geben Sie eine natürliche Zahl in der ASCII-Form des Agrippa-Zahlensystems aus.
Beschreibung
Ich mag ungerade Alphabete und Zahlensysteme. Mein Lieblingszahlensystem ist eines von Heinrich Cornelius Agrippa . Es gibt eine prägnante Möglichkeit, Zahlen in den Bereich zu schreiben, in dem [0,9999]
einzelne Ziffern wie folgt geschrieben werden:
Größere Zahlen sind kleiner als 10^4
eine Kombination aus einzelnen Ziffern, werden jedoch wie folgt auf einer einzelnen zentralen Leiste gedreht / horizontal gespiegelt:
[0° mirrored, 10's ] | [0°, 1's ]
[180°, 1000's] | [180° mirrored, 100's]
Hier einige Beispiele:
Die ASCII-Äquivalente sind:
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|| _|-
_|~ _|~ _|\ -|\ \|\
Zahlen, die größer sind als, 9999
werden in 4-stellige Abschnitte unterteilt (wobei führende Nullen hinzugefügt werden, um ein Vielfaches von vier zu erhalten), und jede wird konvertiert. Zum Beispiel:
314159: (0031 4159)
/|- ~|]
| /|_
Regeln
- Ihre Antwort kann eine Funktion oder ein vollständiges Programm sein
- Die Eingabe ist eine positive ganze Zahl
- Einträge müssen Eingaben unterstützen
10^8
- Jeder vierstellige Abschnitt besteht aus genau sechs Zeichen
- Abschnitte von vier sind durch ein einzelnes Leerzeichen getrennt
- Nachfolgende Zeilenumbrüche sind optional
- Pro Zeile sind bis zu zwei Leerzeichen zulässig
- Ich werde meine eigene Antwort nicht akzeptieren
- Die Punktzahl ist in Bytes angegeben, die niedrigste Punktzahl gewinnt!
code-golf
ascii-art
kolmogorov-complexity
Michael Klein
quelle
quelle
Antworten:
Haskell, 310 Bytes
reverse
(wie ich es getan habe :)r
ist ein Byte kürzer als das ImportierenData.List
und Verwenden nur einmalz=0:z
und(!)=(!!).(++z)
ist der kürzeste Weg, den ich bisher gefunden habe,0
um außerhalb der Grenzen zurückzukehrentake4s
Funktion überprüft und schnell überprüft , aber es fühlt sich für mich immer noch magisch anHier ist der Code:
Weniger Golf:
Tests (Escapezeichen entfernt):
quelle
JavaScript (ES6),
180159 ByteWobei
\n
ein wörtliches Zeilenumbruchzeichen steht.Bearbeiten: Aktualisiert für den Wechsel von
,'
zu|
. 14 Bytes wurden mit einem einzigen gespeichert,replace
um die gesamte Arbeit zu erledigen. Gespeichert 3 Bytes mit&-4
anstelle von<<2>>2
. 2 Bytes durch Missbrauch der Destrukturierungszuweisung gespeichert. 2 Bytes durch Missbrauch von Vorlagenzeichenfolgen gespeichert.quelle