In der Atomphysik und der Quantenchemie ist die Elektronenkonfiguration die Verteilung der Elektronen eines Atoms in Atomorbitalen . Beispielsweise beträgt die Elektronenkonfiguration des Neonatoms 1s 2 2s 2 2p 6 . (Aus Wikipedia )
Herausforderung
Ihre Herausforderung besteht darin, eine Zahl zu nehmen, die die Ordnungszahl eines Elements darstellt, und die Elektronenkonfiguration dieses Elements gemäß dem Aufbau-Prinzip auszugeben .
Eisen (26) hat die Elektronenkonfiguration . Hochgestellte Zeichen sind jedoch nicht erforderlich. Die Ausgabe für 26 sollte nach dem Vorbild von sein1s2 2s2 2p6 3s2 3p6 3d6 4s2
1s2 2s2 2p6 3s2 3p6 3d6 4s2
.
Spezifikation
- Sie müssen keine Eingaben außerhalb des Bereichs verarbeiten
1 <= n <= 118
. - Die Ausgabe so etwas wie die Testfälle aussehen sollte, aber Sie können alle nicht-stellige Zeichen / Zeichen verwendet werden (abgesehen von
s
,p
,d
undf
) , um die verschiedenen Orbitalen zu begrenzen. - Sie müssen eine Zeichenfolge mit den Namen / Werten / Delmitern der Umlaufbahn zurückgeben / drucken. Sie können ein Array nicht einfach zurückgeben / drucken.
- Sie müssen keine Ausnahmen vom Aufbau-Prinzip behandeln. In Ausnahmefällen ist das Drucken der "falschen" Konfiguration in Ordnung.
Beispiele:
Input -> Valid output -> Invalid output
16 -> 1s2 2s2 2p6 3s2 3p4 -> 1s22s22p63s23p4
16 -> 1s2, 2s2, 2p6, 3s2, 3p4 -> [[1, 2], [2, 2], [2, 6], [3, 2], [3, 4]]
17 -> 1s2+2s2+2p6+3s2+3p5 -> 1s2s2s2s2p6p3s2s3p5
Hier ist eine Liste aller elektronischen Orbitale. Die Maximalwerte, die sie enthalten können, befinden sich unter dem Namen:
name: 1s 2s 2p 3s 3p 3d 4s 4p 4d 5s 5p 4f 5d 6s 6p 5f 6d 7s 7p
max: 2 2 6 2 6 10 2 6 10 2 6 14 10 2 6 14 10 2 6
Testfälle
Input -> Output
1 -> 1s1
2 -> 1s2
16 -> 1s2 2s2 2p6 3s2 3p4
50 -> 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p2
115 -> 1s2 2s2 2p6 3s2 3p6 3d10 4s2 4p6 4d10 5s2 5p6 4f14 5d10 6s2 6p6 5f14 6d10 7s2 7p3
Hier ist eine vollständige Liste und eine Art Referenzimplementierung ( Online ausprobieren! )
Gewinnbedingung
Da dies Codegolf ist , gewinnt der kürzeste Code!
3d
scheint vor4s
,4d
vor5s
,6s
nach4f
und gefüllt zu sein5d
, was die Madelung-Regel verletzt . Sollten wir Golfprogramme spielen, die die falschen Elektronenkonfigurationen auf den Pastebin drucken?4s1 3d5
anstelle von4s2 3d4
). Ich sehe, dass es in der Sandbox gefragt wurde, aber nie beantwortet wurde. Ignorieren wir dieses Problem?Antworten:
Jelly ,
63 62 5655 BytesProbieren Sie es online!
Vielen Dank an user202729 für das Speichern von 6 Bytes bei der Basisdekomprimierung!
Erläuterung
Zuerst
[[1,2,2,3,3,3,4,4,4,5,5,4,5,6,6,5,6,7,7],'sspspdspdspfdspfdsp']
erstelle ich die Liste mit dem Code“ŒµḊuÆẓƙỊ’D,“çƥ÷£ḟ’ṃ“spdf”¤
im zweiten Link.“ŒµḊuÆẓƙỊ’
ist die Zahl, die1223334445545665677
in die Basis 250 komprimiert ist.D
ergibt eine Liste von Ziffern.“çƥ÷£ḟ’ṃ“spdf”
ändert die Zahl der Basis 250“çƥ÷£ḟ’
in die Basis 4 und indiziert sie in die Zeichenfolge, die“spdf”
ergibt'sspspdspdspfdspfdsp'
. Dies wurde von user202729 beigesteuert.Die Liste wird dann zum ersten Link von genommen
Ç
. Der erste Link bewirkt Folgendes:Nun zurück zum zweiten Link. Mit
xÇ
wiederholen wir jedes der Elemente in jeder Unterliste[[1,2,2,3...7],['sspspd...p']]
durch die Nummern in unserer neuen Liste[2,2,6...]
. Dies ergibt[[1,1,2,2,2,2...],['sssspp...']]
.Z
Zippt die zwei Unterlisten, die ergeben[[1,'s'],[1,'s'],[2,'s']...]
.Nun zum Hauptlink.
¢
ruft den zweiten Link auf, der die endgültige Liste der oben beschriebenen Tupel ergibt. Angenommen, die Eingabe für das Programm ist 5 als Beispiel.quelle
sspspdspd...
Zeichenfolge komprimieren ?“çƥ÷£ḟ’ṃ“spdf”¤
für -6 Byte. Verwendet diese für die Basis 250 integer undṃ
für die Basis - Dekompression.Imperativ Tampio , 930 Bytes
Online Version
Es ist eine sehr einfache Implementierung. In der golfed Version ersetzt ich einfach die Worte , mit kurzen Worten wie
ilo
,yö
,iso
,oma
etc.Ungolfed:
Online Version
Übersetzung:
Die Übersetzung ist ungefähr, ich musste die Wortreihenfolge ändern, um das Englisch natürlicher zu machen.
quelle
Python 2 ,
129128 Bytes-1 byte dank notjagan
Probieren Sie es online!
quelle
Kohle , 72 Bytes
Probieren Sie es online!
Hier haben Sie die ausführliche Version .
quelle
JavaScript (ES6), 102 Byte
Testfälle
Code-Snippet anzeigen
Formatiert und kommentiert
quelle
Swift ,
177175156 BytesLocker basierend auf der Javascript-Antwort von @ Arnauld
Probieren Sie es online!
Ohne die Leerzeichen in den Elektronengruppen
190187169 Bytes:Probieren Sie es online!
quelle
C (gcc)
260187167156152147143138 BytesProbieren Sie es online! Golf von der Referenzimplementierung.
StackExchange entfernt nicht druckbare Elemente, sodass der Wert von
m
durch ersetzt wird"..."
.Hier ist ein umkehrbarer Hexdump des Programms, da in einer Zeichenfolge nicht druckbare Elemente verwendet werden, die das Ganzzahl-Array
{2,2,6,2,6,10,2,6,10,2,6,14,10,2,6,14,10,2,6}
durch die Literal-Byte-Werte der Ganzzahlen ersetzen .Alternativ können Sie den Code auch einfach vom TIO-Link kopieren.
quelle