Étant donné un entier non négatif n >= 0
, affichez pour toujours la séquence d'entiers x_i >= 3
qui sont des palindromes dans n
des bases exactement différentes b
, où la base peut être 2 <= b <= x_i-2
.
Il s'agit essentiellement de l'inverse de OEIS A126071 , où vous affichez les indices de cette séquence qui ont la valeur n
. C'est un peu différent, parce que je l'ai changé pour que vous ignoriez les bases b = x_i-1, x_i, x_i+1
, car les résultats pour ces bases sont toujours les mêmes (les valeurs sont toujours des palindromes ou toujours pas). De plus, le décalage est différent.
x_i
est limité aux nombres >= 3
afin que le premier terme du résultat pour chacun n
soit A037183 .
Notez que le format de sortie est flexible, mais les nombres doivent être délimités de manière agréable.
Exemples:
n seq
0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ...
1 5 7 8 9 12 13 14 22 23 25 29 35 37 39 41 43 49 ...
2 10 15 16 17 18 20 27 30 31 32 33 34 38 44 ...
3 21 24 26 28 42 45 46 50 51 54 55 56 57 64 66 68 70 ...
4 36 40 48 52 63 65 85 88 90 92 98 121 128 132 136 138 ...
5 60 72 78 84 96 104 105 108 112 114 135 140 156 162 164 ...
10 252 400 420 432 510 546 600 648 784 800 810 816 819 828 858 882 910 912 1040 1056 ...
Donc, pour n=0
, vous obtenez la sortie de ce défi (à partir de 3
), car vous obtenez des nombres qui sont des palindromes dans les n=0
bases.
Car n=1
, 5
est un palindrome dans la base 2
, et c'est la seule base dans 2 <= b <= (5-2)
laquelle c'est un palindrome. 7
Est un palindrome dans la base 2
, et c'est la seule base dans 2 <= b <= (7-2)
laquelle il est un palindrome. Etc.
Si votre langue ne prend pas en charge la sortie infinie, vous pouvez prendre un autre entier z
en entrée et sortir les premiers z
éléments de la séquence, ou tous les éléments inférieurs à z
. Celui que tu préfères. Veuillez indiquer ce que vous avez utilisé dans votre réponse si tel est le cas.
la source
n
bases, pasn
ou plus de bases?n
est l'ensemble des entiers>=3
.Réponses:
Gelée , 18 octets
Essayez-le en ligne! - l'interpréteur en ligne expirera à 60 secondes puis videra sa sortie (sauf s'il a une copie en cache), hors ligne il imprimera chacun à son tour.
Comment?
Évalue les nombres de
n
haut en haut, les imprimant s'ils sont dans la séquence. Notez que le premier nombre dans n'importe quelle sortie sera supérieur àn
car sinon la plage deb
n'est pas assez grande, il n'est donc pas nécessaire d'amorcer le processus avec3
. Notez également que le nombre de palindromes de la base 2 à x i -2 inclus est juste deux de moins que le nombre de palindromes de la base 1 à x .la source
Mathematica,
8071 octetsMerci à JungHwan Min pour avoir économisé 9 octets!
(
∞
est le caractère à trois octets U + 221E.) Fonction pure prenant un entier non négatif en entrée.i~IntegerReverse~Range[2,i-2]
crée une liste des inversions de nombrei
dans toutes les bases de2
ài-2
;Length[...~Cases~i]
compte ensuite combien de ces inversions sont égales ài
nouveau.#!=...||Echo@i
s'arrête silencieusement si ce nombre n'est pas égal à l'entrée et fait échoi
s'il est égal à l'entrée. Cette procédure est intégrée dans une boucle infinie simple.la source
Echo@i
terme n'est pas évalué lorsque le premier argument l'estTrue
. Puis-je ajouter ceci aux conseils pour jouer au golf dans Mathematica ?Do[...,{i,3,∞}]
est plus court que(i=2;While[1>0,... ++i ...])
, etCases
fonctionnerait à la place dePosition
. -9 octets:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
Cases
fonctionne très bien à la place dePosition
. Mais j'ai testé laDo
construction, et ça ne marche pas pour moi mais je n'ai aucune idée pourquoi. Pour une raison quelconque, il ne branche pas lesi
valeurs - j'obtiens des erreurs comme"Range specification in Range[2,-2+i] does not have appropriate bounds."
. (Et l'insertion d'unPrint[i];
vérifie que lesi
valeurs ne sont pas attribuées.) Des idées?,
et{
(probablement quelque chose à voir avec le système de SE). Cela casse le code car les caractères sont considérés comme une variable. J'espère que cela ne l'a pas:Do[#!=Length[i~IntegerReverse~Range[2,i-2]~Cases~i]||Echo@i,{i,3,∞}]&
EDIT: l'a toujours. Voici un lien pastebinPyth,
211918 octetsCela devrait fonctionner en théorie. Cela fonctionne correctement si je remplace la boucle infinie par une boucle finie (par exemple
JQFbr3 50*`bqJlf_IjbTr2tb
pour 3 jusqu'à 50, essayez ici ), mais l'interpréteur Pyth ne sait pas quand ni comment imprimer une sortie littéralement infinie.Explication:
la source
Perl 6 , 90 octets
Essayez-le
la source
Utilitaires Bash + Unix,
134132 octetsEssayez-le en ligne!
L'entrée est passée en argument. La sortie est sur stdout.
Si vous l'exécutez normalement, il affichera un nombre à la fois dans la séquence infinie.
Si vous essayez ceci dans TIO, il affichera autant de sortie qu'il a généré lorsqu'il expire à 60 secondes.
la source
Python 2, 132 octets
Essayez-le en ligne
Le programme TIO a un pied de page ajouté afin que vous n'ayez pas à attendre 1 minute pour que le programme expire avant de voir la sortie.
la source