Wenn zwei ganze Zahlen gegeben sind, die negativ, null oder positiv sein können, a
und b
(in einem vernünftigen Format, einschließlich der Eingabe einer einfachen komplexen Zahl ), konvertieren Sie sie a + bi
in i
die imaginäre Zahl (Quadratwurzel der negativen Eins). Dann heben es an die Leistung eines dritten (positive ganze Zahl) Eingangsvariable, c
zu . Sie sollten dann mit so etwas enden . Sie müssen dann ausgegeben, oder Rückkehr, und in jeder angemessenen Form ( einschließlich einer Ebene komplexe Zahl ausgeben ).(a + bi)c
d + ei
d
e
Ein- und Ausgabe können in beliebiger Reihenfolge vorgenommen oder ausgegeben werden.
Beispiele:
5, 2, 2 -> 21, 20
1, 4, 2 -> -15, 8
-5, 0, 1 -> -5, 0
Antworten:
Mathematica, 17 Bytes
Probieren Sie es online aus!
-8 Bytes von Alephalpha
aber ........ Regeln haben sich geändert ...... so
Mathematica, 5 Bytes
quelle
{Re@#,Im@#}&
->ReIm
@#&
.#^#2&
oder einfachPower
.Python 3 , 3 Bytes
Probieren Sie es online aus!
Eingabe und Ausgabe als komplexe Zahlen.
Python 3 , 47 Bytes
Probieren Sie es online aus!
Eingabe und Ausgabe als Ganzzahlen
Python 2 ,
6260 Bytes-2 Bytes dank @Leonhard
Probieren Sie es online aus!
verwendet keinen komplexen Zahlentyp
quelle
Javascript (ES6),
5150 Bytesf(a)(b)(c)
[d, e]
Erläuterung
quelle
Pari / GP , 36 Bytes
Probieren Sie es online aus!
Pari / GP , 36 Bytes
Probieren Sie es online aus!
quelle
Eigentlich 1 Byte
Probieren Sie es online aus!
Beachten Sie, dass sich die Regeln geändert haben und komplexe Zahlen gültige E / A-Typen sind (dies macht den Beitrag leider zu einer Herausforderung "Diese Potenzierung durchführen"). Ursprüngliche Antwort unten.
Eigentlich 3 Bytes
Probieren Sie es online aus!
Gibt die durch einen Zeilenumbruch getrennten Werte zurück. Nimmt die Eingaben in umgekehrter Reihenfolge und gibt die Ergebnisse in umgekehrter Reihenfolge zurück (siehe tio-Link).
quelle
Gelee , 1 Byte
Probieren Sie es online aus!
Vielen Dank an Herrn Xcoder , der mich über Regelaktualisierungen informiert hat (-6 als Ergebnis).
Vielen Dank an jemanden , der mich über Regelaktualisierungen informiert hat (-2 als Ergebnis).
Erstes Argument:
(a+bj)
Zweites Argument:
c
Rückgabe:
(d+ej)
quelle
ḅı*
, da sich die Regeln geändert haben und Sie nun eine einfache komplexe Zahl ausgeben dürfen.R , 3 Bytes
Das wird langweilig. Wenn die Ein- und Ausgabe als komplexe Zahl zulässig ist, ist eine Potenzfunktion integriert.
Zum Beispiel:
oder
quelle
05AB1E ,
20191716 BytesProbieren Sie es online aus! Nimmt drei separate Eingaben in der Reihenfolge
b, a, c
und gibt ein Array aus[d, e]
. Bearbeiten: 2 Bytes dank @Datboi gespeichert. 1 Byte dank @Adnan gespeichert. Erläuterung:quelle
'jì+³m
.1 0‚
mitTS
für -2 Bytes :)P
vektorisiert automatisch, sodass Sie das nicht benötigen€
.C # (.NET Core) ,
6238 ByteProbieren Sie es online aus!
quelle
.Real
und .Imaginary` in Ihre Antwort aufnehmen. Gemäß der Regel " Sie müssen dann ausgeben oder zurückgebend
unde
in einem vernünftigen Format (ohne Ausgabe einer einfachen komplexen Zahl) " dürfen Sie nicht nur das ausgeben Komplexe Zahl.Pyth,
51252 BytesNimmt
c
zuerst auf, gefolgt vona+bj
.7 Bytes Boilerplate, da anscheinend die Ausgabe als imaginäre Zahl nicht zulässig ist.Es wurde wieder erlaubt! Hurra! Und da die Aufnahme einer komplexen Zahl eine vernünftige Eingabe ist, können wir zusätzliche 3 Bytes herausschneiden!Bisherige Lösungen:
Wenn komplexe Zahlen keine vernünftigen Eingaben waren.
Wenn komplexe Zahlen keine vernünftigen Ausgaben waren.
Testsuite.
quelle
05AB1E , 1 Byte
Probieren Sie es online aus!
Eingabe:
c\n(a+bj)
Ausgabe:
(d+ej)
quelle
'jì+³m
ist eine andere Methode zur Berechnung der Zahl.J,
10,7, 1 BytesNimmt
c
als rechtes Argument und die komplexe Zahlajb
(wie Siea + bi
in J darstellen) als linkes Argument.Probieren Sie es online aus!
Andere Lösungen
7 Bytes
Nimmt die Eingabe der komplexen Zahl als Liste.
10 Bytes
Dies gab das
a + bi
in der Liste ausa b
.Ich wollte etwas Süßes ausprobieren,
^~&.(j./)
aber das Gegenteil vonj./
ist offensichtlich nicht definiert. Funktioniert tatsächlich^~&.(+.inv)
und Sie können das machen,^&.(+.inv)
was auch 10 Bytes sind, wenn Sie die Reihenfolge umkehren, in der Sie die Argumente nehmen.quelle
TI-BASIC,
25228 BytesNimmt die komplexe Zahl und den Exponenten als Eingabe und speichert die Ausgabe
Ans
als komplexe Zahl. Drastischer Byte-Rückgang aufgrund gelockerter Einschränkungen bei der Eingabe / Ausgabe.quelle
imag({iAns,Ans
in der letzten Zeile speichern (damiti
meine ich die komplexe Zahl i ).imag({i,1}(A+Bi)^C
.Unterprogramm 6502 Maschinencode ,
199187185 BytesDies ist ein positionsunabhängiger Code. Legen Sie ihn einfach irgendwo im RAM ab und rufen Sie ihn mit einer
jsr
Anweisung auf.Die Routine nimmt die (komplexe) Basis als zwei 16- Bit-Ganzzahlen mit Vorzeichen (2er-Komplement, Little-Endian) in
$fb/$fc
(real) und$fd/$fe
(imaginär) und den Exponenten als vorzeichenlose 8-Bit-Ganzzahl imY
Register.Das Ergebnis wird in
$26/$27
(real) und$28/$29
(imaginär) zurückgegeben.Erläuterung
Dies ist immer noch eine interessante Herausforderung für die 6502-CPU, da es keine Anweisungen zum Multiplizieren gibt. Der Ansatz ist unkompliziert: Er implementiert eine komplexe Multiplikation und führt sie so oft aus, wie es der Exponent benötigt. Beim Golfen werden Unterprogramme vermieden und stattdessen eine Art "Zweig-Spaghetti" erstellt. Daher wird der Code für eine einfache 16-Bit-Multiplikation, die mehrmals benötigt wird, mit dem geringstmöglichen Overhead wiederverwendet. Hier ist die kommentierte Demontage:
Beispielprogramm, das es verwendet (C64, Assembly-Quelle in ca65 -syntax):
Online-Demo
Verbrauch:
sys49152,[a],[b],[c]
zBsys49152,5,2,2
(Output:21+20i
)quelle
Dyalog APL , 10 Bytes
Probieren Sie es online aus!
a
ist linkes Argument,b
ist rechtes Argument undc
über Eingabeaufforderung.Gibt eine komplexe Zahl im Format zurück
dJe
.quelle
MATL , 1 Byte
Eingänge sind
a+jb
,c
.Probieren Sie es online aus!
Alte Version: nicht komplexe Ein- und Ausgabe, 8 Bytes
Eingabereihenfolge ist
b
,a
,c
.Probieren Sie es online aus!
Erläuterung
quelle
C (gcc) , 34 Bytes
Probieren Sie es online aus!
quelle
8. 38 Bytes
Code
SED (Stack Effect Diagram) ist:
c a b -- (a + bi) ^ c
Warnung :
a + bi
Wird auf dem R-Stack belassen , hat jedoch keine Auswirkungen auf nachfolgende Berechnungen.Ungolfed Version mit Kommentaren
Beispiel und Verwendung
Ausgabe des vorherigen Codes
quelle
Oktave / MATLAB, 6 Bytes
Anonyme Funktion, die zwei Zahlen eingibt und deren Leistung ausgibt.
Probieren Sie es online aus !
Alte Version: nicht komplexe Ein- und Ausgabe, 30 Bytes
Anonyme Funktion, die drei Zahlen eingibt und ein Array mit zwei Zahlen ausgibt.
Probieren Sie es online aus!
quelle
Perl 6 ,
29 26 20 1911 BytesVersuch es
Versuch es
Versuch es
Versuch es
Mit der Änderung der Ausgabebeschränkungen kann es weiter reduziert werden:
Versuch es
Das
***
Teil wird analysiert,** *
weil der**
Infix-Operator länger als der*
Infix-Operator ist.Erweitert:
quelle
(*+* *i)***
.R, 25 Bytes
am einfachsten - da die Ausgabe von Komplex erlaubt ist.
quelle
Casio-Basic, 6 Bytes
Ändern Sie die Regeln, um die Eingabe und Ausgabe zu ermöglichen, da komplexe Zahlen dies erheblich verkürzen.
3 Bytes für die Funktion, +3
a,b
in das Parameterfeld eingeben .quelle