জটিল সংখ্যা

জটিল সংখ্যা

মধ্যম

নির্দেশনা

একটি জটিল সংখ্যা প্রকাশ করা হয় 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টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।