La constante de Champernowne est un nombre qui est construit en concaténant les premiers n
nombres, avec une n
tendance à l'infini. Cela ressemble à quelque chose comme ça:
0.123456789101112131415161718192021222324252627282930...
Maintenant, je vais vous décrire le numéro Rien . Cela peut être considéré comme une minimisation de la constante de Champernowne comme un entier. Je ferai référence au numéro Rien avec les premiers n
chiffres comme Ri ( n ). Voici comment le formuler:
- Les premiers
n
nombres naturels (la séquence {1,2,3, ...}) sont concaténés. - Ce résultat est ensuite trié en fonction de la valeur numérique. Donc
1..12
, ressemblerait011111223456789
. - Étant donné que le Rien nombre ne peut pas avoir des zéros, nous passons tous
0
s afin qu'ils soient importants, tout en gardant le nombre réduit, ce qui , par exemple,101111223456789
. C'est Ri ( n ), en l'occurrence Ri (12).
Voici quelques résultats pour Ri ( n ):
n Ri ( n ) 1 1 2 12 3 123 7 1234567 9 123456789 10 10123456789 15 101111111223344556789 34 10001111111111111222222222222223333333334344545666777888999 42 1000011111111111122222222222222333333333333334444455556666777788889999 45 1000011111111111122222222222222333333333333333434444444555556666777788889999 55 100000111111111111122222222222222333333333333333344 100 100000000000111111111111111122222222222222222222333333333333333333334444444444444444444545555555555555555556666666666666666666666666667676777777777777777997799779977999999 999100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
Objectif Étant donné un nombre 1 ≤ n
<10000 en entrée (via des arguments, STDIN ou codage en dur si votre langue ne prend pas en charge les entrées classiques), output / return Ri ( n
).
Ceci est un code-golf , donc le code le plus court en octets gagne. Vous pouvez utiliser une langue qui a été créée après ce concours, à condition que cela n’ait pas été fait pour répondre à ce défi. (Bien sûr, vous pouvez l' utiliser si cela apporte une solution intéressante, mais indiquez que votre réponse est non concurrente.)
Mise en oeuvre de référence
J'ai testé cela dans IE, donc il ne devrait vraiment pas y avoir de problème. S'il est un problème, il y a une solution simple: obtenir un navigateur sain d' esprit.
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">
Classement
L'extrait de pile au bas de cet article génère le catalogue à partir des réponses a) sous forme de liste des solutions les plus courtes par langue et b) sous forme de classement global.
Pour vous assurer que votre réponse apparaît, commencez votre réponse par un titre, en utilisant le modèle Markdown suivant:
## Language Name, N bytes
où N
est la taille de votre soumission. Si vous améliorez votre score, vous pouvez conserver les anciens scores en les effaçant. Par exemple:
## Ruby, <s>104</s> <s>101</s> 96 bytes
Si vous souhaitez inclure plusieurs numéros dans votre en-tête (par exemple, parce que votre score est la somme de deux fichiers ou si vous souhaitez répertorier séparément les pénalités d'indicateur d'interprétation), assurez-vous que le score réel est le dernier numéro de l'en-tête:
## Perl, 43 + 2 (-p flag) = 45 bytes
Vous pouvez également faire du nom de langue un lien qui apparaîtra ensuite dans l'extrait de code:
## [><>](http://esolangs.org/wiki/Fish), 121 bytes
1
s devant les 0
s, oui?
0
c'est le numéro rien .