কম্পিউটার

C++ এ ন্যূনতম পণ্য ট্রিপলেট গঠনের উপায় গণনা করুন


আমাদের Arr[] নম্বরের একটি অ্যারে দেওয়া হয়েছে। লক্ষ্য হল ট্রিপলেটের সংখ্যা গণনা করা যার গুণফল সম্ভাব্য সব ট্রিপলেটের ক্ষুদ্রতম গুণফলের সমান। (i

আমরা প্রথমে ক্ষুদ্রতম পণ্যটি খুঁজে বের করে এটি করব যেখানে (i আছে এমন সমস্ত ট্রিপলেট গণনা করুন

উদাহরণ দিয়ে বোঝা যাক।

ইনপুট − arr[]={ 1,2,3,2,4,1,5 }

আউটপুট − ট্রিপলেটের সংখ্যা − 2

ব্যাখ্যা

Here minimum product is 2
Triplet 1[ 1,2,3,2,4,1,5 ] → (1,2,1) product=2
Triplet 2 [ 1,2,3,2,4,1,5 ] → (1,2,1) product=2
Number of triplets with product 2 which is minimum is 2.

ইনপুট − arr[]={ 1,1,2,1,2,2 }

আউটপুট − ট্রিপলেটের সংখ্যা − 1

ব্যাখ্যা

Here minimum product is 1
Triplet 1 [ 1,1,2,1,2,2 ] → (1,1,1) product=1
Number of triplets with product 1 which is minimum is 1.

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

  • আমরা একটি পূর্ণসংখ্যার অ্যারে নিই Arr[] এলোমেলো সংখ্যার সাথে শুরু।

  • একটি পরিবর্তনশীল N নিন যা Arr[] এর দৈর্ঘ্য সংরক্ষণ করে।

  • ফাংশন countTriplets(int arr[], int n) একটি অ্যারে নেয়, এর দৈর্ঘ্য ইনপুট হিসাবে এবং ট্রিপলেট ফেরত দেয় যার গুণফল সর্বনিম্ন পণ্যের সমান।

  • ট্রিপলেটের সংখ্যার জন্য প্রাথমিক পরিবর্তনশীল গণনাকে 0 হিসাবে নিন।

  • প্রতিটি ট্রিপলেটের গুণফল হিসাবে প্রারম্ভিক চলক prod নিন। প্রাথমিকভাবে 1.

  • সমস্ত ট্রিপলেটের ন্যূনতম সম্ভাব্য পণ্য হিসাবে প্রাথমিক পরিবর্তনশীল মিনপ্রড নিন। প্রাথমিকভাবে 999.

  • ট্রিপলেটের প্রতিটি উপাদানের জন্য তিনটি লুপ ব্যবহার করে ট্রাভার্স অ্যারে।

  • 0<=i

  • prod=arr[i]*arr[j]*arr[k] গণনা করুন। যদি prod<=minprod তাহলে প্রোড দিয়ে minprod আপডেট করুন।

  • এখন minprod সব ট্রিপলেটের সর্বনিম্ন গুণফলের মান আছে।

  • ট্রিপলেটের প্রতিটি উপাদানের জন্য লুপের জন্য তিনটি ব্যবহার করে আবার ট্রাভার্স অ্যারে।

  • 0<=i

  • prod=arr[i]*arr[j]*arr[k] গণনা করুন। যদি prod==minprod তাহলে ইনক্রিমেন্ট কাউন্ট। যেহেতু এই জুটির সর্বনিম্ন পণ্য রয়েছে৷

  • সমস্ত লুপ গণনার শেষে শর্ত পূরণকারী মোট ট্রিপলেট সংখ্যা থাকবে।

  • ফলাফল হিসাবে গণনা ফেরত দিন।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int countTriplets(int arr[],int n){
   int count = 0;
   int prod=1;
   int minprod=9999; //making minimum as larger than any product in array
   for (int i = 0; i < n-2; i++){
      for (int j = i+1; j < n-1; j++){
         for (int k = j+1; k < n; k++){
            prod=arr[i]*arr[j]*arr[k];
            if ( prod<=minprod )
               { minprod=prod; }
         }
      }
   }
   // cout<<"minproduct :"<<minprod; //to print minimum product
   for (int i = 0; i < n-2; i++){
      for (int j = i+1; j < n-1; j++){
         for (int k = j+1; k < n; k++){
            prod=arr[i]*arr[j]*arr[k];
            if ( prod==minprod ){
               count++;
               //cout<<endl<<"a :"<<arr[i]<<" b :"<<arr[j]<<" c :"<<arr[k]; //to print
            }
         }
      }
   }
   return count;
}
int main(){
   int Arr[]={ 1,2,3,1,2,6};
   int N=5; //length of array
   cout <<endl<< "Number of triplets : "<<countTriplets(Arr,N);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Number of triplets : 2

  1. একটি সেটকে C++-এ k উপসেটে ভাগ করার উপায় গণনা করুন

  2. C++ এ শেষ পর্যন্ত লাফানোর উপায় গণনা করুন

  3. C++ এ বিজোড় পূর্ণসংখ্যার যোগফল হিসেবে 'n' প্রকাশ করার উপায় গণনা করুন

  4. একটি বাছাই করা দ্বিগুণ লিঙ্কযুক্ত তালিকায় ট্রিপলেট গণনা করুন যার পণ্য C++ এ একটি প্রদত্ত মানের x সমান।