Générez le numéro den
séquence des bases dans lesquelles se trouve un palindrome ( OEIS A126071 ).
Plus précisément, la séquence est définie comme suit: étant donné un nombre n
, exprimez-le en base a
pour a = 1,2, ..., n
, et comptez combien de ces expressions sont palindromiques. «Palindromique» est compris en termes d'inversion des a
chiffres de base de l'expression en unités atomiques (merci, @Martin Büttner ). À titre d'exemple, considérons n= 5
:
a=1
: l'expression est11111
: palindromiquea=2
: l'expression est101
: palindromiquea=3
: l'expression est12
: non palindromiquea=4
: l'expression est11
: palindromiquea=5
: l'expression est10
: non palindromique
Par conséquent, le résultat pour n=5
est 3
. Notez que OEIS utilise des bases 2, ..., n+1
au lieu de 1, ..., n
(merci, @beaker ). C'est équivalent, car les expressions en base 1
et n+1
sont toujours palindromiques.
Les premières valeurs de la séquence sont
1, 1, 2, 2, 3, 2, 3, 3, 3, 4, 2, 3, 3, 3, 4, 4, 4, 4, 2, 4, 5, ...
L'entrée est un entier positif n
. La sortie est les premiers n
termes de la séquence.
Le programme devrait théoriquement fonctionner (avec suffisamment de temps et de mémoire) pour toutes n
les limitations causées par votre type de données par défaut dans tous les calculs internes.
Toutes les fonctions sont autorisées. Le plus petit nombre d'octets gagne.
la source
Réponses:
Pyth, 13 octets
La brièveté de ceci est principalement due à la
I
commande "I
nvariant".Si
True
est une sortie acceptable pour1
,msm_IjdkSdSQ
(12 octets) fonctionne.Essayez-le ici .
la source
_I#
plutôt quef_IT
(je ne suis pas sûr à 100% qu'il était disponible, mais il semble l'avoir été ).Gelée, 14 octets
Essayez-le en ligne!
Version non concurrente
L'interprète Jelly avait un bug qui rendait impossible la conversion en unaire. Cela a été corrigé maintenant, donc le code suivant ( 12 octets ) accomplit également la tâche à accomplir.
Essayez-le en ligne!
Comment ça fonctionne
la source
MATL , 19
20octetsUtilise la version actuelle (10.1.0) , antérieure à ce défi.
Essayez-le en ligne !
Explication
la source
CJam, 20 octets
Testez-le ici.
la source
Haskell, 88 octets
la source
ES6, 149 octets
Fonctionne également pour les bases> 36.
la source
JavaScript (ES6),
10595 octetsExplication
Prend un nombre de 1 à 36 (limitation de la conversion de base en JavaScript) et renvoie un tableau de la séquence.
Fonction récursive qui vérifie les palindromes lorsqu'une base est passée, sinon renvoie la séquence si juste
n
est passé.Tester
la source
Gelée , 8 octets
Essayez-le en ligne!
Version éventuellement non concurrente:
Essayez-le en ligne!
la source
PHP, 73 + 1 octets
Travaux de bases
1
à36
. Exécuter en tant que pipe avec-nR
ou l' essayer en ligne .la source
PHP, 92 + 1 octets:
fonctionne pour toutes les bases. Exécuter en tant que pipe avec
-nR
ou l' essayer en ligne .la source
Python 2, 97 octets
Mon premier article sur Python, en fait mon premier code Python
a probablement un certain potentiel de golf.
Essayez-le en ligne!
la source
> <>, 197 + 2 octets
+2 pour le drapeau -v
tio.run ne semble pas retourner de sortie pour n> 1, mais vous pouvez le vérifier sur https://fishlanguage.com . L'entrée va dans la case "Pile initiale".
la source
Japt , 10 octets
Essayez-le
Explication
la source
Python 2 , 85 octets
Essayez-le en ligne!
Attend un entier comme argument.
Explication:
la source