কম্পিউটার

একটি প্রদত্ত বিন্দু কভার করে এমন সেরা ফিট আয়তক্ষেত্র খুঁজে পেতে C++ প্রোগ্রাম


এই প্রবন্ধে, আমরা একটি প্রদত্ত বিন্দু কভার করে এমন সেরা উপযুক্ত আয়তক্ষেত্র খুঁজে বের করার জন্য একটি প্রোগ্রাম নিয়ে আলোচনা করব৷

এই সমস্যায়, আমাদেরকে একটি বিন্দুর স্থানাঙ্ক (x,y) এবং দৈর্ঘ্য/প্রস্থ =l/b (বলুন) অনুপাত দেওয়া হয়েছে। আমাদের একটি আয়তক্ষেত্রের স্থানাঙ্ক খুঁজে বের করতে হবে যাতে প্রদত্ত বিন্দু রয়েছে এবং যার মাত্রা প্রদত্ত অনুপাত অনুসরণ করে। একাধিক আয়তক্ষেত্র বিদ্যমান থাকলে, আমাদেরকে এর ইউক্লিডের কেন্দ্র এবং প্রদত্ত বিন্দুর মধ্যে সবচেয়ে কম দূরত্বের একটি বেছে নিতে হবে।

এটি সমাধান করার জন্য, প্রথমে আমরা l/b অনুপাত কমিয়ে আনব। এর পরে, আমরা (n,m) অঞ্চলে থাকার জন্য min(n/l,m/b) মান খুঁজে পাই (অনুমোদিত 2d স্থান)। প্রথমত, ধরা যাক যে (x,y) শুধুমাত্র আমাদের আয়তক্ষেত্রের কেন্দ্র। যদি তা না হয়, আমরা দৈর্ঘ্য এবং প্রস্থের মান যথাক্রমে বিয়োগ এবং যোগ করে মূল স্থানাঙ্কগুলি খুঁজে পাব।

উদাহরণ

#include <cmath>
#include <iostream>
using namespace std;
//to minimize the value of given ratio
int greatest_div(int l, int b) {
   if (l == 0)
      return b;
   else
      return greatest_div(b % l, l);
}
//to calculate the coordinates
void calc_coordinates(int n, int m, int x, int y, int l, int b) {
   int k, div1;
   int x1, y1, x2, y2;
   div1 = greatest_div(l, b);
   l /= div1;
   b /= div1;
   k = min(n / l, m / b);
   //finding the range in which the given point exists
   x1 = x - (k * l - k * l / 2);
   x2 = x + k * l / 2;
   y1 = y - (k * b - k * b / 2);
   y2 = y + k * b / 2;
   //if the coordinates go out of the range
   if (x1 < 0){
      x2 -= x1;
      x1 = 0;
   }
   if (x2 > n){
      x1 -= x2 - n;
      x2 = n;
   }
   if (y1 < 0){
      y2 -= y1;
      y1 = 0;
   }
   if (y2 > m) {
      y1 -= y2 - m;
      y2 = m;
   }
   cout << "Coordinates : " << x1 << " " << y1 << " " << x2<< " " << y2 << endl;
}
int main() {
   int n = 50, m = 20, x = 10, y = 6, l = 4, b = 7;
   calc_coordinates(n, m, x, y, l, b);
   return 0;
}

আউটপুট

Coordinates : 6 0 14 14

  1. সীমাবদ্ধতাগুলিকে সন্তুষ্ট করে এমন একটি পয়েন্ট খুঁজে পেতে C++ কোড

  2. C++ প্রোগ্রাম প্রদত্ত পূর্ণসংখ্যা থেকে সর্বাধিক সম্ভাব্য ট্যালি বের করতে

  3. একটি প্রদত্ত গ্রাফে সেতুর প্রান্তের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

  4. একটি প্রদত্ত সিকোয়েন্সের দীর্ঘতম ক্রমবর্ধমান অনুক্রম খুঁজে পেতে C++ প্রোগ্রাম