Die minimale Potenziteration einer Zahl ist wie folgt definiert:
Das heißt, auf die niedrigste Stelle in angehoben . Zum Beispiel ist und .
Die minimale Potenzwurzel einer Zahl ist definiert als die Zahl, die durch wiederholtes Anwenden von bis ein fester Punkt gefunden wird. Hier ist eine Tabelle der minimalen Potenzwurzeln von Zahlen zwischen 1 und 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
Aufgabe: Erzeuge die Zahlen, deren minimale Potenzwurzel ungleich 1 ist.
Hier sind die ersten 50 Zahlen in dieser Reihenfolge:
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
Regeln
- Sie können die ersten
n
Nummern dieser Sequenz generieren (0- oder 1-indiziert), generieren Sie dien
dritten Term , einen Generator erstellen, der diese Terms berechnet, unendlich viele davon ausgeben usw. - Sie können Eingaben nehmen und Ausgaben in jeder Basis geben, aber die Berechnungen für MPR müssen in Basis 10 sein. Sie können beispielsweise Eingaben
###
(in Unary) und Ausgaben nehmen### ##### ######
(in Unary) nehmen. - Sie müssen Zahlen ergeben. Sie dürfen (zB) nicht ausgeben
"3", "5", "6"
, da es sich um Strings handelt.3, 5, 6
und3 5 6
sind jedoch beide gültig. Das Ausgeben von2 3
,"23"
odertwenty-three
alle werden als ungültige Darstellungen der Zahl betrachtet23
. (Auch hier können Sie eine beliebige Basis verwenden, um diese Zahlen darzustellen.) - Dies ist ein Code-Golf , also gewinnt der kürzeste Code (in Bytes).
Antworten:
05AB1E , 8 Bytes
Erzeugt die n-te Nummer 1 -indiziert
Probieren Sie es online!
Erläuterung
Optional als unendliche Liste bei gleicher Byteanzahl:
Probieren Sie es online!
quelle
µ
undΔ
direkt nach der Herausforderung veröffentlicht und erhielt diese genau die gleiche Antwort, aber ich frage mich , warum es nicht funktioniert hat ... Ich habeD
nicht ,Ð
weil ich dachte , eine Kopie verwendet wurde , durch die Festpunktfunktion würde und die andere durch die Kleiner-als-Funktion, aber ich habe nicht berücksichtigt, dass ich noch eine Kopie brauchte. Danke, Emigna, dass du meine Enimga gelöst hast.Perl 6 , 49 Bytes
Probieren Sie es online!
Gibt eine unendliche Folge zurück. Ich nehme an, dass die folgende 45-Byte-Version auch funktioniert, aber ich kann nicht beweisen, dass der Fixpunkt immer nach n Iterationen gefunden wird.
quelle
J ,
413937 BytesProbieren Sie es online!
Dieses ist ein volles Programm, das die unendliche Folge druckt. Eine sehr seltene Gelegenheit, bei der ein volles Programm ein Verb in J schlägt.
Wie es funktioniert
J ,
41-39BytesProbieren Sie es online!
Ein monadisches Verb. Bei einem auf 1 basierenden Index wird die Nummer an diesem Index zurückgegeben. Die Fußzeile überprüft, ob die ersten 20 Begriffe korrekt sind.
Als ich das Wort "Fixpoint" las, dachte ich sofort: "Oh ja, das
^:_
wird großartige Arbeit leisten." Dann endete ich mit diesem Gräuel von wütenden und traurigen Gesichtern. Und es ist nicht einmal ein Zug, es ist ein einzelnes Verb .Ungolfed & Wie es funktioniert
Die Ganzzahl mit willkürlicher Genauigkeit
0x
wird benötigt, um den Fixpunkt genau zu berechnen, z. B. der Zahl 6.quelle
^:
, mein Kopf fängt an zu schmerzen bei dem zweiten von ihnen :)(>:[(<(^{.@/:~&.":)^:_)echo])^:_]1x
_&(_&(]]+]>:(^{.@/:~&.":)^:_)>:)*
Eingabe als erweiterte GanzzahlPyth , 10 Bytes
Probieren Sie es online!
Dies erzeugt eine Liste der erstenn solcher Nummern. Das automatisch gefüllte Programm hat
GZZQ
ein Suffix. Dies findet einfach (.f
) die erstenQ
Zahlen, die eine minimale Potenzwurzel haben, dieu^GshS`G
größer ist als sie selbstZ
.Der Root-Code für die minimale Potenz ermittelt einen festen Punkt
u
, an dem die aktuelle ZahlG
auf die minimale Stelle hochgesetzt wird. Dies entspricht der ersten Ziffer (h
), die lexikografisch sortiert (S
) und anschließend in eine Ganzzahl (s
) zurückgewandelt wird.quelle
Gelee , 10 Bytes
Ein monadischer Link, der eine Ganzzahl
I
von STDIN annimmt, die die erstenI
Einträge liefert .Probieren Sie es online!
(
*DṂƊƬṪ%@µ#
funktioniert auch für 10)Wie?
Es wird gezählt,
n=0
bisinput
wahrheitsgemäße Ergebnisse einer monadischen Funktion angetroffen werden und diesen
s ergeben.Die Funktion wendet wiederholt eine andere monadische Funktion an, beginnend mit
x=n
und sammelt die Werte von,x
bis die Ergebnisse nicht mehr eindeutig sind. (z. B .:19
Erträge[19]
;23
Erträge[23,529,279841]
;24
Erträge[24, 576, 63403380965376, 1]
; usw.) und reiht das Ergebnis in die Warteschlange (entfernt den am weitesten links stehenden Wert), ergänzt alle Werte (1-x
) und verwendet, umȦ
zu ergeben,0
wenn die Liste eine Null enthält oder leer ist.Die innerste Funktion erhöht den Strom
x
auf alle Ziffern vonx
und hält dann das Minimum (dies ist eine Byte-Ersparnis gegenüber dem Finden der minimalen Ziffer zuerst).quelle
ƬḊCȦ
dort drüben. :-)Ṫ>
nimmt auf0
:(Mathematica,
5951 Bytes-8 Bytes dank Mischa Lawrow .
Funktion pur. Nimmt eine Zahl als Eingabe und gibt die Liste der Begriffe bis zu dieser Zahl als Ausgabe zurück. Nichts sehr kompliziertes hier.
quelle
FixedPoint
ist normalerweise nicht so gut wie//.
(kurz fürReplaceRepeated
) in Code Golf. Hier können wir mit ein paar Bytes sparenSelect[Range@#,1<(#//.x_:>x^Min@IntegerDigits@x)!=#&]&
.Select[Range@#,#<(#//.x_:>x^Min@IntegerDigits@x)&]&
.Python 3 ,
9088 Bytes-2 Bytes von @mypetlion
Probieren Sie es online!
print
Wenn ein Ausdruck zwei Bytes spart, berechnet usingif
statement in Python 2F
den MPI-Fixpunkt. der Rest gibt STDOUT die unendliche Folge.quelle
return m>x and F(m)or m
zureturn[int,F][m>x](m)
, um 2 Byte zu speichern.Haskell,
6762 BytesGibt eine unendliche Liste zurück.
Probieren Sie es online!
quelle
Ruby , 52 Bytes
Probieren Sie es online!
Gibt eine unendliche Folge aus
quelle
$.
stattx
, speichert Initialisierung)Java 10,
178173 BytesPort von @GBs Ruby-Antwort , druckt also auch auf unbestimmte Zeit.
Probieren Sie es online aus.
Erläuterung:
quelle
JavaScript (Node.js) , 75 Byte
Probieren Sie es online!
quelle
JavaScript (Node.js) ,
98908986 Byte-3 Bytes danke @Conor O'Brien
Probieren Sie es online!
Scheint, dass ein Generator kürzer ist, als ein Array von
n
Zahlen zurückzugeben?Oder unendlich drucken - 72 Bytes
Probieren Sie es online!
quelle
if(x>n)yield n
aufx>n&&(yield n)
als Ausdruck)Jelly , 14 Bytes
Probieren Sie es online!
quelle
JavaScript (Chrome),
7877 BytesProbieren Sie es online!
Port meiner eigenen Python 3-Lösung . Die neueste Version von Chrome unterstützt
BigInt
(auf meinem PC getestet). Probieren Sie diesen Code nicht so aus, wie er in Ihrem Browser ist.quelle
Schläger ,
270, 257,233 BytesProbieren Sie es online!
Dies ist meine erste Racket- Einsendung, daher kann man definitiv viel weiter Golf spielen. Trotzdem bin ich etwas zufrieden, zumindest damit, die Aufgabe zu lösen.
Besser lesbar:
quelle
Axiom, 168 Bytes
Die zu verwendende Funktion ist z (); hier druckt es Zahlen, die die Entsprechung einer Zahl haben, nicht 1, nicht sich selbst und sind kleiner als sein Argument.
quelle
Visual Basic .NET (.NET Core) , 290 Byte (einschließlich Importe)
Probieren Sie es online!
Erfordert folgenden Import:
Dies verwendet eine Iteratorfunktion, um eine unendliche (verzögert geladene) Liste von Ganzzahlen zurückzugeben, die die Kriterien erfüllt. Verwendet
BigInteger
zur Vermeidung von Größenbeschränkungen, insbesondere bei Zwischenberechnungen.Nicht golfen:
quelle
Common Lisp , 238 Bytes
Probieren Sie es online!
quelle
APL (NARS), 96 Zeichen, 192 Byte
Test (Teilergebnis für Argument 22 scheint zu groß, also <21 Argumente, ich weiß nicht, ob es in Ordnung sein kann)
quelle
Python 3 , 102 Bytes
Probieren Sie es online!
Beschlossen, eine Python 3-Lösung zu verwenden, die direkt den n-ten Ausdruck in der Sequenz ausgibt.
quelle
C (clang) +
-DL=long long
-lm
213 BytesProbieren Sie es online!
Funktion
g(j)
druckt die erstenj
Terme der Sequenz.quelle
a=...
, um etwa ein Dutzend Bytes zu speichern.x>1
stattx!=1&x>0
.Schale ,
161210 Bytes6 Bytes gespart dank H.PWiz.
Probieren Sie es online!
Erläuterung
quelle
>¹
hier mitS>
. Auf diese Weise können Sie alles in einer Zeile zusammenfassen. EsJapt , 44 Bytes
Probieren Sie es online!
Erheblich anders als die andere Antwort von Japt.
Erläuterung:
Im Hinblick auf zukünftige Golfmöglichkeiten rufe ich häufig manuell eine Funktion für eine Nummer an, von der ich vermute, dass sie reduziert werden könnte, aber ich bin nicht sicher, wie.
quelle