Die Champernowne-Konstante ist eine Zahl, die durch Verketten der ersten n
Zahlen mit n
Tendenz zur Unendlichkeit konstruiert wird . Es sieht ungefähr so aus:
0.123456789101112131415161718192021222324252627282930...
Nun werde ich Ihnen die Rien- Nummer beschreiben. Es kann als Minimierung der Champernowne-Konstante als Ganzzahl betrachtet werden. Ich beziehe mich auf die Rien- Nummer mit den ersten n
Ziffern als Ri ( n ). So formulieren Sie es:
- Die ersten
n
natürlichen Zahlen (die Folge {1,2,3, ...}) werden verkettet. - Dieses Ergebnis wird dann nach dem Ziffernwert sortiert. So
1..12
würde es aussehen011111223456789
. - Da die Rien- Zahl keine führenden Nullen haben kann, verschieben wir alle
0
s so, dass sie signifikant sind, während die Zahl minimiert bleibt101111223456789
. Dies ist Ri ( n ), in diesem Fall Ri (12).
Hier sind einige Ergebnisse für Ri ( n ):
n Ri ( n ) 1 1 2 12 3 123 7 1234567 9 123456789 10 10123456789 15 101111111223344556789 34 1000111111111112222222222222233333334444555666777888999 42 10000111111111111222222222222233333333333333444444455556666777788889999 45 10000111111111111222222222222233333333333333344444444444555556666777788889999 55 100000111111111111111222222222222223333333333333344444444444444555555555566666777778888899999 100 10000000000011111111111111111111222222222222222222223333333333333333334444444444444444444455555555555555556666666666666666667777777777777777777779999998888888888888888889999 999100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Ziel Bei einer Zahl von 1 ≤ n
<10000 als Eingabe (über Argumente, STDIN oder Hardcoding, wenn Ihre Sprache keine konventionelle Eingabe unterstützt), geben Sie Ri ( n
) aus / zurück .
Dies ist ein Code-Golf , also gewinnt der kürzeste Code in Bytes. Sie können eine Sprache verwenden, die nach diesem Wettbewerb erstellt wurde, sofern sie nicht für die Beantwortung dieser Herausforderung erstellt wurde. (Natürlich können Sie können es verwenden, wenn es eine interessante Lösung bietet, sondern markieren Sie Ihre Antwort als nicht konkurrieren.)
Referenzimplementierung
Ich habe das im IE getestet, es sollte also wirklich kein Problem geben. Wenn es ist ein Problem, gibt es eine einfache Lösung: einen gesunden Browser erhalten.
function min(n) {
var seq = [];
for(var i = 1; i <= n; i++) seq.push(i);
seq = seq.join("").split("").map(Number);
var to;
if(seq.indexOf(1) >= 0) to = seq.splice(seq.indexOf(1), 1);
seq.sort(function(a, b) {
return a - b;
});
if(to) seq = to.concat(seq);
return seq.join("");
}
t.onchange = t.onkeyup = function() {
h.innerHTML = min(this.value)
}
* {
font-family: Consolas, monospace;
}
input {
border: 2px dotted #aaaaaa;
border-radius: 5px;
margin: 10px;
}
<input id="t" type="number">
<div id="h">
Bestenliste
Das Stapel-Snippet am Ende dieses Beitrags generiert den Katalog aus den Antworten a) als Liste der kürzesten Lösungen pro Sprache und b) als Gesamt-Bestenliste.
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift. Verwenden Sie dazu die folgende Markdown-Vorlage:
## Language Name, N bytes
Wo N
ist die Größe Ihres Beitrags? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Wenn Sie mehrere Zahlen in Ihre Kopfzeile aufnehmen möchten (z. B. weil Ihre Punktzahl die Summe von zwei Dateien ist oder wenn Sie die Strafen für Interpreter-Flags separat auflisten möchten), stellen Sie sicher, dass die tatsächliche Punktzahl die letzte Zahl in der Kopfzeile ist:
## Perl, 43 + 2 (-p flag) = 45 bytes
Sie können den Namen der Sprache auch als Link festlegen, der dann im Snippet angezeigt wird:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
1
s vor das 0
s stellen, ja?
0
ist die Rien- Nummer.