Найти расстояние между двумя заданными множествами на плоскости - C#

Узнай цену своей работы

Формулировка задачи:

Досталось такое задание: Расстояние между двумя множествами точек – это расстояние между наиболее близко расположенными точками этих множеств. Найти расстояние между двумя заданными множествами на плоскости. Как решить?

Решение задачи: «Найти расстояние между двумя заданными множествами на плоскости»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace ConsoleApplication1
  5. {
  6.     class Program
  7.     {
  8.         struct Point
  9.         {
  10.             public double X;
  11.             public double Y;
  12.  
  13.             public Point(double x, double y)
  14.             {
  15.                 X = x;
  16.                 Y = y;
  17.             }
  18.  
  19.             public override string ToString()
  20.             {
  21.                 return X + ";" + Y;
  22.             }
  23.         }
  24.  
  25.         static Random random = new Random();
  26.  
  27.         static void Main(string[] args)
  28.         {
  29.             List<Point> A = new List<Point>();
  30.             List<Point> B = new List<Point>();
  31.  
  32.             FillListWithRandomData(A, 7);
  33.             FillListWithRandomData(B, 3);
  34.  
  35.             Point p1 = new Point(-1, -1), p2 = new Point(-1, -1);
  36.             double d;
  37.             double min_d = double.PositiveInfinity;
  38.             foreach (var point1 in A)
  39.             {
  40.                 foreach (var point2 in B)
  41.                 {
  42.                     d = Math.Sqrt(Math.Pow(point1.X - point2.X, 2) + Math.Pow(point1.Y - point2.Y, 2));
  43.                     if (d < min_d)
  44.                     {
  45.                         min_d = d;
  46.                         p1 = point1;
  47.                         p2 = point2;
  48.                     }
  49.                 }
  50.             }
  51.  
  52.             PrintList(A);
  53.             PrintList(B);
  54.             Console.WriteLine("Min dist between {0} and {1} : {2}", p1, p2, min_d);
  55.             Console.ReadKey();
  56.         }
  57.  
  58.         static void FillListWithRandomData(List<Point> list, int count)
  59.         {
  60.             for (int i = 0; i < count; i++)
  61.             {
  62.                 list.Add(new Point(random.Next(0, 51), random.Next(0, 51)));
  63.             }
  64.         }
  65.  
  66.         static void PrintList(List<Point> list)
  67.         {
  68.             Console.WriteLine(String.Join(" ", list));
  69.         }
  70.     }
  71. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы