C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

少なくともk点がC++の円の内側にあるような最小半径を見つけます


いくつかの点と1つの整数kがあるとします。 k点をカバーするために、中心が(0、0)にある円の最小半径を見つける必要があります。したがって、点が(1、1)、(-1、-1)、(1、-1)、およびk =3のような場合、半径は2になります。

ここでは、各ポイントと(0、0)の間のユークリッド距離を見つけ、距離を並べ替えて、並べ替え後にk番目の要素を返します。

#include<iostream>
#include<algorithm>
using namespace std;
struct point{
   int x, y;
};
int minRadius(int k, point points[], int n) {
   int dist[n];
   for (int i = 0; i < n; i++)
   dist[i] = points[i].x * points[i].x + points[i].y * points[i].y;
   // Sorting the distance
   sort(dist, dist + n);
   return dist[k - 1];
}
int main() {
   int k = 3;
   point points[] = {{1, 1}, {-1, -1}, {1, -1}};
   int n = sizeof(points)/sizeof(points[0]);
   cout << "Minimum radius: " << minRadius(k, points, n) << endl;
}

出力

Minimum radius: 2

  1. ポイントがC++の円の内側にあるかどうかを確認します

    1つの円(中心座標と半径)が指定され、別の点も指定されているとします。ポイントが円の内側にあるかどうかを確認する必要があります。それを解決するには、円の中心から与えられた点の距離を見つける必要があります。その距離が半径以下の場合、それは円の内側にあり、そうでない場合はそうではありません。 例 #include <iostream> #include <cmath> using namespace std; bool isInsideCircle(int cx, int cy, int r, int x, int y) {    int dist =

  2. 特定の点をカバーする最適な長方形を見つけるためのC++プログラム

    この記事では、特定のポイントをカバーする最適な長方形を見つけるプログラムについて説明します。 この問題では、点の座標(x、y)と長さ/幅の比率=l / b(たとえば)が与えられます。与えられた点を含み、その寸法が与えられた比率に従う長方形の座標を見つける必要があります。複数の長方形が存在する場合は、ユークリッドの中心と指定された点の間の距離が最も短い長方形を選択する必要があります。 これを解決するには、まず比率l/bを最小化します。その後、min(n / l、m / b)値が(n、m)領域(2次元スペースを許可)にとどまることがわかります。まず、(x、y)が長方形の中心のみであると仮定しま