Найти расстояние между двумя заданными множествами на плоскости - C#
Формулировка задачи:
Досталось такое задание:
Расстояние между двумя множествами точек – это расстояние между наиболее близко расположенными точками этих множеств. Найти расстояние между двумя заданными множествами на плоскости.
Как решить?
Решение задачи: «Найти расстояние между двумя заданными множествами на плоскости»
textual
Листинг программы
using System; using System.Collections.Generic; namespace ConsoleApplication1 { class Program { struct Point { public double X; public double Y; public Point(double x, double y) { X = x; Y = y; } public override string ToString() { return X + ";" + Y; } } static Random random = new Random(); static void Main(string[] args) { List<Point> A = new List<Point>(); List<Point> B = new List<Point>(); FillListWithRandomData(A, 7); FillListWithRandomData(B, 3); Point p1 = new Point(-1, -1), p2 = new Point(-1, -1); double d; double min_d = double.PositiveInfinity; foreach (var point1 in A) { foreach (var point2 in B) { d = Math.Sqrt(Math.Pow(point1.X - point2.X, 2) + Math.Pow(point1.Y - point2.Y, 2)); if (d < min_d) { min_d = d; p1 = point1; p2 = point2; } } } PrintList(A); PrintList(B); Console.WriteLine("Min dist between {0} and {1} : {2}", p1, p2, min_d); Console.ReadKey(); } static void FillListWithRandomData(List<Point> list, int count) { for (int i = 0; i < count; i++) { list.Add(new Point(random.Next(0, 51), random.Next(0, 51))); } } static void PrintList(List<Point> list) { Console.WriteLine(String.Join(" ", list)); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д