Défi
Ici à PPCG, nous aimons vraiment nos séquences, alors voici un autre amusant .
Définissons a(n)
comme étant le plus petit entier non négatif X
qui ne correspond pas à une a(k)
( 0 < k < n
et) a(n-1)
et X
ne partagent pas les chiffres décimaux.a(0) = 0
Étant donné une entrée n > 0
, une sortie telle a(n)
.
Par exemple, pour l'entrée n = 13
, nous avons a(13) = 20
, car a(12) = 11
et 20
est le plus petit entier non négatif que nous n'avons pas encore vu qui ne partage aucun chiffre décimal avec 11
.
Séquence
Voici les 20 premiers termes pour vous aider à démarrer. Il s'agit de la séquence A067581 sur OEIS.
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 22, 11, 20, 13, 24, 15, 23, 14, 25
Règles
- L'entrée et la sortie peuvent être supposées correspondre au type d'entier natif de votre langue.
- L'entrée et la sortie peuvent être données dans n'importe quel format pratique .
- Vous pouvez choisir entre 0-index, comme je suis ici dans mes exemples, ou 1-index pour votre soumission. Veuillez indiquer ce que vous faites.
- Un programme complet ou une fonction sont acceptables. S'il s'agit d'une fonction, vous pouvez renvoyer la sortie plutôt que de l'imprimer.
- Si possible, veuillez inclure un lien vers un environnement de test en ligne afin que d'autres personnes puissent essayer votre code!
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
n > 1
(oun ≥ 2
) en entrée? (1-indexation)Réponses:
Python 2 , 85 octets
-1 octet grâce à Dead Possum
Essayez-le en ligne!
la source
n=0,
pour -1 octet?Japt , 18 octets
Testez-le en ligne! Je viens d'ajouter la
g
fonctionnalité utilisée ici, mais c'est quelque chose que je voulais ajouter depuis longtemps (et cela m'a poussé à bout, car ma non-g
solution était d'environ 35 octets).Explication
la source
Pyth , 20 octets
Essayez-le en ligne! ou Essayez la suite de tests.
la source
Haskell, 79 octets
Le code est horriblement inefficace. Pour calculer des valeurs plus grandes, c'est-à-dire> 12, ajoutez
f x|x<11=x
entre les deux lignes (implémenté ag
dans le lien TIO).Essayez-le en ligne!
la source
JavaScript (ES6), 82 octets
0 indexé.
Démo
Afficher l'extrait de code
la source
Husk , 18 octets
Une solution indexée 1. Essayez-le en ligne!
Edit: correction d'un bug pour +1 octet.
Explication
La fonction d'itération intégrée de Husk
¡
a de nombreuses significations. Ici, j'utilise "construire une liste infinie en ajoutant à plusieurs reprises de nouveaux éléments calculés à partir des éléments existants". La deuxième ligne est la fonction d'assistance qui calcule un nouvel élément:La première ligne est la fonction principale:
la source
Haskell, 78 octets
Il serait encore plus efficace que le deuxième argument à
!
ne soit pas la liste des nombres vus mais des nombres invisibles. Mais je ne peux pas faire ça sans utiliser plus d'octets.Essayez-le en ligne!
la source
Mathematica 115 octets
Il reste encore de la place pour jouer au golf - et peut-être utiliser la récursion (l'accélérant ainsi).
Code détaillé original, avec la même idée de base:
la source