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

C++ में मैट्रिक्स में उन सेल्स की गिनती जिनमें आसन्न सेल्स की संख्या जोड़ने पर फाइबोनैचि संख्या मिलती है


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

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

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

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

उदाहरण के लिए

इनपुट - matrix[row][col] = {{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

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

उदाहरण

#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. OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें OpenCV में C++ का उपयोग करके चेहरों की संख्या गिनें

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

  1. OpenCV में C++ का उपयोग करके कुल फ्रेम की संख्या गिनें OpenCV में C++ का उपयोग करके कुल फ्रेम की संख्या गिनें

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

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

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं: 0, 1, 1, 2, 3, 5, 8, 13... nth संख्या (n-1)th और (n-2)th का योग है। यदि वजन 13 है तो यह एक फाइबोनैचि संख्या है इसलिए नोड गिना जाएगा।