Найти номера пары точек, расстояние между которыми наибольшее - C#
Формулировка задачи:
Даны координаты п точек на плоскости (x1, y1), •••(xn , yn) (n < 30). Найти номера пары то-чек, расстояние между которыми наибольшее (считать, что такая пара единственная).
Решение задачи: «Найти номера пары точек, расстояние между которыми наибольшее»
textual
Листинг программы
Random gen = new Random();
double Max = -1;
int k = 0, n = 0;
Point[] AllPoint = new Point[gen.Next(5, 30)];
Point Point1= new Point(0,0);
Point Point2 = new Point(0, 0);
for (int i = 0; i < AllPoint.Length; i++)
{
AllPoint[i] = new Point(gen.Next(-10, 10), gen.Next(-10, 10));
Console.WriteLine("Точка{0} : \tX={1} \tY={2}", i + 1, AllPoint[i].X, AllPoint[i].Y);
}
for (int i = 0; i < AllPoint.Length; i++)
for (int j = 0; j < AllPoint.Length; j++)
{
if(Max<Point.Virtuallength(AllPoint[i],AllPoint[j]))
{
Max=Point.Virtuallength(AllPoint[i],AllPoint[j]);
Point1=AllPoint[i];
Point2=AllPoint[j];
k = i+1;
n = j+1;
}
}
Console.WriteLine("Максимальное расстояние между точками Точка{4} \t{0},{1} \t Точка{5} \t{2},{3} ", Point1.X, Point1.Y, Point2.X, Point2.Y,k,n);