Herausforderung
Bei gegebenem Elementnamen wird dessen Elektronenkonfiguration ausgegeben.
Eingang
Ihre Eingabe ist der vollständige Name jedes Elements (der Bereich reicht von Wasserstoff, 1, bis Kalzium, 20). Mit einigen Ausnahmen sollten Sie in der Lage sein, die folgenden Eingaben zu berücksichtigen:
Natrium - This is sodium
Kalium - This is potassium
Beachten Sie, dass die Eingaben "Natrium" und "Kalium" weiterhin gültig sein müssen.
Der erste Buchstabe wird immer groß geschrieben.
Ausgabe
Sie können auf diese Webseite verweisen Anleitungen zum Erstellen eines Elektronenkonfigurationsdiagramms.
Die folgende Liste zeigt die maximale Anzahl von Elektronen in jeder Schale:
- 1. Schale - 2 Elektronen
- 2. Schale - 8 Elektronen
- 3. Schale - 8 Elektronen
- 4. Schale - 14 Elektronen (obwohl die maximale Anzahl von Elektronen in dieser Schale 2 beträgt)
Eine beispielhafte Ausgabe der Elektronenkonfiguration ist die folgende:
In der Mitte des Diagramms muss sich das Symbol mit einem bis zwei Buchstaben des Elements befinden.
Es können entweder Punkte oder Kreuze verwendet werden, und es spielt keine Rolle, wo sie platziert werden.
Die Ausgabe muss nicht genau so sein, sondern muss eine ASCII-Grafik sein. Das Einzige, was es nicht sein kann, ist die Form2.8.8.1
oder irgendeine andere Form wie diese.
Die Kreise sind nicht notwendig
Eingebaute Funktionen, die auf das Periodensystem der Elemente zugreifen oder Diagramme oder Elektronenkonfigurationen erzeugen, sind hiermit nicht zulässig.
Gewinnen
Das kürzeste Programm in Bytes gewinnt.
Antworten:
MATLAB,
360 363 290 304295 BytesLesen Sie am Ende des Beitrags, wie Sie den alten Code mit Octave testen können.
Dieser Code übernimmt den Namen des Elements (einschließlich Kalium usw.) und zeigt die Ausgabe im ASCII-Format an, sobald sich die Regeln geändert haben.
Die Regeln haben sich geändert, seit ich den Code geschrieben habe, um eine ASCII-Ausgabe zu erfordern. Ich habe meinen Code dazu auf Kosten von 14 Bytes aktualisiert. Ich habe 9 Bytes gespart, indem ich die Umformung () losgeworden bin und nur die
a
Matrix von Anfang an in die richtige Form gebracht habe.Hier ist eine Erklärung, wie es funktioniert:
Dies ist die Ausgabe für Wasserstoff (ignorieren Sie die Punkte, sie sollen verhindern, dass die Linien entfernt werden, wenn Sie hier anzeigen):
Und hier ist die Ausgabe für Calcium.
Und die Ausgabe für Natrium, die jetzt richtig funktioniert (vor Natrium würde es zu Stickstoff führen!).
Die neue Version des Codes funktioniert nicht mit Octave, da es
spiral()
nur in MATLAB vorhanden ist.Sie können den alten Code jedoch mit dem Octave-Online-Interpreter testen :
Führen Sie das aus, und geben Sie eine Zeichenfolge wie "Wasserstoff" (einschließlich der Anführungszeichen) ein. Sobald dies erledigt ist, müssen Sie auf die Schaltfläche zum Erweitern des Diagramms klicken (sieht aus wie ein kleines Diagrammsymbol in der oberen rechten Ecke des Interpreters), damit es das Ganze anzeigt. In Octave werden leider Linien hinzugefügt, die die Punkte verbinden, was in MATLAB nicht der Fall ist. Aber zumindest können Sie die Logik dahinter testen. Wie gesagt, dies ist immer noch eine grafische Ausgabe, aber Sie bekommen eine Vorstellung davon, wie die Elemente nachgeschlagen werden.
quelle
Python 3, 529 Bytes
Vielen Dank an Thomas und Beta, dass sie auf einige Dinge hingewiesen haben, die mir eigentlich klar gewesen wären und mir ein paar Bytes erspart hätten
Massive Verbesserung: Verwenden von String Slicing anstelle von Dikt-Lookup
Nicht die schönsten Programme oder Ausgaben, aber hey, wir brauchten etwas, um diese Herausforderung zu starten. Probieren Sie es online aus .
quelle
"H 1"
und später im Leerzeichen aufteilen?quelle