fork(1) download
  1. <?php
  2. //Дан набор из N точек на плоскости (для простоты можно считать, что у всех точек целочисленные координаты).
  3. //Найдите минимальное расстояние между двумя точками из этого набора.
  4.  
  5. //Координаты точки где первая 'x' а вторая соответственно 'y'
  6. $points = array(
  7. array(10, 10),
  8. array(20, 10),
  9. array(20, 15)
  10. );
  11.  
  12. function findMinLength(array $points)
  13. {
  14. $count = count($points);
  15. if (($count < 2)) {
  16. return 'Неверные данные. Точек должно быть минимум две.';
  17. }
  18.  
  19. $min = INF;
  20. for ($i = 0; $i < $count; ++$i) {
  21. for ($j = $i + 1; $j < $count; ++$j) {
  22. $distance = sqrt(pow($points[$j][0] - $points[$i][0], 2) + pow($points[$j][1] - $points[$i][1], 2));
  23. if ($distance < $min) {
  24. $min = $distance;
  25. }
  26. }
  27. }
  28. return $min;
  29. }
  30.  
  31. print_r(findMinLength($points));
  32.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
5