একটি ম্যাট্রিক্স দেওয়া হয়েছে [ ][ ] যার মাত্রা আছে সারি x col হিসাবে। লক্ষ্য হল ম্যাট্রিক্সের কোষের সংখ্যা খুঁজে বের করা যা প্রদত্ত শর্ত পূরণ করে:
সেল ম্যাট্রিক্সের মান [i][j] + no. এর সংলগ্ন কোষগুলির =একটি ফিবোনাচি সংখ্যা
ফিবোনাচি সিরিজের সংখ্যা:- 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(দীর্ঘ ডাবল 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(টোটাল) সত্য হবে, তাই সংখ্যা বৃদ্ধি।
- লুপের জন্য সব শেষে ফলাফল হিসাবে গণনা ফেরত দেয়।
উদাহরণ
#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: