Biorąc pod uwagę dwie liczby całkowite, które mogą mieć ujemny, zerowy lub dodatni, a
a b
(wykonane w dowolnym rozsądnym formacie, w tym wprowadzenie zwykły liczbę zespoloną ), przekształcić go a + bi
gdzie i
jest Liczby urojone (pierwiastek kwadratowy z negatywnej). Następnie podnieś go do potęgi trzeciej (dodatniej liczby całkowitej) zmiennej wejściowej, c
tak jak . Powinieneś skończyć z czymś takim . Musisz wtedy wyjście lub powrót, a w każdym rozsądnym formacie ( w tym wyprowadzania zwykły liczbę zespoloną ).(a + bi)c
d + ei
d
e
Dane wejściowe i wyjściowe mogą być pobierane lub wysyłane w dowolnej kolejności.
Przykłady:
5, 2, 2 -> 21, 20
1, 4, 2 -> -15, 8
-5, 0, 1 -> -5, 0
Odpowiedzi:
Mathematica, 17 bajtów
Wypróbuj online!
-8 bajtów z alephalpha
ale ........ zmieniły się zasady ...... tak
Mathematica, 5 bajtów
źródło
{Re@#,Im@#}&
->ReIm
@#&
.#^#2&
lub po prostuPower
.Python 3 , 3 bajty
Wypróbuj online!
Dane wejściowe i wyjściowe jako liczby zespolone.
Python 3 , 47 bajtów
Wypróbuj online!
Wejście i wyjście jako liczby całkowite
Python 2 ,
6260 bajtów-2 bajty dzięki @Leonhard
Wypróbuj online!
nie używa typu liczb zespolonych
źródło
JavaScript (ES6),
5150 bajtówf(a)(b)(c)
[d, e]
Wyjaśnienie
źródło
Pari / GP , 36 bajtów
Wypróbuj online!
Pari / GP , 36 bajtów
Wypróbuj online!
źródło
Właściwie 1 bajt
Wypróbuj online!
Zauważ, że reguły się zmieniły, a liczby zespolone są prawidłowymi typami We / Wy (niestety zamienia to post w wyzwanie „wykonaj to potęgowanie”). Oryginalna odpowiedź poniżej.
Właściwie 3 bajty
Wypróbuj online!
Zwraca wartości oddzielone znakiem nowej linii. Pobiera dane wejściowe w odwrotnej kolejności i zwraca wyniki w odwrotnej kolejności (patrz link tio).
źródło
Galaretka , 1 bajt
Wypróbuj online!
Dzięki panu Xcoderowi za powiadomienie mnie o aktualizacjach reguł (w rezultacie -6).
Dzięki komuś za powiadomienie mnie o aktualizacjach reguł (w wyniku -2).
Pierwszy argument:
(a+bj)
Drugi argument:
c
Zwraca:
(d+ej)
źródło
ḅı*
, ponieważ reguły się zmieniły i możesz teraz wypisać zwykłą liczbę zespoloną.R , 3 bajty
To staje się nudne. Jeśli wejście i wyjście jest dozwolone jako liczba zespolona, istnieje funkcja wbudowana funkcji zasilania.
Na przykład:
lub
źródło
05AB1E ,
20191716 bajtówWypróbuj online! Pobiera trzy osobne dane wejściowe w kolejności
b, a, c
i generuje tablicę[d, e]
. Edycja: Zapisano 2 bajty dzięki @Datboi. Zapisano 1 bajt dzięki @Adnan. Wyjaśnienie:źródło
'jì+³m
.1 0‚
zTS
do -2 bajtów :)P
automatycznie wektoryzuje, więc nie potrzebujesz€
.C # (.NET Core) ,
6238 bajtówWypróbuj online!
źródło
.Real
i .Imaginary` w swojej odpowiedzi .. Zgodnie z zasadą „ Musisz wtedy wyjście lub powrót,d
ae
w każdym rozsądnym formacie (bez wyprowadzania zwykły liczbę zespoloną) ” jesteś nie wolno tylko wyprowadzenia Liczba zespolona.Pyth,
51252 bajtyOdbywa się w
c
pierwszy, a następniea+bj
.7 bajtów tablicy rejestracyjnej, ponieważ najwyraźniej dane wyjściowe jako liczba urojona są niedozwolone.Zostało to ponownie dozwolone! Hurra! A biorąc pod uwagę, że liczba złożona jest rozsądnym wkładem, możemy wyciąć dodatkowe 3 bajty!Poprzednie rozwiązania:
Gdy liczby zespolone nie były rozsądnymi danymi wejściowymi.
Gdy liczby zespolone nie były rozsądnymi wynikami.
Pakiet testowy.
źródło
05AB1E , 1 bajt
Wypróbuj online!
Wejście:
c\n(a+bj)
Wyjście:
(d+ej)
źródło
'jì+³m
to inny sposób obliczania liczby.J,
10,7, 1 bajtsPrzyjmuje
c
za prawy argument i liczbę zespolonąajb
(jak reprezentujesza + bi
w J) jako lewy argument.Wypróbuj online!
Inne rozwiązania
7 bajtów
Trwa wprowadzanie liczby zespolonej jako listy.
10 bajtów
Spowodowało to wyświetlenie
a + bi
na liściea b
.Chciałem spróbować czegoś słodkiego,
^~&.(j./)
ale odwrotność niej./
jest oczywiście zdefiniowana. Właściwie^~&.(+.inv)
działa i możesz zrobić to,^&.(+.inv)
co również ma 10 bajtów, jeśli odwrócisz kolejność, w której pobierasz argumenty.źródło
TI-BASIC,
25228 bajtówPobiera na wejściu liczbę zespoloną i wykładnik i zapisuje dane wyjściowe
Ans
jako liczbę zespoloną. Drastyczny spadek bajtów z powodu poluzowanych ograniczeń wejścia / wyjścia.źródło
imag({iAns,Ans
w ostatnim wierszu (i
mam na myśli liczbę zespoloną i ).imag({i,1}(A+Bi)^C
.6502 podprogram kodu maszynowego ,
199187185 bajtówJest to kod niezależny od pozycji, po prostu umieść go gdzieś w pamięci RAM i wywołaj z
jsr
instrukcją.Procedura przyjmuje (złożoną) bazę jako dwie 16-bitowe liczby całkowite ze znakiem (uzupełnienie 2, little-endian) w
$fb/$fc
(rzeczywistej) i$fd/$fe
(urojonej), a wykładnik jako 8-bitowa liczba całkowita bez znaku wY
rejestrze.Wynik jest zwracany w
$26/$27
(rzeczywistych) i$28/$29
(urojonych).Wyjaśnienie
Jest to nadal interesujące wyzwanie dla procesora 6502, ponieważ nie ma instrukcji nawet do pomnożenia. Podejście jest proste, realizując złożone mnożenie i wykonując je tak często, jak wymaga tego wykładnik potęgi. Gra w golfa polega na unikaniu podprogramów, zamiast tego tworzy się „odgałęzienie spaghetti”, więc kod do prostego mnożenia 16-bitowego, który jest potrzebny wiele razy, jest ponownie wykorzystywany przy możliwie najniższym koszcie. Oto skomentowany demontaż:
Przykład programu używającego go (C64, źródło asemblera w ca65 -syntax):
Demo online
Zastosowanie:
sys49152,[a],[b],[c]
npsys49152,5,2,2
(Wyjście:21+20i
)źródło
Dyalog APL , 10 bajtów
Wypróbuj online!
a
jest lewym argumentem,b
jest prawym argumentem ic
za pomocą monitu wejściowego.Zwraca liczbę zespoloną w formacie
dJe
.źródło
MATL , 1 bajt
Wejścia są
a+jb
,c
.Wypróbuj online!
Stara wersja: nieskomplikowane dane wejściowe i wyjściowe, 8 bajtów
Kolejność wejście jest
b
,a
,c
.Wypróbuj online!
Wyjaśnienie
źródło
C (gcc) , 34 bajty
Wypróbuj online!
źródło
8 , 38 bajtów
Kod
SED (diagram efektu stosu) to:
c a b -- (a + bi) ^ c
Ostrzeżenie :
a + bi
pozostaje włączone stosie r , ale nie wpływa to na kolejne obliczenia.Wersja bez golfa z komentarzami
Przykład i zastosowanie
Wyjście poprzedniego kodu
źródło
Octave / MATLAB, 6 bajtów
Anonimowa funkcja, która wprowadza dwie liczby i podaje ich moc.
Wypróbuj online !
Stara wersja: nieskomplikowane dane wejściowe i wyjściowe, 30 bajtów
Anonimowa funkcja, która wprowadza trzy liczby i wyświetla tablicę dwóch liczb.
Wypróbuj online!
źródło
Perl 6 ,
29 26 20 1911 bajtówSpróbuj
Spróbuj
Spróbuj
Spróbuj
Wraz ze zmianą ograniczeń produkcji można ją jeszcze zmniejszyć:
Spróbuj
***
Część jest analizowany jako** *
gdyż**
operator infiks jest dłuższy niż*
operatora Infix.Rozszerzony:
źródło
(*+* *i)***
.R, 25 bajtów
najprostsze - ponieważ kompresowanie danych jest dozwolone.
źródło
Casio-Basic, 6 bajtów
Zmień zasady, aby umożliwić wprowadzanie i wyprowadzanie, ponieważ liczby zespolone znacznie to skróciły.
3 bajty dla funkcji, +3, aby wprowadzić
a,b
w polu parametrów.źródło