يُعبَّر عن العدد المركب بالصيغة 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))
بما أنه لا ينبغي لك استخدام الدعم المدمج للأعداد المركبة، فنفّذ العمليات التالية:
في هذا التمرين ستحتاج إلى إضافة طرق إلى بنية موجودة (Number).
يمكنك الاطلاع على مثال على ذلك في وثائق Crystal عن دوال الجلب والضبط.
سجّل في Exercism لتتعلّم وتتقن Crystal عبر 26 مفهومًا142 تمرينًا، وإرشاد بشري حقيقي، وكل ذلك مجانًا.