Considérez la chaîne infinie de tous les entiers décimaux non négatifs concaténés ensemble dans l'ordre (semblable à la constante de Champernowne ):
0123456789101112131415161718192021222324252627282930...979899100101102103...
Écrivez un programme ou une fonction qui accepte un entier non négatif qui indexe (sur la base de 0) dans cette chaîne infinie. Sortez une valeur vraie si le chiffre indexé est 0, sinon sortez une valeur fausse si le chiffre est 1-9.
Le code le plus court en octets gagne.
Les 25 premières entrées produisant la vérité sont:
0
11
31
51
71
91
111
131
151
171
191
192
194
197
200
203
206
209
212
215
218
222
252
282
312
Bravo si votre programme est efficace en mémoire, mais ce n'est pas une exigence.
code-golf
string
integer
decision-problem
Loisirs de Calvin
la source
la source
Réponses:
Haskell, 25 octets
Exemple d'utilisation:
(<'1').((show=<<[0..])!!) 312
->True
la source
05AB1E , 5 octets
Code:
Explication:
Utilise l' encodage CP-1252 . Essayez-le en ligne!
la source
Mathematica,
4240 octetsFonction anonyme. Prend un nombre en entrée et renvoie soit
True
ouFalse
en sortie. Une solution plus longue mais plus efficace (?):la source
CJam, 9 octets
Il s'agit d'un bloc (fonction) sans nom qui prend un entier et renvoie 0 ou 1 en conséquence.
Explication:
Interprète en ligne . Notez que
~
évalue un bloc. Alternativement, vous pouvez exécuter cette suite de tests qui utilise,
pour filtrer les 1000 premiers nombres pour les valeurs véridiques.la source
MATL, 11 octets
Essayez-le en ligne!
Explication :
la source
Brachylog ,
108 octets2 octets grâce à Fatalize.
Essayez-le en ligne!
la source
@e
vectorise doncy@ec:?m0
fonctionne, pour économiser 2 octets.#0
,#1
,#+
,#_
,#>
et#<
vectoriser comme le@e
fait. Certains des prédicats qui vectorisent tels que+
ou*
ne vectorisent pas récursivement au niveau de liste le plus bas, et n'effectuent pas la même chose selon la structure de l'entrée.Perl 6 ,
2625 octetsUn lambda qui prend un nombre en entrée et renvoie un
True
ouFalse
.Mémoire-efficace.
Comment ça marche
0..*
- Construisez la plage de 0 à l'infini.map(|*.comb, )
- Itérer par défaut la plage, en remplaçant chaque nombre par les caractères de sa représentation sous forme de chaîne et en renvoyant une nouvelle séquence paresseuse. Le|
maintient la nouvelle séquence aplatie.[$_]
- Prendre l'élément à l'index défini par le paramètre lambda (déclaré implicitement)$_
.+
- Contraignez-le à un certain nombre. (Cette étape est nécessaire car la contrainte d'une chaîne directement sur un booléen donne toujours True sauf si la chaîne est vide.)!
- Le contraindre à un booléen et le nier.( essayez-le en ligne )
EDIT: -1 octet grâce à b2gills.
la source
{!+map(|*.comb,0..*)[$_]}
J'ai trouvé{!+({|($++).comb}...*)[$_]}
avant de chercher s'il y avait déjà une réponse P6.!+
peut être remplacé par1>
Gelée , 6 octets
Essayez-le en ligne! ou vérifier tous les cas de test .
Comment ça marche
la source
Python 3.5, 40 octets
Testez - le sur repl.it .
Comment ça marche
Pour l'entrée n ,
'%d'*-~n
répète la chaîne de format n + 1 fois.(*range(n),n)
décompresse la plage [0, ..., n - 1] et donne le tuple (0, ..., n) ....%...
remplace chaque occurrence de % d par l'entier correspondant dans la plage, ce qui donne la chaîne 01234567891011 ... n .(...)[n]<'1'
sélectionne le caractère à l'index n et teste s'il est inférieur au caractère 1 .la source
Python 3, 44 octets
Une fonction anonyme qui prend une entrée via un argument et retourne
True
ouFalse
selon le cas.Comment ça marche
Essayez-le sur Ideone
la source
Pyth,
87 octetsMerci à @LeakyNun pour -1 octet
Ceci est ma première tentative de golf en Pyth.
Un programme complet qui imprime
True
ouFalse
selon le cas.Essayez-le en ligne
25 premières entrées véridiques
Comment ça marche
la source
SILOS , 141 octets
Essayez-le en ligne!
Utilise seulement 5 entiers, efficacité maximale de la mémoire \ o /
Explication
Nous générons autant de chiffres que l'entrée dans la constante de Champernowne.
Dans la boucle principale, nous faisons ce qui suit:
100
chiffre s de1234
est obtenu par(1234/10)%10
où/
est la division du plancher.la source
JavaScript (ES6), 45 octets + félicitations
Ma meilleure version non-Kudos était de 34 octets:
la source
JavaScript (ES6), 47 octets
n=>[...Array(n+1)].reduce((a,_,i)=>a+i,'')[n]<1
la source
Javascript (ES6),
4233 octetsExemple:
la source
Groovy, 56 octets
Rien d'extraordinaire, mais j'essaie de nouvelles choses.
la source
Perl, 24 octets
Comprend +1 pour
-p
Exécuter avec entrée sur STDIN:
imprimer 1 pour zéro, rien d'autre
zero.pl
la source
PHP, 36 octets
Affiche
1
si l'argument Champernowne-e décimal est0
, sinon affiche '' (chaîne vide).la source
Rubis,
3523 octetsIl s'agit d'une fonction anonyme qui concatène
[0..n]
, prend l'n
index e et vérifie si ce caractère est"0"
(inférieur à"1"
). Suggestions de golf bienvenues.Ungolfing
la source
En fait,
98 octetsCette réponse concatène la plage
[0..n]
, prend l'n
index e et vérifie si ce caractère est"0"
. Suggestions de golf bienvenues. Essayez-le en ligne!Ungolfing
la source
Bash,
3128 octetsLa sortie est non vide (véridique) ou vide (fausse). Testez-le sur Ideone .
la source
Julia,
2120 octetsMerci à @LuisMendo d'avoir joué au golf sur 1 octet!
Essayez-le en ligne!
la source
R,
6157 octetsMerci à @plannapus pour 4 octets.
Crée un vecteur de nombres 0: n (pour l'indexation 0), crée une chaîne d'entre eux, extrait la nième valeur de la chaîne (ajustement pour l'indexation 0). Convertit en numérique et teste s'il est 0.
la source
GolfScript, 12 octets
Explication:
Essayez-le en ligne ou vérifiez tous les cas de test!
la source
C, 154 octets
la fonction qui calcule la valeur est f (n, 0,0,0) où n est l'indice d'entrée. il peut calculer à partir de l'index en changeant "return! c" dans "return c" la valeur du tableau dans cet index ... je ne comprends pas comment mais cela semble fonctionner ok ....
la source
Javascript (ES5):
6160 octetsNon golfé:
Vieux:
Vieux non golfé:
la source
!s[n]
lieu des[n]==0
?function(n){s="";while(s.length<n)s+=s.length;return !s[n]}
) renvoie a (31) = false.CoffeeScript, 56 octets
la source
zsh, 31 octets
exit 0
est vrai dans zshla source
C #, 71 octets
Et je pensais que c'était court au début, mais ensuite j'ai dû ajouter
n+=11
pour l'empêcher de lancer unSystem.IndexOutOfRangeException
lorsque des nombres inférieurs à 11 étaient entrésla source
Pyke, 7 octets
Essayez-le ici!
la source