Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

मैट्रिक्स घातांक का उपयोग करके फाइबोनैचि संख्या खोजने के लिए C++ प्रोग्राम

फाइबोनैचि संख्याएं, जिन्हें आमतौर पर Fn के रूप में दर्शाया जाता है, एक अनुक्रम बनाते हैं, जिसे फाइबोनैचि अनुक्रम कहा जाता है, अर्थात; प्रत्येक संख्या 0 और 1 से शुरू होने वाली दो पूर्ववर्ती संख्याओं का योग है। वह है -

F0 = 0 and F1 = 1
And
Fn = Fn-1 + Fn-2
for n > 1.

एल्गोरिदम

Begin
   Take two 2 dimensional array
   Create a function and Perform matrix multiplication
   Create another function to find out power of matrix
   Create a function then to find out the Fibonacci number
   Multiply(arr1[2][2], arr2[2][2])
   Take 4 variables a, b, c, d
   a = arr1[0][0] * arr2[0][0] + arr1[0][1] * arr2[1][0]
   b= arr1[0][0] * arr2[0][1] + arr1[0][1] * arr2[1][1]
   c = arr1[1][0] * arr2[0][0] + arr1[1][1] * arr2[1][0]
   d = arr1[1][0] * arr2[0][1] + arr1[1][1] * arr2[1][1]
   arr1[0][0] = a
   arr1[0][1] = b
   arr1[1][0] = c
   arr1[1][1] = d
   Power(arr1[2][2], take integer n as input)
   if (n == 0 or n == 1)
      return;
   arr1 [2][2] = {{1,1}, {1,0}}
   power(arr1, n / 2)
   multiply(arr1, arr1)
   if (n mod 2 not equal to 0)
      multiply(arr1, arr2)
   fibonacci_matrix(n)
   arr1[2][2] = {{1,1}, {1,0}}
   if n ==0
      return 0
      power(arr1 n - 1)
   return arr1[0][0]
End

उदाहरण कोड

#include <iostream>
using namespace std;
void multiply(int F[2][2], int M[2][2]) {
   int a = F[0][0] * M[0][0] + F[0][1] * M[1][0];
   int b= F[0][0] * M[0][1] + F[0][1] * M[1][1];
   int c = F[1][0] * M[0][0] + F[1][1] * M[1][0];
   int d = F[1][0] * M[0][1] + F[1][1] * M[1][1];
   F[0][0] = a;
   F[0][1] = b;
   F[1][0] = c;
   F[1][1] = d;
}
void power(int F[2][2], int n) {
   if (n == 0 || n == 1)
      return;
   int M[2][2] = {{1,1},{1,0}};
   power(F, n / 2);
   multiply(F, F);
   if (n % 2 != 0)
      multiply(F, M);
}
int fibonacci_matrix(int n) {
   int F[2][2] = {{1,1},{1,0}};
   if (n == 0)
      return 0;
   power(F, n - 1);
   return F[0][0];
}
int main() {
   int n;
   while (1) {
      cout<<"Enter the integer n to find nth fibonacci no. (enter 0 to exit):";
      cin>>n;
      if (n == 0)
         break;
      cout<<fibonacci_matrix(n)<<endl;
   }
   return 0;
}

आउटपुट

Enter the integer n to find nth fibonacci no. (enter 0 to exit): 2
1
Enter the integer n to find nth fibonacci no. (enter 0 to exit): 6
8
Enter the integer n to find nth fibonacci no. (enter 0 to exit): 7
13
Enter the integer n to find nth fibonacci no. (enter 0 to exit): 0

  1. C++ का प्रयोग करके दीर्घवृत्त का क्षेत्रफल ज्ञात करने का कार्यक्रम

    यहां हम देखेंगे कि C++ का उपयोग करके दीर्घवृत्त का क्षेत्रफल कैसे प्राप्त करें। अंडाकार के अलग-अलग हिस्से होते हैं। ये नीचे की तरह हैं। मुख्य बिंदु विवरण केंद्र दीर्घवृत्त का केंद्र। यह रेखा खंडों का भी केंद्र है जो दो फ़ॉसी को जोड़ता है। प्रमुख अक्ष दीर्घवृत्त का सबसे लंबा व्यास nmemb यह तत्व

  1. C++ प्रोग्राम इंसीडेंस मैट्रिक्स का उपयोग करके ग्राफ का प्रतिनिधित्व करने के लिए

    एक ग्राफ की घटना मैट्रिक्स मेमोरी में स्टोर करने के लिए ग्राफ का एक और प्रतिनिधित्व है। यह मैट्रिक्स एक वर्ग मैट्रिक्स नहीं है। आपतन मैट्रिक्स का क्रम V x E है। जहाँ V शीर्षों की संख्या है और E ग्राफ़ में किनारों की संख्या है। इस मैट्रिक्स की प्रत्येक पंक्ति में हम कोने रख रहे हैं, और प्रत्येक कॉलम

  1. सी ++ प्रोग्राम आसन्न मैट्रिक्स का उपयोग करके ग्राफ का प्रतिनिधित्व करने के लिए

    एक ग्राफ का आसन्न मैट्रिक्स आकार V x V का एक वर्ग मैट्रिक्स है। V, ग्राफ G के शीर्षों की संख्या है। इस मैट्रिक्स में प्रत्येक पक्ष में V कोने चिह्नित हैं। यदि ग्राफ़ में i से j कोने तक कुछ किनारे हैं, तो ith पर आसन्न मैट्रिक्स में पंक्ति और जम्मूवें कॉलम में यह 1 (या भारित ग्राफ़ के लिए कुछ गैर-शून्