Reto
Aquí en PPCG, seguro que nos gustan nuestras secuencias, así que aquí hay otra divertida .
Vamos a definir a(n)
como el menor entero no negativo X
que no es igual a cualquier a(k)
( 0 < k < n
), y a(n-1)
, y X
no comparten ninguna dígitos decimales.a(0) = 0
Dada una entrada n > 0
, salida tal a(n)
.
Por ejemplo, para la entrada n = 13
, tenemos a(13) = 20
, ya que a(12) = 11
y 20
es el número entero no negativo más pequeño que no hemos visto todavía y que no comparte ningún dígito decimal 11
.
Secuencia
Aquí están los primeros 20 términos para comenzar. Esta es la secuencia A067581 en OEIS.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 22, 11, 20, 13, 24, 15, 23, 14, 25
Reglas
- Se puede suponer que la entrada y la salida encajan en el tipo de entero nativo de su idioma.
- La entrada y la salida se pueden dar en cualquier formato conveniente .
- Puede optar por 0-index, como estoy aquí en mis ejemplos, o 1-index para su envío. Por favor, indique lo que está haciendo.
- Un programa completo o una función son aceptables. Si es una función, puede devolver el resultado en lugar de imprimirlo.
- Si es posible, incluya un enlace a un entorno de prueba en línea para que otras personas puedan probar su código.
- Las lagunas estándar están prohibidas.
- Este es el código de golf, por lo que se aplican todas las reglas habituales de golf, y gana el código más corto (en bytes).
n > 1
(on ≥ 2
) como entrada? (1 indexación)Respuestas:
Python 2 , 85 bytes
-1 byte gracias a Dead Possum
Pruébalo en línea!
fuente
n=0,
para -1 byte?Japt , 18 bytes
¡Pruébalo en línea! Acabo de agregar la
g
función utilizada aquí, pero es algo que he querido agregar durante mucho tiempo (y esto me empujó al límite, porque mi falta deg
solución era de alrededor de 35 bytes).Explicación
fuente
Pyth , 20 bytes
Pruébalo en línea! o Prueba la suite de prueba.
fuente
Haskell, 79 bytes
El código es horriblemente ineficiente. Para calcular valores mayores, es decir,> 12, agregue
f x|x<11=x
entre las dos líneas (implementado ag
en el enlace TIO).Pruébalo en línea!
fuente
JavaScript (ES6), 82 bytes
0 indexado.
Manifestación
Mostrar fragmento de código
fuente
Casco , 18 bytes
Una solución indexada 1. Pruébalo en línea!
Editar: error corregido para +1 byte.
Explicación
La función de iteración incorporada de Husk
¡
tiene muchos significados. Aquí, estoy usando "construir lista infinita agregando repetidamente nuevos elementos calculados a partir de los existentes". La segunda línea es la función auxiliar que calcula un nuevo elemento:La primera línea es la función principal:
fuente
Haskell, 78 bytes
Sería aún más eficiente si el segundo argumento
!
no fuera la lista de números vistos sino de números no vistos. Pero no puedo hacer eso sin usar más bytes.Pruébalo en línea!
fuente
Mathematica 115 Bytes
Todavía hay espacio para jugar golf, y tal vez usar la recursividad (acelerando así).
Código detallado original, con la misma idea básica:
fuente