Dados dos enteros, que pueden ser negativos, cero o positivos, a
y b
(tomados en cualquier formato razonable, incluida la entrada de un número complejo simple ), convertirlo a a + bi
donde i
está el número imaginario (raíz cuadrada de uno negativo). Luego, eleve a la potencia de una tercera variable de entrada (entero positivo), c
como . Entonces deberías terminar con algo así . Luego debe generar, o devolver, y en cualquier formato razonable ( incluida la salida de un número complejo simple ).(a + bi)c
d + ei
d
e
La entrada y la salida pueden tomarse o enviarse en cualquier orden.
Ejemplos:
5, 2, 2 -> 21, 20
1, 4, 2 -> -15, 8
-5, 0, 1 -> -5, 0
Respuestas:
Mathematica, 17 bytes
Pruébalo en línea!
-8 bytes de alephalpha
pero ........ las reglas han cambiado ... entonces
Mathematica, 5 bytes
fuente
{Re@#,Im@#}&
->ReIm
@#&
.#^#2&
o simplementePower
.Python 3 , 3 bytes
Pruébalo en línea!
Entrada y salida como números complejos.
Python 3 , 47 bytes
Pruébalo en línea!
Entrada y salida como enteros
Python 2 ,
6260 bytes-2 bytes gracias a @Leonhard
Pruébalo en línea!
no usa tipo de número complejo
fuente
Javascript (ES6),
5150 bytesf(a)(b)(c)
[d, e]
Explicación
fuente
Pari / GP , 36 bytes
Pruébalo en línea!
Pari / GP , 36 bytes
Pruébalo en línea!
fuente
En realidad , 1 byte
Pruébalo en línea!
Tenga en cuenta que las reglas han cambiado y los números complejos son tipos de E / S válidos (desafortunadamente esto convierte la publicación en un desafío de "realizar esta exponenciación"). Respuesta original a continuación.
En realidad , 3 bytes
Pruébalo en línea!
Devuelve los valores separados por una nueva línea. Toma las entradas en orden inverso y devuelve los resultados en orden inverso (consulte el enlace tio).
fuente
Jalea , 1 byte
Pruébalo en línea!
Gracias al Sr. Xcoder por alertarme sobre actualizaciones de reglas (-6 como resultado).
Gracias a alguien por alertarme sobre actualizaciones de reglas (-2 como resultado).
Primer argumento:
(a+bj)
Segundo argumento:
c
Devuelve:
(d+ej)
fuente
ḅı*
, ya que las reglas han cambiado y ahora puede generar un número complejo simple.R , 3 bytes
Esto se está volviendo aburrido. Si se permite la entrada y salida como un número complejo, hay una función incorporada para una función de potencia.
Por ejemplo:
o
fuente
05AB1E ,
20191716 bytesPruébalo en línea! Toma tres entradas separadas en el orden
b, a, c
y genera una matriz[d, e]
. Editar: Guardado 2 bytes gracias a @Datboi. Guardado 1 byte gracias a @Adnan. Explicación:fuente
'jì+³m
.1 0‚
conTS
de -2 bytes :)P
se vectoriza automáticamente, por lo que no necesita el€
.C # (.NET Core) ,
6238 bytesPruébalo en línea!
fuente
.Real
y .Imaginary` en su respuesta. De acuerdo con la regla " Debe enviar o devolver,d
ye
en cualquier formato razonable (sin incluir la salida de un número complejo simple) " no se le permite simplemente enviar el Número complejo.Pyth,
51252 bytesToma
c
primero, seguido dea+bj
.7 bytes de repetitivo porque aparentemente la salida como un número imaginario no está permitida.¡Se ha vuelto a permitir! ¡Hurra! Y con la entrada de un número complejo como una entrada razonable, ¡podemos recortar 3 bytes adicionales!Soluciones anteriores:
Cuando los números complejos no eran entradas razonables.
Cuando los números complejos no eran salidas razonables.
Banco de pruebas.
fuente
05AB1E , 1 byte
Pruébalo en línea!
Entrada:
c\n(a+bj)
Salida:
(d+ej)
fuente
'jì+³m
es una forma diferente de calcular el número.J,
10,7, 1 bytesToma
c
como argumento correcto y el número complejoajb
(cómo se representaa + bi
en J) como argumento izquierdo.Pruébalo en línea!
Otras soluciones
7 bytes
Toma la entrada de números complejos como una lista.
10 bytes
Esto produjo el
a + bi
en la listaa b
.Quería probar algo lindo,
^~&.(j./)
pero el inverso dej./
obviamente no está definido. En realidad,^~&.(+.inv)
funciona y puedes hacer eso^&.(+.inv)
que también es de 10 bytes si inviertes el orden en que tomas los argumentos.fuente
TI-BASIC,
25228 bytesToma el número complejo y el exponente como entrada, y almacena la salida
Ans
como un número complejo. Caída drástica de bytes debido a restricciones relajadas en la entrada / salida.fuente
imag({iAns,Ans
en la última línea (i
me refiero al número complejo i ).imag({i,1}(A+Bi)^C
.6502 código de máquina subrutina,
199187185 bytesEste es un código independiente de la posición, simplemente colóquelo en algún lugar de la RAM y llámelo con un
jsr
instrucción.La rutina toma la base (compleja) como dos enteros con signo de 16 bits (complemento de 2, little-endian) en
$fb/$fc
(real) e$fd/$fe
(imaginario), y el exponente como un entero de 8 bits sin signo en elY
registro.El resultado se devuelve en
$26/$27
(real) e$28/$29
(imaginario).Explicación
Este sigue siendo un desafío interesante en la CPU 6502 ya que no hay instrucciones para multiplicarlo siquiera. El enfoque es sencillo, implementando una multiplicación compleja y ejecutándola tan a menudo como lo requiera el exponente. El golf se realiza evitando subrutinas, en lugar de crear una especie de "spaghetti de rama", por lo que el código para hacer una simple multiplicación de 16 bits que se necesita varias veces se reutiliza con la sobrecarga más baja posible. Aquí está el desmontaje comentado:
Programa de ejemplo que lo usa (C64, fuente de ensamblaje en sintaxis ca65):
Demostración en línea
Uso:
sys49152,[a],[b],[c]
, por ejemplosys49152,5,2,2
(Salida:21+20i
)fuente
Dyalog APL , 10 bytes
Pruébalo en línea!
a
es el argumento izquierdo,b
es el argumento correcto y ac
través de la solicitud de entrada.Devuelve un número complejo en el formato
dJe
.fuente
MATL , 1 byte
Las entradas son
a+jb
,c
.Pruébalo en línea!
Versión anterior: entrada y salida no compleja, 8 bytes
Orden de entrada es
b
,a
,c
.Pruébalo en línea!
Explicación
fuente
C (gcc) , 34 bytes
Pruébalo en línea!
fuente
8vo , 38 bytes
Código
SED (Diagrama de efecto de pila) es:
c a b -- (a + bi) ^ c
Advertencia :
a + bi
se deja en r-stack , pero esto no afecta los cálculos posteriores.Versión sin golf con comentarios
Ejemplo y uso
Salida del código anterior
fuente
Octava / MATLAB, 6 bytes
Función anónima que ingresa dos números y genera su potencia.
Pruébalo en línea !
Versión anterior: entrada y salida no compleja, 30 bytes
Función anónima que ingresa tres números y genera una matriz de dos números.
Pruébalo en línea!
fuente
Perl 6 ,
29 26 20 1911 bytesIntentalo
Intentalo
Intentalo
Intentalo
Con el cambio de las restricciones de salida se puede reducir aún más:
Intentalo
La
***
parte se analiza como** *
porque el**
operador infijo es más largo que el*
operador infijo.Expandido:
fuente
(*+* *i)***
.R, 25 bytes
más simple, ya que se permite la salida de complejos.
fuente
Casio-Basic, 6 bytes
Cambie a las reglas para permitir la entrada y salida ya que los números complejos lo hicieron significativamente más corto.
3 bytes para la función, +3 para ingresar
a,b
en el cuadro de parámetros.fuente