Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Обормот
0 / 0 / 0
Регистрация: 24.06.2014
Сообщений: 14
#1

Найти две наиболее удаленных друг от друга точки - C++

25.06.2014, 20:03. Просмотров 1039. Ответов 1
Метки нет (Все метки)

Структуры:
I. Решить задачу, используя структуру point для хранения координат точки:
Множество точек задано в пространстве. Найти две наиболее удаленных друг от друга точки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2014, 20:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти две наиболее удаленных друг от друга точки (C++):

найти две наиболее удаленных друг от друга точки (множество точек задано на плоскости) - C++
Помогите, пожалуйста, написать программу на С++, используя структуру point для хранения координат точки: следует найти две наиболее...

Найти номера наиболее и наименее удаленных друг от друга точек - C++
В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1,...

Задан массив точек. Найти номера наиболее и наименее удаленных друг от друга точек. - C++
Условие задачи: В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в...

Динамическая матрица (Найти координаты двух точек, наиболее удалённых друг от друга) - C++
Дана динамическая матрица размера N*2 (N вводится). Каждая строка матрицы содержит значения координат X и Y одной точки на плоскости,...

В заданном множестве точек найти три пары самых удаленных друг от друга точек - C++
Координаты точки на площади задаются парой действительных чисел. Дано натуральное число n и координаты n точек. Найти три пары самых...

Найти наименее удаленные друг от друга точки на плоскости - C++
Приветствую ребята! Нужна помощь, помогите решить задачу на С++, Заранее благодарен. В файле содержатся координаты нескольких точек...

1
Vladimir.
158 / 158 / 10
Регистрация: 24.11.2009
Сообщений: 375
27.06.2014, 18:59 #2
гугл: диаметр множества. Простым перебором (с предварительной генерацией точек):
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/**
I. Решить задачу, используя структуру point для хранения координат точки:
Множество точек задано в пространстве. Найти две наиболее удаленных друг
от друга точки.
**/
#include<cstdio>
#include<vector>
#include<cmath>
#include<random>
struct Point {
    double x;
    double y;
};
 
double distance(const Point& rhs, const Point& lhs) {
//вычисляет расстояние между заданными точками.
    return sqrt(
               pow(rhs.x - lhs.x, 2)
               + pow(rhs.y - lhs.y, 2)
           );
}
 
void generate(std::vector<Point>& v) {
//забивает случайными значениями.
    std::random_device rd;
    std::uniform_real_distribution<double> spread (-1.0,1.0);
    for (auto& w : v) {
        w.x = spread(rd);
        w.y = spread(rd);
    }
}
 
std::pair<Point, Point> find_diameter( const std::vector<Point>& v) {
//вычисляет расстояние для каждой пары точек, возвращает
//максимальное. O(n^2); v.size() >= 2 !
 
    double max = 0;
    std::pair<Point , Point> maxpair; // для сохранения лучшей пары точек
 
    for ( auto it = v.begin(); it != v.end(); ++it) {
        for (auto inner = it + 1; inner < v.end(); ++inner) {
            auto tmp = distance( *it, *inner );
            if (max < tmp) {
                //найдена новая лучшая пара.
                maxpair.first = *it;
                maxpair.second = *inner;
                max = tmp;
            }
        }
    }
    return maxpair;
}
 
 
int main() {
    auto size = 1000;
    std::vector<Point> universe(size);
    generate(universe);
 
    auto result_points = find_diameter(universe);
    printf("Диаметр множества: %f\nнайден на точках (%f, %f) и (%f, %f)\n",
           distance(result_points.first, result_points.second),
           result_points.first.x, result_points.first.y,
           result_points.second.x, result_points.second.y
          );
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2014, 18:59
Привет! Вот еще темы с ответами:

Разработать программу для нахождения пары самых удаленных друг от друга точек - C++
N точек на плоскости заданы своими координатами, значения которых формируются случайным образом. Разработать программу для нахождения пары...

Цифры стоящие друг от друга через две - C++
Как на основе этого кода я смогу посчитать сумму цифр стоящих друг от друга через две То есть, я ввожу например: 12345678 Число делится...

Определить бъют ли две фигуры на шахматной доске друг друга - C++
Привет. Помогите пожалуйста. Даны координаты двух фигур на шахматной доске. Определить бьют ли они друг друга. Фигуры могут быть или двое...

Посчитать сумму цифр стоящих друг от друга через две - C++
Доброе время суток! Ребята, объясните, как на основе этого кода я смогу посчитать сумму цифр стоящих друг от друга через две То есть, я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.