The Rundown
Diberikan input x dan y , lakukan operasi yang kompleks, dan cetak hasil yang sesuai.
Bagaimana program Anda seharusnya bekerja
Diberikan input x dan y dalam bentuk z = x + yi , cari z i-z
Jika nilai riil absolut dari z i-z lebih besar dari bagian imajiner absolut, cetaklah bagian asli; sebaliknya untuk sebaliknya. Jika kedua nilai sama, cetak salah satu nilai.
Contoh
x: 2
y: 0
Karena itu:
z = 2
z^(i-z) ~= 0.192309 + 0.159740i
Karena bagian nyata memiliki nilai absolut yang lebih besar daripada bagian imajiner, program kembali
0.192309
Lebih banyak contoh
z = 1+i >> 0.5
z = i >> 1
z = 0.5 >> 1.08787
z = -2+8i >> 2.22964E7
z = -10i >> 3.13112E7
code-golf
math
complex-numbers
Graviton
sumber
sumber
-2+i
dapat digunakan untuk itu (z^(i-z)=3-4i
jadi3>-4
vsabs(-4)>abs(3)
).Jawaban:
Jelly ,
811 byteTerima kasih Johnathan Allan untuk memperbarui jawaban dengan perubahan peraturan.
Cobalah online!
sumber
ı_*@µĊ,ḞAÞṪ
dan Anda mungkin hanya memiliki satu-satunya entri yang valid (mengingat perubahan membutuhkan nilai maksimal dalam istilah absolut, sehingga, misalnya,-2+1j
mengembalikan-4.0
daripada3.0
).Python 2, 45 byte
Coba online - semua test case
Bahasa pemrograman sering digunakan
j
sebagai gantinyai
. Itu adalah kasus dengan Python. Lihat pertanyaan SO ini untuk informasi lebih lanjut tentang alasannya.sumber
Mathematica,
2122 byteSunting: Terima kasih kepada JungHwan Min karena telah menghemat 3 btyes
Fungsi murni yang mengharapkan bilangan kompleks sebagai argumen. Jika angka pastinya dilewati, maka angka pastinya akan dikembalikan (mis.
1/2
MemberiSqrt[2] Cos[Log[2]]
). Spec masalah telah diedit setelah saya memposting solusi saya untuk menentukan bahwa nilai absolut harus digunakan. Yang terbaik yang bisa saya pikirkan adalahMaximalBy[ReIm[#^(I-#)],Abs][[1]]&
atauLast@MaximalBy[Abs]@ReIm[#^(I-#)]&
, kedua34
byte.sumber
Max
tidak perlu menjadi kepala. Ini mengembalikan nilai max tidak peduli seberapa dalam inputList
(misalnyaMax[1, {2, {3}}]
mengembalikan3
). Selain itu, pertanyaannya hanya menentukan bahwa Anda mencetak nilai, jadi saya tidak berpikir Anda akan perluN
:Max@ReIm[#^(I-#)]&
akan bekerja.Oktaf , 29 byte
Ini mendefinisikan fungsi anonim. Ia bekerja di MATLAB juga.
Cobalah online!
Penjelasan
Elemen-bijaksana membagi (
./
) angkaz^(i-z)
dengan array[1 i]
dan mengambil bagian yang nyata memberikan array dengan bagian nyata dan imajinerz^(i-z)
.sumber
MATL , 10 byte
Cobalah online! Atau verifikasi semua kasus uji .
Penjelasan
Pertimbangkan input
-2+8i
sebagai contoh.sumber
TI-BASIC,
40,32,3129 byteMenyimpan satu byte berkat @Conor O'Brien
Mengambil input sebagai bilangan kompleks pada
Z
variabel.TI-BASIC menggunakan penyandian sendiri, Anda dapat menemukannya di sini .
sumber
Pyth, 16 Bytes
sumber
Perl 6 , 24 byte
$_
adalah argumen yang mungkin rumit;$_ ** (i - $_)
adalah ekspresi yang harus dihitung;.reals
adalahComplex
metode yang mengembalikan daftar bagian nyata dan imajiner; dan akhirnya.max
mengembalikan yang lebih besar dari keduanya.sumber
C (GCC),
9379 + 4 (-lm
) =9783 byteDisimpan 14 byte berkat @ceilingcat!
Termasuk tajuk
complex.h
lebih panjang dari itu ¯ \ _ (ツ) _ / ¯Cobalah online!
sumber
-
,l
, danm
.gcc file.c -o exe
, sehingga bendera ini menambahkan 4 bytes: ruang,-
,l
, danm
. (Setidaknya itulah yang saya lihat saat menghitung.)Ruby ,
2535 byteEDIT : Diperbaiki untuk mematuhi aturan nilai absolut baru.
Cobalah online!
Ini menciptakan fungsi anonim.
sumber
TI-Basic,
1916 bytereal(
danimag(
merupakan token dua byte.Jalankan dengan
5+3i:prgmNAME
(5+3i
menjadi argmuent,NAME
menjadi nama program.)sumber
R, 38 byte
Fungsi anonim. Mengambil (mungkin) bilangan kompleks
z
, membawanya ke daya yang ditentukan, dan kemudian mengembalikanmax
bagianRe
al danIm
aginary.sumber
Aksioma, 60 byte
kode uji dan hasil; saya ikuti sebagai yang lain versi preseden dari pertanyaan ...
sumber
C # - 189 Bytes
Dapat dibaca:
Penjelasan: Memutuskan untuk tidak menggunakan perpustakaan yang kompleks.
Biarkan ini sama denganm esaya a dimana
KemudianR ( zi - z) = m cosSebuah dan Saya ( zi - z) = m dosaSebuah
Nilai absolut maksimum dapat ditentukan olehcosSebuah dan dosaSebuah istilah, dengan ini sama di 12√ (karenanya tes 2 c2< 1 ).
Seperti disebutkan, menaikkan ke eksponen kompleks tergantung pada pemilihan cabang tertentu (misz= 1 bisa jadi esaya π atau e3 i π - Mengangkat ini ke saya memberikan bagian nyata dari e- π atau e- 3 π masing - masing), namun, saya baru saja menggunakan konvensi t ∈ [ 0 , 2 π) sesuai pertanyaan.
sumber
APL (Dyalog Unicode) , 18 byte
18 byte ( https://github.com/abrudz/SBCS/ )
28 byte (UTF-8)
⍵ adalah bilangan kompleks ajb = a + bi
Cobalah online!
sumber