يُعبَّر عن العدد المركب بالصيغة 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))
بما أنه لا ينبغي لك استخدام الدعم المدمج للأعداد المركبة، فنفّذ العمليات التالية:
التعليمات أعلاه متزامنة مع مستودع مشترك لضمان الاتساق بين جميع مسارات اللغات. يقدّم هذا الملحق توضيحًا إضافيًا أو يعدّل التعليمات حسب الحاجة لتتوافق بشكل أفضل مع أهداف مسار Clojure.
في هذا التمرين ضمن مسار Clojure، لا تحتاج إلى تنفيذ عملية الرفع إلى قوة.
سجّل في Exercism لتتعلّم وتتقن Clojure عبر 12 مفهومًا105 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.