কম্পিউটার

C++ এ দুটি প্রদত্ত উপাদানের সমান সংখ্যক উপস্থিতি সহ সাব্যারে গণনা করুন


আমাদেরকে পূর্ণসংখ্যার একটি অ্যারে [] দেওয়া হয়েছে। এছাড়াও, দুটি সংখ্যা A এবং B। লক্ষ্য হল arr[] এর সমস্ত সাব্যারে গণনা করা যাতে A এবং B এর উপস্থিতি সকলের মধ্যে সমান হয়। যদি অ্যারে হয় [1,2,3] এবং A হয় 1 এবং B হয় 2। সাবাররে হবে [3], [1,2], [1,2,3]।

আসুন উদাহরণ দিয়ে বুঝতে পারি।

ইনপুট − arr[] ={ 2, 2, 1, 1, 1, 5}; A=1, B=5

আউটপুট − সমান সংখ্যা সহ সাবয়ারের গণনা। দুটি প্রদত্ত উপাদানের সংঘটন হল − 4

ব্যাখ্যা − সুবারায় হবে − [2], [2], [2,2], [1,5]। প্রথম তিনটিতে 1 এবং 5 এর 0টি ঘটনা রয়েছে, শেষটিতে উভয়টির 1টি ঘটনা রয়েছে৷

ইনপুট − arr[] ={ 5,3,7,5,3}; A=1, B=2

আউটপুট − সমান সংখ্যা সহ সাবয়ারের গণনা। দুটি প্রদত্ত উপাদানের সংঘটন হল − 15

ব্যাখ্যা − সুবারায়গুলি হবে − (যেটিতে 1 এবং 2 এর 0টি উপস্থিতি রয়েছে)

<প্রে>[5], [3], [7], [5], [3] - 5[5,3], [3,7], [7,5], [5,3] - 4[ 5,3,7], [3,7,5], [7,5,3] - 3[5,3,7,5], [3,7,5,3] - 2[5,3, 5,7,5] - 1

1 এবং 2 উভয়ের কোন উপস্থিতি ছাড়াই মোট 15টি সাবয়ারে (0টি ঘটনা)৷

নিচের প্রোগ্রামে ব্যবহৃত পদ্ধতিটি নিম্নরূপ

আমরা সম্ভাব্য সমস্ত সাবয়ারে তৈরি করতে টু লুপ ব্যবহার করে অ্যারেটি অতিক্রম করব। i=0 থেকে i<=size-1 এবং j=i থেকে j<=size-1। গঠিত সাব্যারেগুলি হবে arr[i] থেকে arr[j] এর মধ্যে। প্রতিটি সাবরেতে A এবং B এর ফ্রিকোয়েন্সি গণনা করুন। সমান হলে গণনা বৃদ্ধি করুন।

  • সংখ্যার একটি অ্যারে অ্যারে নিন।

  • ফাংশন sub_EqualOccurrence(int arr[], int size, int A, int B) অ্যারে নেয় এবং সমান সংখ্যা সহ সাব্যারেগুলির একটি গণনা প্রদান করে। A এবং B.

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • আমরা i=0 থেকে i<=size-1 এবং j=0 থেকে j<=size-1 পর্যন্ত লুপের জন্য দুটি ব্যবহার করে অ্যারেটি অতিক্রম করব।

  • দুটি ভেরিয়েবল total_A নিন, total_B 0 হিসাবে A's এবং B's এর সংখ্যার জন্য subarray arr[i] to arr[j]।

  • A এবং B এর সাথে arr[j] এর তুলনা করুন। arr[j] A বা B হলে সংশ্লিষ্ট গণনা বৃদ্ধি করুন ( total_A বা total_B)।

  • যদি মোট_A==total_B. বৃদ্ধির সংখ্যা। (সাব্যারেতে উপাদান হিসাবে A' এবং B এর সমান সংখ্যা রয়েছে)।

  • উভয় লুপের শেষে, ফলাফল হিসাবে গণনা করুন।

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;int sub_EqualOccurrence(int arr[], int size, int A, int B){ int count =0; জন্য (int i =0; i <=আকার - 1; i++){ int total_A =0; int total_B =0; জন্য (int j =i; j <=size - 1; j++){ if (arr[j] ==A){ total_A++; } অন্যথায় যদি (arr[j] ==B){ total_B++; } if(total_A ==total_B){ count++; } } } রিটার্ন কাউন্ট;}// ড্রাইভার কোডইন্ট মেইন(){ int arr[] ={ 2, 3, 1, 1, 4, 5}; int size =sizeof(arr) / sizeof(arr[0]); int A =1, B =5; cout<<"দুটি প্রদত্ত উপাদানের সমান সংখ্যক সংঘটন সহ সাবয়ারের গণনা হল:"< 

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
দুটি প্রদত্ত উপাদানের উপস্থিতির সমান সংখ্যক সাবয়ারের সংখ্যা হল:5

  1. C++ এ একটি প্রদত্ত সাব্যারেতে প্রদত্ত সংখ্যার চেয়ে কম বা সমান উপাদানের সংখ্যা

  2. C++ এ প্রদত্ত সংখ্যার সমান GCD সহ একটি সেটের উপসেটের সংখ্যা গণনা করুন

  3. C++ এ প্রদত্ত সংখ্যা সহ অ্যারের উপাদানগুলির গড় ঘটনা গণনা করুন

  4. C++ এ ম্যানহাটনের দূরত্বের সমান দূরত্ব সহ পাথ গণনা করুন