কম্পিউটার

C++-এ K উৎপত্তির নিকটতম পয়েন্ট খুঁজুন


ধরুন আমাদের পয়েন্টের একটি সেট আছে। আমাদের কাজ হল K পয়েন্টগুলি খুঁজে বের করা যা উৎপত্তির সবচেয়ে কাছাকাছি। ধরা যাক বিন্দুগুলো হল (3, 3), (5, -1) এবং (-2, 4)। তারপর নিকটতম দুটি (K =2) পয়েন্ট হল (3, 3), (-2, 4)।

এই সমস্যাটি সমাধান করার জন্য, আমরা তাদের ইউক্লিডীয় দূরত্বের উপর ভিত্তি করে বিন্দুগুলির তালিকা বাছাই করব, তারপর বাছাই করা তালিকা থেকে শীর্ষস্থানীয় K উপাদানগুলি নেব। সেগুলি হল K নিকটতম বিন্দু।

উদাহরণ

#include<iostream>
#include<algorithm>
using namespace std;
class Point{
   private:
   int x, y;
   public:
   Point(int x = 0, int y = 0){
      this->x = x;
      this->y = y;
   }
   void display(){
      cout << "("<<x<<", "<<y<<")";
   }
   friend bool comparePoints(Point &p1, Point &p2);
};
bool comparePoints(Point &p1, Point &p2){
   float dist1 = (p1.x * p1.x) + (p1.y * p1.y);
   float dist2 = (p2.x * p2.x) + (p2.y * p2.y);
   return dist1 < dist2;
}
void closestKPoints(Point points[], int n, int k){
   sort(points, points+n, comparePoints);
   for(int i = 0; i<k; i++){
      points[i].display();
      cout << endl;
   }
}
int main() {
   Point points[] = {{3, 3},{5, -1},{-2, 4}};
   int n = sizeof(points)/sizeof(points[0]);
   int k = 2;
   closestKPoints(points, n, k);
}

আউটপুট

(3, 3)
(-2, 4)

  1. C++ এ বাইনারি সার্চ ট্রিতে সবচেয়ে কাছের উপাদান খুঁজুন

  2. C++ এ একটি লাইনের মধ্যবিন্দু খুঁজে বের করার জন্য প্রোগ্রাম

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

  4. C++ এ একটি বাইনারি গাছের নিকটতম পাতাটি খুঁজুন