Tetration, dargestellt als
a^^b
, ist wiederholte Exponentiation. Zum Beispiel2^^3
ist2^2^2
das 16.
Mit zwei Zahlen a und b drucken a^^b
.
Testfälle
1 2 -> 1
2 2 -> 4
5 2 -> 3125
3 3 -> 7625597484987
etc.
Wissenschaftliche Notation ist akzeptabel.
Denken Sie daran, das ist Code-Golf , also gewinnt der Code mit der geringsten Anzahl von Bytes.
3 3 -> 7625597484987
3^3^3
automatisch bedeutet3^(3^(3))
. Siehe en.wikipedia.org/wiki/Order_of_operations , wo steht "Gestapelte Exponenten werden von oben nach unten, dh von rechts nach links, angewendet."Antworten:
Dyalog APL, 3 Bytes
TryAPL.
Erläuterung
quelle
J,
54 BytesDies ist wörtlich die Definition von Tetration.
Verwendung
Erläuterung
quelle
2 ^ 2 ^ 2
wird ausgewertet , wie2 ^ (2 ^ 2)
und so weiterHaskell, 19 Bytes
Iteriert die Exponentiierung ab
1
, um die Liste zu erstellen[1,a,a^a,a^a^a,...]
, und nimmt dann dasb
'te Element.Gleiche Länge direkt:
Punktefrei ist länger:
quelle
Mathematica, 16 Bytes
Erläuterung
Erstellen Sie Kopien von a.
Potenzierung.
quelle
Python, 30 Bytes
Verwendet die rekursive Definition.
quelle
Python, 33 Bytes
Dies ergibt eine unbenannte Funktion, die die Zeichenfolgendarstellung einer Zahl und einer Zahl übernimmt. Beispielsweise:
Wenn das Mischen solcher Eingabeformate nicht zählt, gibt es auch diese 38-Byte-Version:
quelle
Gelee , 4 Bytes
Probieren Sie es online! oder überprüfen Sie alle Testfälle .
Wie es funktioniert
quelle
Perl, 19 Bytes
Beinhaltet +1 für
-p
Geben Sie bei STDIN in separaten Zeilen Zahlen an
tetration.pl
quelle
R, 39 Bytes
Rekursive Funktion:
quelle
Element , 11 Bytes
Probieren Sie es online!
Dies ist nur eine "einfache" Potenzierung in einer Schleife.
quelle
JavaScript (ES7), 24 Byte
Die ES6-Version hat 33 Bytes:
quelle
f=a=>b=>b?a**f(a,b-1):1
dc,
3529 bytes:Hier ist mein erstes vollständiges Programm in
dc
.quelle
Perl, 40 Bytes
Akzeptiert zwei Ganzzahlen als Eingabe für die Funktion und gibt das Ergebnis aus
quelle
pop
, um zu bekommen$ARGV[1]
, dann verwenden Sie"@ARGV"
, um zu bekommen$ARGV[0]
. Verwenden Siesay
stattprint
(Option-M5.010
oder-E
ist kostenlos). Aber immer nochARGV
ist schrecklich lang. Ein-p
Programm gewinnt fast immerEigentlich 6 Bytes
Probieren Sie es online!
Eingabe wird als
b\na
(\n
ist ein Zeilenvorschub) genommenErläuterung:
quelle
CJam , 9 Bytes
Probieren Sie es online!
Erläuterung
quelle
PHP, 51 Bytes
quelle
GameMaker-Sprache,
5250 Bytesquelle
Pyth, 6 Bytes
Probieren Sie es online aus.
Erläuterung
quelle
Minkolang 0.15 ,
1211 BytesProbieren Sie es hier aus!
Erläuterung
quelle
Schläger 51 Bytes
Ungolfed:
Testen:
Ausgabe:
quelle
Scala, 45 Bytes
Ungolfed:
Erstellen Sie eine Folge von
a
s mitb
Elementen und wenden Sie siemath.pow
von rechts nach links an.quelle
TI-Basic, 19 Bytes
quelle
Java 7,
7157 BytesUngolfed & Testcode:
Probieren Sie es hier aus.
Ausgabe:
quelle
C 50 Bytes
Einfach aus der Definition von Tetration .
quelle
05AB1E , 4 Bytes
Probieren Sie es online!
3 Byte, wenn Argumente ausgetauscht werden können:
quelle
a=5, b=2
sollte ausgeben3125
. Ich bin mir nicht sicher, in welcher Reihenfolge Sie die Eingabe vornehmen, aber wie auch immer ich 5 und 2 eingebe, ich erhalte das falsche Ergebnis.Bash, 50 Bytes
(innerhalb der Grenzen des Datentyps bash integer)
Golf gespielt
Erläuterung
Ausdruck mit printf aufbauen, zB E 2 5:
Verwenden Sie dann die in bash integrierte arithmetische Erweiterung, um das Ergebnis zu berechnen
Prüfung
quelle
Powershell, 68 Bytes
Dies ist der kürzeste der drei Ansätze, die ich ausprobiert habe, insgesamt aber nicht so toll. Ich bin mir zu 100% sicher, dass es einen kürzeren Ansatz gibt, aber die wenigen Dinge, die ich ausprobiert habe, endeten irgendwie mit etwas mehr Bytes.
Leider Powershell hat keine eingebaut in
^
oder**
Betreibern, oder es wäre eine saubere 32/33 Byte Antwort sein, dhiex (,$args[0]*$args[1]-join"^")
quelle
Axiom 70 Bytes
das weniger golfen
quelle
Wunder , 21 Bytes
Verwendet den rekursiven Ansatz. Verwendung:
Bonuslösung, 22 Bytes
Ein etwas unkonventioneller Ansatz. Verwendung:
Besser lesbar:
Vorausgesetzt
a^^b
:Erzeugt eine unendliche Liste von Tetrated
a
; denna=2
diese Liste würde ungefähr so aussehen[2 4 16 65536...]
. Dann wird beib-1
indexiert, weil Wonder null-indexiert ist.quelle
Clojure, 56 Bytes
Vielleicht gibt es einen kürzeren Weg über
apply comp
?quelle