एक मैट्रिक्स को देखते हुए [ ][ ] जिसका आयाम पंक्ति 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: