Considere la cadena infinita de todos los enteros decimales no negativos concatenados juntos en orden (similar a la constante de Champernowne ):
0123456789101112131415161718192021222324252627282930...979899100101102103...
Escriba un programa o función que tome un entero no negativo que indexe (basado en 0) en esta cadena infinita. Genera un valor verdadero si el dígito indexado es 0, de lo contrario, genera un valor falso si el dígito es 1-9.
El código más corto en bytes gana.
Las primeras 25 entradas que producen verdad son:
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
Felicitaciones si su programa es eficiente en memoria, pero esto no es un requisito.
code-golf
string
integer
decision-problem
Pasatiempos de Calvin
fuente
fuente
Respuestas:
Haskell, 25 bytes
Ejemplo de uso:
(<'1').((show=<<[0..])!!) 312
->True
fuente
05AB1E , 5 bytes
Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea!
fuente
Mathematica,
4240 bytesFunción anónima. Toma un número como entrada y devuelve o
True
oFalse
como salida. Una solución más larga pero más eficiente (?):fuente
CJam, 9 bytes
Este es un bloque (función) sin nombre que toma un número entero y devuelve 0 o 1 en consecuencia.
Explicación:
Intérprete en línea . Tenga en cuenta que
~
evalúa un bloque. Alternativamente, puede ejecutar este conjunto de pruebas que utiliza,
para filtrar los primeros 1000 números para valores verdaderos.fuente
MATL, 11 bytes
Pruébalo en línea!
Explicacion :
fuente
Brachylog ,
108 bytes2 bytes gracias a Fatalize.
Pruébalo en línea!
fuente
@e
vectoriza asíy@ec:?m0
funciona, para guardar 2 bytes.#0
,#1
,#+
,#_
,#>
y#<
vectorizar como@e
lo hace. Algunos de los predicados que vectorizan, como+
o*
no vectorizan recursivamente al nivel de lista más bajo, y no realizan lo mismo dependiendo de la estructura de la entrada.Perl 6 ,
2625 bytesUna lambda que toma un número como entrada y devuelve un
True
oFalse
.Memoria eficiente.
Cómo funciona
0..*
- Construir el rango de 0 a infinito.map(|*.comb, )
- Repita perezosamente el rango, reemplazando cada número con los caracteres de su representación de cadena y devolviendo una nueva secuencia perezosa. El|
mantiene la nueva secuencia aplanada.[$_]
- Tome el elemento en el índice definido por el parámetro lambda (declarado implícitamente)$_
.+
- Obligarlo a un número. (Este paso es necesario porque coaccionar una cadena directamente a un valor booleano siempre da True a menos que la cadena esté vacía).!
- Obligarlo a un booleano y negarlo.( pruébalo en línea )
EDITAR: -1 byte gracias a b2gills.
fuente
{!+map(|*.comb,0..*)[$_]}
que se me ocurrió{!+({|($++).comb}...*)[$_]}
antes de mirar para ver si ya había una respuesta P6.!+
puede ser reemplazado por1>
Jalea , 6 bytes
Pruébalo en línea!o verificar todos los casos de prueba .
Cómo funciona
fuente
Python 3.5, 40 bytes
Probarlo en repl.it .
Cómo funciona
Para la entrada n ,
'%d'*-~n
repite la cadena de formato n + 1 veces.(*range(n),n)
desempaqueta el rango [0, ..., n - 1] y produce la tupla (0, ..., n) ....%...
reemplaza cada aparición de % d con el número entero correspondiente en el rango, produciendo la cadena 01234567891011 ... n .(...)[n]<'1'
selecciona el carácter en el índice ny prueba si es menor que el carácter 1 .fuente
Python 3, 44 bytes
Una función anónima que toma datos a través de argumentos y devuelve
True
oFalse
según correspondaCómo funciona
Pruébalo en Ideone
fuente
Pyth,
87 bytesGracias a @LeakyNun por -1 byte
Este es mi primer intento de jugar golf en Pyth.
Un programa completo que imprime
True
oFalse
según corresponda.Pruébalo en línea
Primeras 25 entradas verdaderas
Cómo funciona
fuente
SILOS , 141 bytes
Pruébalo en línea!
Utiliza solo 5 enteros, máxima eficiencia de memoria \ o /
Explicación
Generamos tantos dígitos como la entrada en la constante de Champernowne.
En el bucle principal, hacemos lo siguiente:
100
dígito s de1234
se obtiene por(1234/10)%10
donde/
es la división del piso.fuente
JavaScript (ES6), 45 bytes + Kudos
Mi mejor versión no Kudos fue de 34 bytes:
fuente
JavaScript (ES6), 47 bytes
n=>[...Array(n+1)].reduce((a,_,i)=>a+i,'')[n]<1
fuente
Javascript (ES6),
4233 bytesEjemplo:
fuente
Groovy, 56 bytes
Nada lujoso, pero estoy probando algunas cosas nuevas.
fuente
Perl, 24 bytes
Incluye +1 para
-p
Ejecutar con entrada en STDIN:
imprima 1 por cero, nada de lo contrario
zero.pl
fuente
PHP, 36 bytes
Imprima
1
si el argumento Champernowne-th decimal es0
, de lo contrario imprima '' (cadena vacía).fuente
Ruby,
3523 bytesEsta es una función anónima que concatena
[0..n]
, toma eln
índice th y comprueba si ese carácter es"0"
(menor que"1"
). Sugerencias de golf bienvenidas.Ungolfing
fuente
En realidad,
98 bytesEsta respuesta concatena el rango
[0..n]
, toma eln
índice th y comprueba si ese carácter es"0"
. Sugerencias de golf bienvenidas. Pruébalo en línea!Ungolfing
fuente
Bash,
3128 bytesLa salida es no vacía (verdad) o vacía (falsedad). Pruébalo en Ideone .
fuente
Julia,
2120 bytes¡Gracias a @LuisMendo por jugar golf en 1 byte!
Pruébalo en línea!
fuente
R,
6157 bytesGracias a @plannapus por 4 bytes.
Crea un vector de números 0: n (para indexación 0), crea una cadena de ellos, extrae el enésimo valor de la cadena (ajustando para indexación 0). Convierte a numérico y prueba si es 0.
fuente
GolfScript, 12 bytes
Explicación:
¡Pruébelo en línea o verifique todos los casos de prueba!
fuente
C, 154 bytes
la función que calcula el valor es f (n, 0,0,0) donde n es el índice de entrada. puede calcular a partir del índice cambiando "return! c" en "return c" el valor de la matriz en ese índice ... no entiendo cómo pero parece funcionar bien ...
fuente
Javascript (ES5):
6160 bytesSin golf:
Antiguo:
Viejo sin golf:
fuente
!s[n]
lugar des[n]==0
?function(n){s="";while(s.length<n)s+=s.length;return !s[n]}
) devuelve a (31) = falso.CoffeeScript, 56 bytes
fuente
zsh, 31 bytes
exit 0
es cierto en zshfuente
C #, 71 bytes
Al principio pensé que era corto, pero luego tuve que agregar
n+=11
para evitar que arrojara unSystem.IndexOutOfRangeException
cuando se ingresaron números por debajo de 11fuente
Pyke, 7 bytes
Pruébalo aquí!
fuente