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

एक मैट्रिक्स में कोशिकाओं की संख्या जो एक फाइबोनैचि संख्या देते हैं जब आसन्न कोशिकाओं की गिनती सी ++ में जोड़ दी जाती है

एक मैट्रिक्स को देखते हुए [ ][ ] जिसका आयाम पंक्ति x col है। लक्ष्य मैट्रिक्स की कोशिकाओं की संख्या का पता लगाना है जो दी गई शर्त को पूरा करते हैं:

सेल मैट्रिक्स का मान [i][j] + नहीं। इसके आसन्न कोशिकाओं का =एक फाइबोनैचि संख्या

फाइबोनैचि श्रृंखला में संख्याएँ:- 0, 1, 1, 2, 3, 5, 8, 13, 21, 43…..

आइए उदाहरणों से समझते हैं।

उदाहरण के लिए

इनपुट - मैट्रिक्स [पंक्ति] [कॉल] ={{1, 4, 1}, {2, 0, 1}, {5, 1, 1}

आउटपुट - मैट्रिक्स में कोशिकाओं की संख्या जो आसन्न कोशिकाओं की संख्या जोड़ने पर एक फाइबोनैचि संख्या देती हैं:4

स्पष्टीकरण

0 1 2

0 1 4 1

1 2 0 1

2 5 1 1

सेल(0,0) → 1+2=3 ( 2 आसन्न सेल (1,0) और (0,1) )

सेल(0,2) → 1+2=3

सेल(1,0) → 2+3=5

सेल(2,2) → 1+2=3

इनपुट - मैट्रिक्स [पंक्ति] [कॉल] ={{0,0,0}, {0, 1, 0}, {0, 0, 0}}

आउटपुट - मैट्रिक्स में कोशिकाओं की संख्या जो एक फाइबोनैचि संख्या देते हैं जब आसन्न कोशिकाओं की संख्या जोड़ दी जाती है:9

स्पष्टीकरण

0 1 2

0 0 0 0

1 0 1 0

2 0 0 0

सेल(0,0) → 0+2=2 (2 आसन्न सेल (1,0) और (0,1)) इसी तरह सेल (0,2), (2,2) और (2,0)

सेल(0,1) → 0+3=3 ( 3 आसन्न सेल (0,1) और (0,2) और (1,1)) इसी तरह सेल (1,0), (1,2) और (2 ,1)

सेल (1,1) → 1+4=5

सभी 9 सेल गिने जाते हैं।

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

किसी भी प्रकार के मैट्रिक्स में केवल तीन प्रकार की कोशिकाएँ होंगी। कोने की कोशिकाओं में 2 आसन्न कोशिकाएँ होंगी, 3 आसन्न कोशिकाओं वाली कोशिकाएँ और केवल 4 आसन्न कोशिकाओं वाली कोशिकाएँ। इन कोशिकाओं के मान में 2, 3 या 4 जोड़ें और जाँच करें कि क्या योग एक फाइबोनैचि संख्या है जो फ़ंक्शन check_fibonacci(int num) का उपयोग कर रही है।

  • एक मैट्रिक्स लें [][] और इसे इनिशियलाइज़ करें।
  • फ़ंक्शन check_square(long double num) एक संख्या लेता है और अगर यह एक पूर्ण वर्ग है तो सही लौटता है।
  • फ़ंक्शन check_fibonacci(int num) अगर num एक फाइबोनैचि संख्या है, तो सही लौटता है।
  • यदि check_square(5 * num * num + 4) || check_square(5 * num * num - 4) सही है तो num एक फिबोनाची संख्या है।
  • फ़ंक्शन Fibonacci_cells(int matrix[row][col]) मैट्रिक्स में कोशिकाओं की संख्या देता है जो आसन्न कोशिकाओं की गिनती जोड़ने पर एक फाइबोनैचि संख्या देता है।
  • प्रारंभिक गणना 0 के रूप में लें।
  • i=0 से i
  • इससे सटे सेलों के आधार पर कुल 2,3 या 4 जोड़ें।
  • यदि नया योग एक फाइबोनैचि संख्या है तो check_fibonacci(total) सही लौटेगा, इसलिए वृद्धि की गणना।
  • अंत में लूप के लिए परिणाम के रूप में वापसी की गणना करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
#define row 3
#define col 3

bool check_square(long double num) {
   long double val = sqrt(num);
   return ((val - floor(val)) == 0);
}
bool check_fibonacci(int num) {
   return check_square(5 * num * num + 4) || check_square(5 * num * num - 4);
}
int Fibonacci_cells(int matrix[row][col]) {
   int count = 0;

   for (int i = 0; i < row; i++) {
      for (int j = 0; j < col; j++) {
         int total = matrix[i][j];
         if ((i == 0 && j == 0) || (i == row - 1 && j == 0) || (i == 0 && j == col - 1) || (i == row - 1 && j == col - 1)) {
            total = total + 2;
         } else if (i == 0 || j == 0 || i == row - 1 || j == col - 1) {
            total = total + 3;
         } else {
            total = total + 4;
         }
         if (check_fibonacci(total)) {
            count++;
         }
      }
   }
   return count;
}
int main() {
   int matrix[row][col] = {{1, 4,1},{2,0,1},{5,1,1}};
   cout << "Count of cells in a matrix which give a Fibonacci number when the count of adjacent cells is added are: " << Fibonacci_cells(matrix);
   return 0;
}

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

आउटपुट

Count of cells in a matrix which give a Fibonacci number when the count of adjacent cells is added are: 

  1. C++ का उपयोग करके OpenCV में चेहरों की संख्या कैसे गिनें?

    एक छवि में स्थित चेहरों की संख्या गिनना आसान है। पिछले भाग में हमने जो प्रोग्राम लिखा था, उसमें पहले से ही faces.size () में चेहरों की संख्या की जानकारी है। यह कोड-faces.size () एक पूर्णांक मान देता है। उदाहरण के लिए, यदि हम int x =face.size () लिखते हैं, तो x में चेहरों की संख्या होगी। निम्न प्रो

  1. सी ++ का उपयोग कर ओपनसीवी में फ्रेम की कुल संख्या की गणना कैसे करें?

    हम सीखेंगे कि OpenCV में फ़्रेम की कुल संख्या की गणना कैसे करें। ओपनसीवी का उपयोग करते हुए, वीडियो के फ्रेम की कुल संख्या को गिनना और दिखाना प्राथमिक है। हालाँकि, आपको एक बात ध्यान में रखनी होगी कि हम वास्तविक समय के वीडियो फ्रेम की कुल संख्या की गणना नहीं कर सकते। क्योंकि रीयल-टाइम वीडियो में निश्च

  1. उन नोड्स की गणना करें जिनका योग X के साथ C++ में एक फाइबोनैचि संख्या है

    एक बाइनरी ट्री दिया गया है जिसके नोड्स के भार संख्याओं के रूप में हैं। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनका वजन इस तरह है कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं:0, 1, 1, 2, 3, 5, 8, 13…। n वीं संख्या का योग है (n−1)वें और (n−2)वें। अगर वजन 13 है तो यह एक फाइ