x+yi और एक पूर्णांक n के रूप में एक सम्मिश्र संख्या दी गई है; यदि हम सम्मिश्र संख्या को n द्वारा शक्ति देते हैं, तो कार्य जटिल संख्या के मूल्य की गणना और प्रिंट करना है।
एक सम्मिश्र संख्या क्या है?
एक सम्मिश्र संख्या वह संख्या होती है जिसे a + bi के रूप में लिखा जा सकता है, जहाँ a और b वास्तविक संख्याएँ हैं और i समीकरण का हल है या हम एक काल्पनिक संख्या कह सकते हैं। तो, सरल शब्दों में हम कह सकते हैं कि सम्मिश्र संख्या वास्तविक संख्या और काल्पनिक संख्या का संयोजन है।
एक सम्मिश्र संख्या की शक्ति बढ़ाना
एक सम्मिश्र संख्या की शक्ति बढ़ाने के लिए हम नीचे दिए गए सूत्र का उपयोग करते हैं -
(a+bi) (c+di)=( ac−bd )+(ad+bc )i
जैसे हमारे पास एक सम्मिश्र संख्या है
2+3i और इसकी शक्ति को 5 तक बढ़ाने पर हमें -
. मिलेगा(2+3 i) 5 =(2+3 i)(2+3i)(2+3 i)(2+3 i)(2+3i)
ऊपर दिए गए फॉर्मूले के इस्तेमाल से हमें जवाब मिलेगा -
उदाहरण
Input: x[0] = 10, x[1] = 11 /*Where x[0] is the first real number and 11 is the second real number*/ n = 4 Output: -47959 + i(9240) Input: x[0] = 2, x[1] =3 n = 5 Output: 122 + i(597)
उपरोक्त समस्या को हल करने के लिए हम जिस दृष्टिकोण का उपयोग कर रहे हैं -
तो, समस्या को पुनरावृत्त विधि का उपयोग करके आसानी से हल किया जा सकता है लेकिन जटिलता ओ (एन) होगी, लेकिन हमें ओ (लॉग एन) समय में समस्या को हल करना होगा। उसके लिए हम -
. कर सकते हैं- सबसे पहले इनपुट को एक ऐरे के रूप में लें।
- फ़ंक्शन में x^n
- . को पावर दें
- जांचें कि क्या n 1 है, तो x लौटाएं
- पावर पास x और n/2 को पुनरावर्ती रूप से कॉल करें और इसके परिणाम को एक चर वर्ग में संग्रहीत करें।
- जाँच करें कि क्या n को 2 से भाग देने पर शेषफल 0 मिलता है; यदि ऐसा है तो cmul(sq, sq) से प्राप्त परिणाम लौटाएँ
- जांचें कि क्या n को 2 से भाग देने पर शेषफल 0 नहीं मिलता है; यदि ऐसा है तो cmul(x, cmul(sq, sq)) से प्राप्त परिणाम लौटाएं।
- फ़ंक्शन में cmul()।
- जांचें कि क्या x1 =a+bi और x2 =x+di, तो x1 * x2 =(a*c–b*d)+(b*c+d*a)i.
- प्राप्त परिणामों को वापस करें और प्रिंट करें।
एल्गोरिदम
Start Step 1-> declare function to calculate the product of two complex numbers long long* complex(long long* part1, long long* part2) Declare long long* ans = new long long[2] Set ans[0] = (part1[0] * part2[0]) - (part1[1] * part2[1]) Se ans[1] = (part1[1] * part2[0]) + part1[0] * part2[1] return ans Step 2-> declare function to return the complex number raised to the power n long long* power(long long* x, long long n) Declare long long* temp = new long long[2] IF n = 0 Set temp[0] = 0 Set temp[1] = 0 return temp End IF n = 1 return x End Declare long long* part = power(x, n / 2) IF n % 2 = 0 return complex(part, part) End return complex(x, complex(part, part)) Step 3 -> In main() Declare int n Declare and set long long* x = new long long[2] Set x[0] = 10 Set x[1] = -11 Set n = 4 Call long long* a = power(x, n) Stop
उदाहरण
#include <bits/stdc++.h> using namespace std; //calculate product of two complex numbers long long* complex(long long* part1, long long* part2) { long long* ans = new long long[2]; ans[0] = (part1[0] * part2[0]) - (part1[1] * part2[1]); ans[1] = (part1[1] * part2[0]) + part1[0] * part2[1]; return ans; } // Function to return the complex number raised to the power n long long* power(long long* x, long long n) { long long* temp = new long long[2]; if (n == 0) { temp[0] = 0; temp[1] = 0; return temp; } if (n == 1) return x; long long* part = power(x, n / 2); if (n % 2 == 0) return complex(part, part); return complex(x, complex(part, part)); } int main() { int n; long long* x = new long long[2]; x[0] = 10; x[1] = -11; n = 4; long long* a = power(x, n); cout << a[0] << " + i ( " << a[1] << " )" << endl; return 0; }
आउटपुट
power of complex number in O(Log n) : -47959 + i ( 9240 )