Diese Herausforderung ist eine Hommage an den PPCG- Benutzer Dennis , der den Räuberteil des Programmiersprachen-Quiz gewonnen hat .
Wenn wir Dennis 'PPCG-Profilseite betrachten , können wir einige ziemlich beeindruckende Dinge sehen:
Er hat derzeit mehr als acht-sechzig tausend Ruf, was ihn an zweiter Stelle in Gesamt rep und übertrifft damit die dritten Platz von fast dreißigtausend. Er hat vor kurzem gewann unsere Wahl für einen neuen Moderator und bekam einen glänzenden neuen Diamanten neben seinen Namen. Aber ich persönlich denke, der interessanteste Teil an Dennis ist seine PPCG-Benutzer-ID-Nummer: 12012.
Auf den ersten Blick 12012
sieht es fast wie ein Palindrom aus , eine Zahl, die umgekehrt dasselbe liest, aber ein wenig verkehrt ist. Es kann das Palindrom werden, 21012
wenn wir die Positionen des ersten 1
und vertauschen 2
, und es kann das Palindrom werden, 12021
wenn wir das letzte 1
und vertauschen 2
. Befolgen Sie außerdem die Konvention, dass führende Nullen in einer Zahl nicht geschrieben werden, und tauschen Sie die ersten 1
und die 0
Ergebnisse aus, 02112
oder vielmehr, 2112
was ein anderes Palindrom ist.
Definieren wir eine Dennis-Zahl als positive Ganzzahl, die selbst nicht palindrom ist, sondern durch Vertauschen der Positionen von mindestens einem Paar von zwei beliebigen Ziffern in ein Palindrom umgewandelt werden kann. Die Reihenfolge einer Dennis-Zahl ist die Anzahl unterschiedlicher Ziffernpaare, die ausgetauscht werden können, um ein (nicht notwendigerweise unterschiedliches) Palindrom zu bilden.
So ist die Reihenfolge der 12012
3 , da 3 verschiedene Paare ihrer Ziffern ( 12012
, , ) um Palindrome zu erzeugen , ausgelagert werden. zufällig ist es die kleinste 3-Dennis-Zahl.12012
12012
12012
10
ist die kleinste Dennis-Zahl und hat die Ordnung 1, weil das umschalten 1
und aka was ein Palindrom 0
ergibt .01
1
Die imaginären führenden Nullen einer Zahl zählen nicht als umschaltbare Ziffern. Zum Beispiel ändert 8908
an 08908
und die ersten beiden Ziffern Vertauschen der Palindrom zu bekommen 80908
ist ungültig. 8908
ist keine Dennis-Nummer.
Man könnte sagen, dass Nicht-Dennis-Nummern die Ordnung 0 haben.
Herausforderung
Schreiben Sie ein Programm oder eine Funktion, die eine positive ganze Zahl N aufnimmt und die N-kleinste Dennis-Zahl zusammen mit ihrer Reihenfolge in einem vernünftigen Format wie 12012 3
oder ausgibt oder zurückgibt (12012, 3)
.
Beispiel: 12012
Ist die 774. Dennis-Nummer 774
, sollte die Ausgabe etwa so lauten, wenn es sich um die Eingabe für Ihr Programm handelt 12012 3
. (Seltsamerweise ist 774 eine andere Dennis-Nummer.)
Der kürzeste Code in Bytes gewinnt.
Hier sind die ersten 20 Dennis-Nummern und ihre Referenzbestellungen:
N Dennis Order
1 10 1
2 20 1
3 30 1
4 40 1
5 50 1
6 60 1
7 70 1
8 80 1
9 90 1
10 100 1
11 110 2
12 112 1
13 113 1
14 114 1
15 115 1
16 116 1
17 117 1
18 118 1
19 119 1
20 122 1