Die Cheela (aus dem Buch Dragon's Egg von Robert L. Forward) sind Wesen, die auf der Oberfläche eines Neutronensterns leben. Ihr Körper ist flach und kreisförmig mit zwölf Augen am Umfang, weshalb sie natürlich ein Basis-12-Nummerierungssystem verwenden.
Bei den Cheela sind die Betreuung der Jungtiere und die Erziehung der Jungen Aufgaben der Alten. Da der junge Cheela das Multiplizieren beibringen muss, könnten die Alten eine Multiplikationstabelle verwenden.
Ihre Aufgabe ist es, eine 12
x- 12
Multiplikationstabelle 12
wie die folgende in base zu erstellen . Großbuchstaben A
und B
sind für die Ziffern entsprechend dezimal verwendet 10
und 11
jeweils.
1 2 3 4 5 6 7 8 9 A B 10
2 4 6 8 A 10 12 14 16 18 1A 20
3 6 9 10 13 16 19 20 23 26 29 30
4 8 10 14 18 20 24 28 30 34 38 40
5 A 13 18 21 26 2B 34 39 42 47 50
6 10 16 20 26 30 36 40 46 50 56 60
7 12 19 24 2B 36 41 48 53 5A 65 70
8 14 20 28 34 40 48 54 60 68 74 80
9 16 23 30 39 46 53 60 69 76 83 90
A 18 26 34 42 50 5A 68 76 84 92 A0
B 1A 29 38 47 56 65 74 83 92 A1 B0
10 20 30 40 50 60 70 80 90 A0 B0 100
Die Ausgabe sollte auf dem Bildschirm gedruckt werden. Das Format sollte wie folgt sein:
- Zahlen sollten in jeder Spalte nach rechts ausgerichtet werden.
- Führende Leerzeichen vor der ersten Spalte, nachfolgende Leerzeichen nach der letzten Spalte oder eine nachfolgende neue Zeile nach der letzten Zeile sind zulässig.
Die Trennung zwischen den Spalten kann ein Leerzeichen (wie oben gezeigt) oder mehr als ein Leerzeichen sein, die Anzahl der Leerzeichen sollte jedoch zwischen den Spalten übereinstimmen. Berücksichtigen Sie zum Messen des Spaltenabstands, dass die angezeigten Zahlen alle führenden Leerzeichen enthalten, die zur Erfüllung von Anforderung 1 erforderlich waren (daher belegt jede Zahl drei Zeichen, von denen das erste Leerzeichen sein kann). Die Tabelle mit der Trennung von zwei Leerzeichen sieht beispielsweise folgendermaßen aus:
1 2 3 4 5 6 7 8 9 A B 10 2 4 6 8 A 10 12 14 16 18 1A 20 3 6 9 10 13 16 19 20 23 26 29 30 4 8 10 14 18 20 24 28 30 34 38 40 5 A 13 18 21 26 2B 34 39 42 47 50 6 10 16 20 26 30 36 40 46 50 56 60 7 12 19 24 2B 36 41 48 53 5A 65 70 8 14 20 28 34 40 48 54 60 68 74 80 9 16 23 30 39 46 53 60 69 76 83 90 A 18 26 34 42 50 5A 68 76 84 92 A0 B 1A 29 38 47 56 65 74 83 92 A1 B0 10 20 30 40 50 60 70 80 90 A0 B0 100
Computerspeicher auf einem Neutronenstern ist sehr teuer, daher sollte Ihr Code so wenig Byte wie möglich enthalten.
Erweiterte Herausforderung und Bonus
Idealerweise sollte Ihr Code in anderen Teilen des Universums wiederverwendet werden, wo möglicherweise andere Nummerierungssysteme verwendet werden. Zu diesem Zweck wird die Abfrage optional wie folgt erweitert: Ihr Code akzeptiert eine Zahl N
als Eingabe und generiert eine N
x- N
Multiplikationstabelle in der Basis N
mit dem obigen Format.
Die Eingabe kann über die Tastatur oder als Funktionsargument erfolgen. Das Programm oder die Funktion sollte funktionieren für 2
≤ N
≤ 36
, als Ziffern unter Verwendung der ersten N
Zeichen der Folge 0
, 1
, ..., 9
, A
, B
, ..., Z
(Großbuchstaben)
Diese erweiterte Herausforderung ist optional. Wenn Sie dieser Route folgen, reduzieren Sie Ihre Byteanzahl um 20% (es ist nicht erforderlich, auf eine Ganzzahl zu runden).
Because they have twelve eyes, they naturally use a base-12 numbering system.
Na klar. Das ist der Grund, warum wir immerhin Binary verwenden ... ;-)