Mengingat dua bilangan bulat, yang mungkin negatif, nol, atau positif, a
dan b
(diambil dalam format yang wajar, termasuk memasukkan sejumlah kompleks polos ), dikonversi ke a + bi
mana i
adalah jumlah imajiner (akar kuadrat dari satu negatif). Kemudian, naikkan ke kekuatan variabel input ketiga (bilangan bulat positif), c
seperti . Anda kemudian harus berakhir dengan sesuatu seperti . Anda kemudian harus menampilkan, atau mengembalikan, dan dalam format apa pun yang masuk akal ( termasuk mengeluarkan angka yang kompleks ).(a + bi)c
d + ei
d
e
Input dan output dapat diambil atau dikeluarkan dalam urutan apa pun.
Contoh:
5, 2, 2 -> 21, 20
1, 4, 2 -> -15, 8
-5, 0, 1 -> -5, 0
Jawaban:
Mathematica, 17 byte
Cobalah online!
-8 byte dari alephalpha
tapi ........ peraturan telah berubah ...... jadi
Mathematica, 5 byte
sumber
{Re@#,Im@#}&
->ReIm
@#&
.#^#2&
atau adilPower
.Python 3 , 3 byte
Cobalah online!
Input dan output sebagai bilangan kompleks.
Python 3 , 47 byte
Cobalah online!
Input dan output sebagai bilangan bulat
Python 2 ,
6260 byte-2 byte terima kasih kepada @Leonhard
Cobalah online!
tidak menggunakan tipe bilangan kompleks
sumber
Javascript (ES6),
5150 bytef(a)(b)(c)
[d, e]
Penjelasan
sumber
Pari / GP , 36 byte
Cobalah online!
Pari / GP , 36 byte
Cobalah online!
sumber
Sebenarnya 1 byte
Cobalah online!
Perhatikan bahwa aturan telah berubah dan bilangan kompleks adalah tipe I / O yang valid (sayangnya ini mengubah posting menjadi tantangan "lakukan eksponensial ini"). Jawaban asli di bawah ini.
Sebenarnya , 3 byte
Cobalah online!
Mengembalikan nilai yang dipisahkan oleh baris baru. Mengambil input dalam urutan terbalik dan mengembalikan hasilnya dalam urutan terbalik (Lihat tautan tio).
sumber
Jelly , 1 byte
Cobalah online!
Terima kasih kepada Tn. Xcoder karena memberi tahu saya tentang pembaruan aturan (-6 sebagai hasilnya).
Terima kasih kepada seseorang karena memberi tahu saya tentang pembaruan aturan (-2 sebagai hasilnya).
Argumen pertama: Argumen
(a+bj)
kedua:
c
Pengembalian:
(d+ej)
sumber
ḅı*
, karena aturan telah berubah dan Anda sekarang diizinkan untuk mengeluarkan bilangan kompleks.R , 3 byte
Ini menjadi membosankan. Jika input dan output dibolehkan sebagai bilangan kompleks, ada builtin untuk fungsi daya.
Sebagai contoh:
atau
sumber
05AB1E ,
20191716 byteCobalah online! Mengambil tiga input terpisah dalam urutan
b, a, c
dan menghasilkan array[d, e]
. Sunting: Disimpan 2 byte berkat @Datboi. Disimpan 1 byte berkat @Adnan. Penjelasan:sumber
'jì+³m
.1 0‚
denganTS
untuk -2 byte :)P
secara otomatis membuat vektor, jadi Anda tidak perlu€
.C # (.NET Core) ,
6238 byteCobalah online!
sumber
.Real
dan .Imaginary` dalam jawaban Anda .. Menurut aturan " Anda harus mengeluarkan, atau kembali,d
dane
dalam format apa pun yang masuk akal (tidak termasuk mengeluarkan angka kompleks yang sederhana) " Anda tidak diizinkan untuk hanya menampilkan Bilangan kompleksPyth,
51252 byteDiambil
c
pertama, diikuti oleha+bj
.7 byte boilerplate karena tampaknya output sebagai nomor imajiner tidak diizinkan.Sudah diizinkan kembali! Hore! Dan dengan memasukkan bilangan kompleks sebagai input yang masuk akal, kita dapat memotong 3 byte tambahan!Solusi sebelumnya:
Ketika bilangan kompleks bukan input yang masuk akal.
Ketika bilangan kompleks bukan hasil yang masuk akal.
Test Suite.
sumber
05AB1E , 1 byte
Cobalah online!
Input:
c\n(a+bj)
Keluaran:
(d+ej)
sumber
'jì+³m
adalah cara berbeda untuk menghitung angka.J,
10,7, 1 bytesDibawa
c
sebagai argumen kanan dan bilangan kompleksajb
(bagaimana Anda mewakilia + bi
dalam J) sebagai argumen kiri.Cobalah online!
Solusi Lain
7 byte
Mengambil input bilangan kompleks sebagai daftar.
10 byte
Ini menghasilkan
a + bi
dalam daftara b
.Saya ingin mencoba sesuatu yang lucu
^~&.(j./)
tapi kebalikan darij./
itu jelas tidak didefinisikan. Sebenarnya,^~&.(+.inv)
berfungsi dan Anda bisa membuat^&.(+.inv)
yang juga 10 byte jika Anda membalik urutan di mana Anda mengambil argumen.sumber
TI-BASIC,
25228 byteMengambil bilangan kompleks dan eksponen sebagai input, dan menyimpan output
Ans
sebagai bilangan kompleks. Penurunan byte secara drastis karena pembatasan yang dilonggarkan pada input / output.sumber
imag({iAns,Ans
di baris terakhir (i
maksud saya nomor kompleks i ).imag({i,1}(A+Bi)^C
.6502 kode mesin subroutine,
199187185 byteIni adalah kode posisi-independen, taruh saja di suatu tempat di RAM dan menyebutnya dengan a
jsr
instruksi.Rutin mengambil basis (kompleks) sebagai dua bilangan bulat bertanda 16bit (komplemen 2's, little-endian) di
$fb/$fc
(real) dan$fd/$fe
(imajiner), dan eksponen sebagai bilangan bulat 8bit yang tidak ditandatangani dalamY
register.Hasilnya dikembalikan dalam
$26/$27
(nyata) dan$28/$29
(imajiner).Penjelasan
Ini masih merupakan tantangan yang menarik pada CPU 6502 karena tidak ada instruksi untuk mengalikan. Pendekatannya lurus ke depan, menerapkan perkalian yang kompleks dan mengeksekusi sesering yang diminta oleh eksponen. Golf dilakukan dengan menghindari subrutin, alih-alih menciptakan semacam "spageti cabang", sehingga kode untuk melakukan perkalian 16bit sederhana yang diperlukan beberapa kali digunakan kembali dengan overhead yang serendah mungkin. Inilah komentar pembongkaran:
Contoh program yang menggunakannya (C64, sumber assembly di ca65 -syntax):
Demo online
Penggunaan:
sys49152,[a],[b],[c]
, misalnyasys49152,5,2,2
(Output:21+20i
)sumber
Dyalog APL , 10 byte
Cobalah online!
a
adalah argumen kiri, argumenb
benar, danc
melalui input prompt.Mengembalikan angka kompleks dalam format
dJe
.sumber
MATL , 1 byte
Input
a+jb
,c
.Cobalah online!
Versi lama: input dan output yang tidak rumit, 8 byte
Agar input
b
,a
,c
.Cobalah online!
Penjelasan
sumber
C (gcc) , 34 byte
Cobalah online!
sumber
8 , 38 byte
Kode
SED (Stack Effect Diagram) adalah:
c a b -- (a + bi) ^ c
Peringatan :
a + bi
dibiarkan hidup r-stack , tetapi ini tidak mempengaruhi perhitungan selanjutnya.Versi tidak dikoleksi dengan komentar
Contoh dan penggunaan
Output dari kode sebelumnya
sumber
Oktaf / MATLAB, 6 byte
Fungsi anonim yang memasukkan dua angka dan mengeluarkan daya mereka.
Cobalah online !
Versi lama: input dan output yang tidak rumit, 30 byte
Fungsi anonim yang memasukkan tiga angka dan menghasilkan larik dua angka.
Cobalah online!
sumber
Perl 6 ,
29 26 20 1911 byteCobalah
Cobalah
Cobalah
Cobalah
Dengan perubahan pembatasan output dapat dikurangi lebih lanjut:
Cobalah
Bagian
***
ini diuraikan** *
karena**
operator infiks lebih panjang dari*
operator infiks.Diperluas:
sumber
(*+* *i)***
.R, 25 byte
paling sederhana - karena kompleks keluaran diperbolehkan.
sumber
Casio-Basic, 6 byte
Ubah aturan untuk memungkinkan input dan output karena bilangan kompleks membuatnya lebih pendek secara signifikan.
3 byte untuk fungsi, +3 untuk masuk
a,b
dalam kotak parameter.sumber