عدد مختلط

عدد مختلط

متوسط

دستورالعمل‌ها

یک عدد مختلط به شکل 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))

الزامات پیاده‌سازی

با توجه به اینکه نباید از پشتیبانی داخلی زبان برای اعداد مختلط استفاده کنید، این عملیات را پیاده‌سازی کنید:

  • جمع دو عدد مختلط
  • تفریق دو عدد مختلط
  • ضرب دو عدد مختلط
  • تقسیم دو عدد مختلط
  • مزدوج یک عدد مختلط
  • قدر مطلق یک عدد مختلط
  • توان‌رسانی e (پایه‌ی لگاریتم طبیعی) به یک عدد مختلط

دستورالعمل‌های مخصوص MoonScript

این یک تمرین شیءگرا است: شما ComplexNumbers را به شکل یک کلاس پیاده‌سازی می‌کنید.

تست‌ها دو نمونه از عدد مختلط را از نظر برابری با هم مقایسه می‌کنند. یعنی کلاس شما باید «متامتد» __eq را پیاده‌سازی کند.

تست‌ها همچنین روی اعداد مختلط عملیات حساب انجام می‌دهند، بنابراین متامتدهای حساب هم وجود دارند که باید پیاده‌سازی شوند.

Caution

بعضی از توابع عدد مختلط با اعداد اعشاری شناور محاسبات انجام می‌دهند. «برابری» شما باید با اعدادی سر و کار داشته باشد که به‌طور تقریبی برابر هستند.


منبع

Wikipediaاین لینک در پنجره یا تب جدیدی باز می‌شود.
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
MoonScript Exercism

آماده‌اید عدد مختلط را شروع کنید؟

در Exercism ثبت‌نام کنید تا MoonScript را همراه با 126 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.