Найти расстояние между двумя заданными множествами на плоскости - 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));
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д