La tétration, représentée par
a^^b
, est une exponentiation répétée. Par exemple,2^^3
is2^2^2
, qui est 16.
Étant donné deux nombres a et b , imprimez a^^b
.
Cas de test
1 2 -> 1
2 2 -> 4
5 2 -> 3125
3 3 -> 7625597484987
etc.
La notation scientifique est acceptable.
N'oubliez pas qu'il s'agit de code-golf , donc le code avec le plus petit nombre d'octets l'emporte.
3 3 -> 7625597484987
3^3^3
signifie automatiquement3^(3^(3))
. Voir en.wikipedia.org/wiki/Order_of_operations , où il est écrit "Les exposants empilés sont appliqués de haut en bas, c'est-à-dire de droite à gauche".Réponses:
Dyalog APL, 3 octets
TryAPL.
Explication
la source
J,
54 octetsC'est littéralement la définition de la tétration.
Usage
Explication
la source
2 ^ 2 ^ 2
évalués au fur2 ^ (2 ^ 2)
et à mesureHaskell, 19 octets
Itère l'exponentiation en commençant par
1
produire la liste[1,a,a^a,a^a^a,...]
, puis prenez leb
'th élément.Même longueur directement:
Sans point est plus long:
la source
Mathematica, 16 octets
Explication
Faites b copies de a.
Exponentiation.
la source
Python, 30 octets
Utilise la définition récursive.
la source
Python, 33 octets
Cela se traduit par une fonction sans nom, qui prend la représentation sous forme de chaîne d'un nombre et d'un nombre. Par exemple:
Si le mélange de formats d'entrée comme celui-ci ne compte pas, il existe également cette version à 38 octets:
la source
Gelée , 4 octets
Essayez-le en ligne! ou vérifiez tous les cas de test .
Comment ça fonctionne
la source
Perl, 19 octets
Comprend +1 pour
-p
Donnez des chiffres sur des lignes distinctes sur STDIN
tetration.pl
la source
R, 39 octets
Fonction récursive:
la source
Élément , 11 octets
Essayez-le en ligne!
Il s'agit simplement d'une exponentiation "directe" dans une boucle.
la source
JavaScript (ES7), 24 octets
La version ES6 fait 33 octets:
la source
f=a=>b=>b?a**f(a,b-1):1
dc,
3529 octets:Voici mon premier programme complet en
dc
.la source
Perl, 40 octets
Accepte deux entiers en entrée de la fonction et sort le résultat
la source
pop
pour obtenir$ARGV[1]
, puis utilisez"@ARGV"
pour obtenir$ARGV[0]
. Utilisez à lasay
place deprint
(option-M5.010
ou-E
est gratuit). Mais quand même,ARGV
c'est terriblement long. Un-p
programme gagne presque toujoursEn fait , 6 octets
Essayez-le en ligne!
L'entrée est prise comme
b\na
(\n
est une nouvelle ligne)Explication:
la source
CJam , 9 octets
Essayez-le en ligne!
Explication
la source
PHP, 51 octets
la source
GameMaker Language,
5250 octetsla source
Pyth, 6 octets
Essayez-le en ligne.
Explication
la source
Minkolang 0,15 ,
1211 octetsEssayez-le ici!
Explication
la source
Raquette 51 octets
Non golfé:
Essai:
Production:
la source
Scala, 45 octets
Non golfé:
Construisez une séquence de
a
s avec desb
éléments et appliquezmath.pow
de droite à gauche.la source
TI-Basic, 19 octets
la source
Java 7,
7157 octetsCode non testé et testé:
Essayez-le ici.
Production:
la source
C, 50 octets
Simple de la définition de la tétration .
la source
05AB1E , 4 octets
Essayez-le en ligne!
3 octets si les arguments peuvent être échangés:
la source
a=5, b=2
devrait sortir3125
. Je ne sais pas dans quel ordre vous prenez l'entrée, mais cependant je mets 5 et 2, j'obtiens le mauvais résultat.Bash, 50 octets
(dans les limites du type de données entier bash)
Golfé
Explication
Construisez une expression avec printf, par exemple E 2 5:
puis utilisez l'expansion arithmétique bash intégrée pour calculer le résultat
Tester
la source
Powershell, 68 octets
C'est la plus courte des trois approches que j'ai essayées, pas si bonne que ça, je suis sûr à 100% qu'il y a une approche plus courte mais les quelques choses que j'ai essayées se sont retrouvées avec un peu plus d'octets.
Malheureusement Powershell n'a pas intégré
^
ou**
opérateur, ou ce serait une réponse octet 32/33 propre, à savoiriex (,$args[0]*$args[1]-join"^")
la source
Axiome 70 octets
ce moins golfé
la source
Wonder , 21 octets
Utilise l'approche récursive. Usage:
Solution bonus, 22 octets
Une approche légèrement non conventionnelle. Usage:
Plus lisible:
En supposant
a^^b
:Génère une liste infinie de tétrasés
a
; cara=2
, cette liste ressemblerait à quelque chose[2 4 16 65536...]
. Indexe ensuite àb-1
parce que Wonder est indexé à zéro.la source
Clojure, 56 octets
Peut-être y a-t-il un chemin plus court via
apply comp
?la source