একটি জটিল সংখ্যা হলো a + b * i আকারের একটি সংখ্যা, যেখানে a ও b বাস্তব এবং i শর্তটি পূরণ করে: i^2 = -1।
a হলো বাস্তব অংশ এবং b হলো z-এর কাল্পনিক অংশ।
a + b * i সংখ্যাটির অনুবন্ধী হলো a - b * i সংখ্যাটি।
জটিল সংখ্যা z = a + b * i-এর পরম মান একটি বাস্তব সংখ্যা, |z| = sqrt(a^2 + b^2)। পরম মানের বর্গ |z|^2 হলো z-কে তার অনুবন্ধী জটিল সংখ্যা দিয়ে গুণ করার ফলাফল।
দুটি জটিল সংখ্যার যোগফল/বিয়োগফল বের করতে তাদের বাস্তব ও কাল্পনিক অংশ আলাদা আলাদাভাবে যোগ/বিয়োগ করতে হয়:
(a + i * b) + (c + i * d) = (a + c) + (b + d) * i,
(a + i * b) - (c + i * d) = (a - c) + (b - d) * i.
গুণের ফলাফল সংজ্ঞা অনুযায়ী
(a + i * b) * (c + i * d) = (a * c - b * d) + (b * c + a * d) * i.
শূন্য নয় এমন একটি জটিল সংখ্যার অন্যোন্যক হলো
1 / (a + i * b) = a/(a^2 + b^2) - b/(a^2 + b^2) * i.
একটি জটিল সংখ্যা a + i * b-কে অপর একটি c + i * d দিয়ে ভাগ করলে পাওয়া যায়:
(a + i * b) / (c + i * d) = (a * c + b * d)/(c^2 + d^2) + (b * c - a * d)/(c^2 + d^2) * i.
e-কে একটি জটিল সূচকে উন্নীত করাকে এভাবে লেখা যায়: e^(a + i * b) = e^a * e^(i * b), যার শেষ পদটি দেওয়া আছে অয়লারের সূত্রে: e^(i * b) = cos(b) + i * sin(b)।
নিচের অপারেশনগুলো ইমপ্লিমেন্ট করুন:
ধরে নিন, আপনি যে প্রোগ্রামিং ভাষা ব্যবহার করছেন তাতে জটিল সংখ্যার কোনো ইমপ্লিমেন্টেশন নেই।
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।