L' itération de puissance minimale d'un nombre est définie comme suit:
Autrement dit, élevé au chiffre le plus bas de . Par exemple, et .
La racine de puissance minimale d'un nombre est définie comme le nombre obtenu à partir de l'application répétée de jusqu'à ce qu'un point fixe soit trouvé. Voici un tableau des racines de puissance minimales des nombres compris entre 1 et 25:
n MPR(n)
--------------------------
1 1
2 1
3 531441
4 1
5 3125
6 4738381338321616896
7 1
8 16777216
9 1
10 1
11 11
12 12
13 13
14 14
15 15
16 16
17 17
18 18
19 19
20 1
21 21
22 1
23 279841
24 1
25 1
Défi: générer les nombres dont la racine de puissance minimale n'est pas égale à 1 ou elle-même.
Voici les 50 premiers chiffres de cette séquence:
3, 5, 6, 8, 23, 26, 27, 29, 35, 36, 39, 42, 47, 53, 59, 64, 72, 76, 78, 82, 83, 84, 92, 222, 223, 227, 228, 229, 233, 237, 239, 254, 263, 267, 268, 269, 273, 276, 277, 278, 279, 285, 286, 287, 289, 296, 335, 338, 339, 342
Règles
- Vous pouvez générer les premiers
n
nombres de cette séquence (indexés 0 ou 1), générer len
e terme, créer un générateur qui calcule ces termes, en produire une infinité de nombres, etc. - Vous pouvez prendre une entrée et donner une sortie dans n'importe quelle base, mais les calculs pour MPR doivent être en base 10. Par exemple, vous pouvez prendre une entrée
###
(en unaire) et une sortie### ##### ######
(en unaire) - Vous devez donner des chiffres. Vous ne pouvez pas (par exemple) sortir
"3", "5", "6"
, car ce sont des chaînes.3, 5, 6
et3 5 6
sont tous deux valides, cependant. La sortie de2 3
,"23"
outwenty-three
sont toutes considérées comme des représentations non valides du nombre23
. (Encore une fois, vous pouvez utiliser n'importe quelle base pour représenter ces nombres.) - Il s'agit d'un code-golf , donc le code le plus court (en octets) l'emporte.
Réponses:
05AB1E , 8 octets
Génère le nième numéro 1 -indexé
Essayez-le en ligne!
Explication
En option sous forme de liste infinie avec le même nombre d'octets:
Essayez-le en ligne!
la source
µ
etΔ
juste après la publication du défi et j'ai obtenu exactement la même réponse, mais je me demandais pourquoi cela n'a pas fonctionné ... J'ai utiliséD
plutôt queÐ
parce que je pensais qu'une copie aurait été utilisée par la fonction virgule fixe et l'autre par la fonction plus petite que, mais je n'ai pas pris en compte que j'avais besoin d'une autre copie. Merci, Emigna, d'avoir résolu mon Enimga.Perl 6 , 49 octets
Essayez-le en ligne!
Renvoie une séquence infinie. Je suppose que la version suivante de 45 octets fonctionne aussi, mais je ne peux pas prouver que le point fixe est toujours trouvé après n itérations.
la source
J ,
413937 octetsEssayez-le en ligne!
Celui-ci est un programme complet imprimant la séquence infinie. Une occasion très rare où un programme complet bat un verbe en J.
Comment ça marche
J ,
4139 octetsEssayez-le en ligne!
Un verbe monadique. Étant donné un index basé sur 1, renvoie le nombre à cet index. Le pied de page vérifie que les 20 premiers termes sont corrects.
En lisant le mot "point fixe", j'ai immédiatement pensé "Oh ouais,
^:_
fera du bon travail." Puis je me suis retrouvé avec cette abomination de visages en colère et tristes. Et ce n'est même pas un train, c'est un seul verbe .Ungolfed & Comment ça marche
L'entier de précision arbitraire
0x
est nécessaire pour calculer le point fixe avec précision, par exemple du nombre 6.la source
^:
, ma tête commence à me faire mal au deuxième :)(>:[(<(^{.@/:~&.":)^:_)echo])^:_]1x
_&(_&(]]+]>:(^{.@/:~&.":)^:_)>:)*
prendre l'entrée comme un entier étenduPyth , 10 octets
Essayez-le en ligne!
GZZQ
.f
Q
u^GshS`G
Z
Le code racine de puissance minimale fonctionne en trouvant un point fixe
u
pour élever le nombre actuelG
à la puissance de son chiffre minimal, qui est le même que le premier chiffre (h
) trié lexicographiquement (S
), puis reconverti en entier (s
).la source
Gelée , 10 octets
Un lien monadique prenant un entier
I
,, de STDIN qui donne les premièresI
entrées.Essayez-le en ligne!
(
*DṂƊƬṪ%@µ#
fonctionne pour 10 aussi)Comment?
Incrémentation à partir d' un
n=0
jusqu'à ce que lesinput
résultats truthy d'une fonction monadique sont rencontrées et les rendements de cesn
s.La fonction applique à plusieurs reprises une autre fonction monadique en commençant par
x=n
et collecte les valeurs dex
jusqu'à ce que les résultats ne soient plus uniques. (par exemple: les19
rendements[19]
, les23
rendements[23,529,279841]
, les24
rendements[24, 576, 63403380965376, 1]
, etc ...) et dequeues le résultat (supprime la valeur extrême gauche), vient compléter toutes les valeurs (1-x
) et les utilisationsȦ
pour produire0
quand il y a un zéro dans la liste ou si elle est vide.La fonction la plus intérieure élève le courant
x
à tous les chiffres dex
puis conserve le minimum (cela est une sauvegarde d'octets par rapport à la recherche du chiffre minimum en premier).la source
ƬḊCȦ
là-bas. :-)Ṫ>
ramasse0
:(Mathematica,
5951 octets-8 octets grâce à Misha Lavrov .
Fonction pure. Prend un nombre en entrée et renvoie la liste des termes jusqu'à ce nombre en sortie. Rien de bien compliqué ici.
la source
FixedPoint
n'est généralement pas aussi bon que//.
(abréviation deReplaceRepeated
) en code golf. Ici, nous pouvons économiser quelques octets avecSelect[Range@#,1<(#//.x_:>x^Min@IntegerDigits@x)!=#&]&
.Select[Range@#,#<(#//.x_:>x^Min@IntegerDigits@x)&]&
.Python 3 ,
9088 octets-2 octets par @mypetlion
Essayez-le en ligne!
print
en tant qu'expression enregistre deux octets par rapport à l'utilisation de l'if
instruction en Python 2.F
calcule le point fixe MPI; le reste donne la séquence infinie à STDOUT.la source
return m>x and F(m)or m
àreturn[int,F][m>x](m)
pour enregistrer 2 octets.Haskell,
6762 octetsRenvoie une liste infinie.
Essayez-le en ligne!
la source
Rubis , 52 octets
Essayez-le en ligne!
Imprime une séquence infinie
la source
$.
au lieu dex
, enregistre l'initialisation)Java 10,
178173 octetsPort de la réponse Ruby de @GB , imprime donc également indéfiniment.
Essayez-le en ligne.
Explication:
la source
JavaScript (Node.js) , 75 octets
Essayez-le en ligne!
la source
JavaScript (Node.js) ,
98908986 octets-3 octets merci @Conor O'Brien
Essayez-le en ligne!
Semble qu'un générateur est plus court que de renvoyer un tableau de
n
nombres?Ou l'impression à l'infini - 72 octets
Essayez-le en ligne!
la source
if(x>n)yield n
tox>n&&(yield n)
comme expression)Gelée , 14 octets
Essayez-le en ligne!
la source
JavaScript (Chrome),
7877 octetsEssayez-le en ligne!
Port de ma propre solution Python 3 . La dernière version de Chrome est prise en charge
BigInt
(testée sur mon PC). N'essayez pas ce code tel quel sur votre navigateur.la source
Raquette ,
270, 257233 octetsEssayez-le en ligne!
Ceci est ma première soumission de Racket , donc il peut certainement être joué beaucoup plus loin. Néanmoins, je suis quelque peu satisfait, du moins pour avoir réussi à résoudre la tâche.
Plus lisible:
la source
Axiome, 168 octets
La fonction pour l'utiliser est z (); ici, il imprime des nombres qui ont la corrélation un nombre non 1, pas lui-même et sont inférieurs à son argument.
la source
Visual Basic .NET (.NET Core) , 290 octets (inclut les importations)
Essayez-le en ligne!
Nécessite l'importation suivante:
Cela utilise une fonction d'itérateur pour renvoyer une liste infinie (chargée paresseusement) d'entiers qui répond aux critères. Utilise
BigInteger
pour éviter toute restriction de taille, en particulier avec des calculs intermédiaires.Non-golfé:
la source
Lisp commun , 238 octets
Essayez-le en ligne!
la source
APL (NARS), 96 caractères, 192 octets
test (le résultat partiel de l'argument 22 semble beaucoup plus grand, donc <21 arguments, je ne sais pas si ça peut aller)
la source
Python 3 , 102 octets
Essayez-le en ligne!
Décidé d'essayer une solution Python 3 qui imprime directement le nième terme de la séquence.
la source
C (clang) +
-DL=long long
-lm
, 213 octetsEssayez-le en ligne!
La fonction
g(j)
imprime les premiersj
termes de la séquence.la source
a=...
pour enregistrer une dizaine d'octets.x>1
au lieu dex!=1&x>0
.Husk ,
161210 octets6 octets enregistrés grâce à H.PWiz.
Essayez-le en ligne!
Explication
la source
>¹
ici avecS>
. Cela vous permet de tout mettre sur une seule ligne. En outre, il semble que vous soyez parti par erreur dans le lien tio précédentJapt , 44 octets
Essayez-le en ligne!
Substantiellement différent de l'autre réponse Japt.
Explication:
En termes de futures possibilités de golf, j'appelle beaucoup une fonction manuellement sur un numéro, ce qui pourrait être réduit, mais je ne sais pas comment.
la source