يُعبَّر عن العدد المركب بالصيغة z = a + b * i، حيث:
a هو الجزء الحقيقي (عدد حقيقي)،
b هو الجزء التخيلي (وهو أيضًا عدد حقيقي)، و
i هي الوحدة التخيلية التي تحقق i^2 = -1.
يُعطى مرافق العدد المركب z = a + b * i بالعلاقة:
zc = a - b * i
تُعرَّف القيمة المطلقة (أو المقياس) للعدد z بأنها:
|z| = sqrt(a^2 + b^2)
ويُحسب مربع القيمة المطلقة على أنه حاصل ضرب z في مرافقه zc:
|z|^2 = z * zc = a^2 + b^2
يُحسب مجموع العددين المركبين z1 = a + b * i وz2 = c + d * i بجمع جزأيهما الحقيقي والتخيلي كلًّا على حدة:
z1 + z2 = (a + b * i) + (c + d * i)
= (a + c) + (b + d) * i
يُحصل على الفرق بين عددين مركبين بطرح الجزأين المتناظرين من كل منهما:
z1 - z2 = (a + b * i) - (c + d * i)
= (a - c) + (b - d) * i
يُعرَّف حاصل ضرب عددين مركبين بأنه:
z1 * z2 = (a + b * i) * (c + d * i)
= (a * c - b * d) + (b * c + a * d) * i
يُعطى مقلوب عدد مركب لا يساوي صفرًا بالعلاقة:
1 / z = 1 / (a + b * i)
= a / (a^2 + b^2) - b / (a^2 + b^2) * i
تُعطى قسمة عدد مركب على آخر بالعلاقة:
z1 / z2 = z1 * (1 / z2)
= (a + b * i) / (c + d * i)
= (a * c + b * d) / (c^2 + d^2) + (b * c - a * d) / (c^2 + d^2) * i
يمكن التعبير عن رفع e (أساس اللوغاريتم الطبيعي) إلى أس مركب باستخدام صيغة أويلر:
e^(a + b * i) = e^a * e^(b * i)
= e^a * (cos(b) + i * sin(b))
بما أنه لا ينبغي لك استخدام الدعم المدمج للأعداد المركبة، فنفّذ العمليات التالية:
يمكن العثور على تطبيق Julia Base للأعداد المركبة هنا: https://github.com/JuliaLang/julia/blob/master/base/complex.jl.
يمكنك العمل على التمارين الإضافية التي تتضمن عمليات حسابية بين الأعداد الحقيقية والأعداد المركبة عبر إلغاء التعليق عن:
# enable_realcomplex_tests = true في ملف complex-numbers.jl المبدئي أو في runtests.jl
يمكنك العمل على التمارين الإضافية بين الأعداد الحقيقية والأعداد المركبة عبر إلغاء التعليق عن:
# enable_syntaxsugar_tests = true في ملف complex-numbers.jl المبدئي أو في runtests.jl
ثم نفّذ jm على غرار im بحيث يكون 1 + 1jm == ComplexNumber(1, 1).
سجّل في Exercism لتتعلّم وتتقن Julia عبر 35 مفهومًا128 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.