La tetración, representada como
a^^b
, es exponenciación repetida. Por ejemplo,2^^3
es2^2^2
, que es 16.
Dados dos números a y b , imprime a^^b
.
Casos de prueba
1 2 -> 1
2 2 -> 4
5 2 -> 3125
3 3 -> 7625597484987
etc.
La notación científica es aceptable.
Recuerde, este es el código de golf , por lo que gana el código con el menor número de bytes.
3 3 -> 7625597484987
3^3^3
significa automáticamente3^(3^(3))
. Consulte en.wikipedia.org/wiki/Order_of_operations , donde dice "Los exponentes apilados se aplican de arriba hacia abajo, es decir, de derecha a izquierda".Respuestas:
Dyalog APL, 3 bytes
TryAPL.
Explicación
fuente
J,
54 bytesEsta es literalmente la definición de tetración.
Uso
Explicación
fuente
2 ^ 2 ^ 2
se evalúa como2 ^ (2 ^ 2)
y así sucesivamenteHaskell, 19 bytes
Itera exponiendo comenzando en
1
para producir la lista[1,a,a^a,a^a^a,...]
, luego toma elb
elemento 'th.Misma longitud directamente:
Sin puntos es más largo:
fuente
Mathematica, 16 bytes
Explicación
Haga copias b de a.
Exponenciación.
fuente
Python, 30 bytes
Utiliza la definición recursiva.
fuente
Python, 33 bytes
Esto se evalúa como una función sin nombre, que toma la representación de cadena de un número y un número. Por ejemplo:
Si mezclar formatos de entrada como este no cuenta, también existe esta versión de 38 bytes:
fuente
Jalea , 4 bytes
Pruébalo en línea! o verificar todos los casos de prueba .
Cómo funciona
fuente
Perl, 19 bytes
Incluye +1 para
-p
Dar números en líneas separadas en STDIN
tetration.pl
fuente
R, 39 bytes
Función recursiva:
fuente
Elemento , 11 bytes
Pruébalo en línea!
Esto es simplemente una exponenciación "directa" en un bucle.
fuente
JavaScript (ES7), 24 bytes
La versión ES6 es de 33 bytes:
fuente
f=a=>b=>b?a**f(a,b-1):1
cc,
3529 bytes:Aquí está mi primer programa completo en
dc
.fuente
Perl, 40 bytes
Acepta dos enteros como entrada a la función y genera el resultado.
fuente
pop
para obtener$ARGV[1]
, luego use"@ARGV"
para obtener$ARGV[0]
. Usar ensay
lugar deprint
(opción-M5.010
o-E
es gratis). Pero aún así,ARGV
es terriblemente largo. Un-p
programa casi siempre ganaEn realidad , 6 bytes
Pruébalo en línea!
La entrada se toma como
b\na
(\n
es una nueva línea)Explicación:
fuente
CJam , 9 bytes
Pruébalo en línea!
Explicación
fuente
PHP, 51 bytes
fuente
Lenguaje GameMaker,
5250 bytesfuente
Pyth, 6 bytes
Pruébalo en línea.
Explicación
fuente
Minkolang 0.15 ,
1211 bytesPruébalo aquí!
Explicación
fuente
Raqueta 51 bytes
Sin golf:
Pruebas:
Salida:
fuente
Scala, 45 bytes
Sin golf:
Construya una secuencia de
a
s conb
elementos y apliquemath.pow
de derecha a izquierda.fuente
TI-Basic, 19 bytes
fuente
Java 7,
7157 bytesUngolfed y código de prueba:
Pruébalo aquí
Salida:
fuente
C, 50 bytes
Directamente de la definición de Tetración .
fuente
05AB1E , 4 bytes
Pruébalo en línea!
3 bytes si se pueden intercambiar argumentos:
fuente
a=5, b=2
debería salir3125
. No estoy seguro de en qué orden está tomando la entrada, pero sin embargo pongo 5 y 2 obtengo el resultado incorrecto.Bash, 50 bytes
(dentro de los límites del tipo de datos entero bash)
Golfed
Explicación
Construir expresión con printf, por ejemplo, E 2 5:
luego use la expansión aritmética incorporada bash para calcular el resultado
Prueba
fuente
Powershell, 68 bytes
Este es el más corto de los tres enfoques que probé, aunque no es tan bueno en general, estoy 100% seguro de que hay un enfoque más corto, pero las pocas cosas que intenté de alguna manera terminaron con un poco más de bytes.
Lamentablemente Powershell no ha incorporado
^
o**
del operador, o que sería una respuesta limpia 32/33 byte, es decir,iex (,$args[0]*$args[1]-join"^")
fuente
Axioma 70 bytes
esta menos golfizado
fuente
Maravilla , 21 bytes
Utiliza el enfoque recursivo. Uso:
Solución extra, 22 bytes
Un enfoque poco convencional. Uso:
Más legible:
Asumiendo
a^^b
:Genera una lista infinita de tetrated
a
; paraa=2
, esta lista se vería algo así[2 4 16 65536...]
. Luego indexa enb-1
porque Wonder está indexado a cero.fuente
Clojure, 56 bytes
Tal vez hay un camino más corto a través de
apply comp
?fuente