কম্পিউটার

C++ এ ম্যাট্রিক্স ব্লক সমষ্টি


ধরুন আমাদের একটি m * n ম্যাট্রিক্স আছে যাকে বলা হয় ম্যাট এবং একটি পূর্ণসংখ্যা K, আমাদের আরেকটি ম্যাট্রিক্স উত্তর খুঁজতে হবে যেখানে প্রতিটি উত্তর[i][j] হল সমস্ত উপাদানের যোগফল। r][c] i - K <=r <=i + K, j - K <=c <=j + K, এবং (r, c) ম্যাট্রিক্সে একটি বৈধ অবস্থান। তাই যদি ইনপুট −

এর মত হয়
1 2 3
4 5 6
7 8 9

এবং k হল 1, তাহলে আউটপুট হবে −

12 21 16
27 45 33
24 39 28

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n :=সারির সংখ্যা, এবং m =কলামের সংখ্যা
  • একটি ম্যাট্রিক্স উত্তর সংজ্ঞায়িত করুন, যার ক্রম n x m
  • আমি 0 থেকে n – 1
      পরিসরে j-এর জন্য 0 থেকে m – 1
      • র জন্য i – k থেকে i + k
          পরিসরে j – k থেকে j + k
            পরিসরে c এর জন্য
          • যদি r এবং c ম্যাট্রিক্স সূচকের ভিতরে থাকে, তাহলে
            • আনস[i, j] :=ans[i, j] + mat[r, c]
  • উত্তর ফেরত দিন

উদাহরণ(C++)

আসুন আরও ভালোভাবে বোঝার জন্য নিচের বাস্তবায়ন দেখি −

#include  namespace ব্যবহার করে std;void print_vector(vector> v){ cout <<"["; for(int i =0; i> ম্যাট্রিক্সব্লকসাম(ভেক্টর<ভেক্টর>এন্ড ম্যাট, int k) { int n =mat.size(); int m =mat[0].size(); ভেক্টর <ভেক্টর > ans(n , ভেক্টর  (m)); for(int i =0; i =0 &&r =0 &&c > v1 ={{1,2,3},{4,5,6},{7,8,9}}; সমাধান ob; print_vector(ob.matrixBlockSum(v1, 1));}

ইনপুট

[[1,2,3],[4,5,6],[7,8,9]]1

আউটপুট

<প্রে>[[12, 21, 16, ],[27, 45, 33, ],[24, 39, 28, ],]
  1. C++ এ ম্যাট্রিক্সের উপসর্গ সমষ্টি (বা 2D অ্যারে)

  2. C++ এ ম্যাট্রিক্সে সর্বাধিক পাথ যোগফল

  3. C++ বুলিয়ান ম্যাট্রিক্স

  4. C++ এ অ্যালিকোট যোগফল?