কম্পিউটার

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


একটি 2D অ্যারে arr[][][] দেওয়া হয়েছে যেখানে অন্তর এবং একটি সংখ্যা 'মান' রয়েছে। লক্ষ্য হল arr-এ উপস্থিত ব্যবধানের সংখ্যা খুঁজে বের করা যার মধ্যে মান রয়েছে। উদাহরণস্বরূপ ব্যবধান হল [ [ [ [ 1, 5 ] , [ 3, 7 ] ] এবং মান=4 তাহলে এটি এই উভয় ব্যবধানে থাকে এবং গণনা হবে 2।

উদাহরণস্বরূপ

ইনপুট

arr[4][2] = { { 1, 20 }, { 12, 25 }, { 32, 40 }, { 15, 18 } } value=16

আউটপুট

Count of number of intervals in which a given value lies are: 3

ব্যাখ্যা

The value 16 lies between 1−20, 12−25 and 15−18

ইনপুট

arr[4][2] = {{ 1, 20 }, { 20,30 }, { 30, 40 }, { 40, 50 }} value=60

আউটপুট

Count of number of intervals in which a given value lies are: 0

ব্যাখ্যা

The value 60 is larger than all maximum ranges of intervals present in
arr[][].

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি

এই পদ্ধতিতে আমরা arr-এ উপস্থিত রেঞ্জের সমস্ত সংখ্যার জন্য একটি ফ্রিকোয়েন্সি অ্যারে arr_2[] তৈরি করব। সুতরাং প্রতিটি রেঞ্জের arr[i][0] এবং arr[i][1] এর ফ্রিকোয়েন্সি arr_2[ arr[i][0 বা 1] ] এ বৃদ্ধি পাবে। শেষে আমরা ফ্রিকোয়েন্সি অ্যারেকে arr_2[i]=arr_2[i]+arr_2[i−1] দিয়ে আপডেট করব কারণ i-1-এর চেয়ে কম সংখ্যাগুলিও i থেকে কম হবে তাই ফ্রিকোয়েন্সি যোগ করা হবে। এইভাবে আমরা arr_2[মান] পাব সমস্ত রেঞ্জ হিসাবে যেখানে মান রয়েছে।

  • একটি পূর্ণসংখ্যা বিন্যাস নিন arr[][] সমন্বিত পরিসর

  • ইনপুট হিসাবে একটি পূর্ণসংখ্যা মান নিন।

  • ফাংশন intervals_values(int arr[][2], int size, int value) arr এবং মান নেয় এবং একটি প্রদত্ত মান থাকা অন্তরের সংখ্যার একটি গণনা প্রদান করে।

  • ফ্রিকোয়েন্সি অ্যারে নিন arr_2[]।

  • INT_MAX এবং INT_MIN হিসাবে কম এবং সর্বোচ্চ নিন।

  • ট্রাভার্স arr[][] i=0 থেকে i এর জন্য লুপ ব্যবহার করে

  • টেম্পকে রেঞ্জের বাম হিসাবে নিন এবং এর ফ্রিকোয়েন্সি arr_2[temp>

    এ বৃদ্ধি করুন
  • temp_2 কে ব্যাপ্তির ডানদিকে নিন এবং এর ফ্রিকোয়েন্সি arr_2[temp_2+1]

    এ বৃদ্ধি করুন
  • যদি tempসর্বোচ্চ সেট সর্বোচ্চ temp_2 হিসেবে।

  • ট্র্যাভার্স ফ্রিকোয়েন্সি অ্যারে এবং এটি আপডেট করুন arr_2[i]=arr_2[i]+arr_2[i+1]।

  • শেষে ফলাফল হিসাবে arr_2[মান] ফেরত দিন।

উদাহরণ

#include<bits/stdc++.h>
using namespace std;
#define max 1000
int intervals_values(int arr[][2], int size, int value){
   int arr_2[max];
   int low = INT_MAX;
   int highest = INT_MIN;
   for(int i = 0; i < size; i++){
      int temp = arr[i][0];
      arr_2[temp] = arr_2[temp] + 1;
      int temp_2 = arr[i][1];
      arr_2[temp_2 + 1] = arr_2[temp_2 + 1] − 1;
      if(temp < low){
         low = temp;
      }
      if(temp_2 > highest){
         highest = temp_2;
      }
   }
   for (int i = low; i <= highest; i++){
      arr_2[i] = arr_2[i] + arr_2[i − 1];
   }
   return arr_2[value];
}
int main(){
   int arr[4][2] = { { 3, 20 }, { 2, 13 }, { 25, 30 }, { 15, 40 } };
   int size = sizeof(arr) / sizeof(arr[0]);
   int value = 28;
   cout<<"Count the number of intervals in which a given value lies are:
   "<<intervals_values(arr, size, value);
   return 0;
}

আউটপুট

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

উৎপন্ন করবে
Count the number of intervals in which a given value lies are: 18830628

  1. C++ এ প্রদত্ত আকারের আয়তক্ষেত্রের ভিতরে সম্ভাব্য রম্বির সংখ্যা গণনা করুন

  2. C++ এ প্রদত্ত এক্সপ্রেশনের মান সর্বাধিক করুন

  3. প্রদত্ত তালিকা থেকে নম্বর খুঁজুন যার জন্য ফাংশনের মান C++ এ A-এর কাছাকাছি

  4. একটি প্রদত্ত সংখ্যার সংখ্যা যোগ করার জন্য C++ প্রোগ্রাম