Помогите, пожалуйста, решить задачу на c++!

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Помогите, пожалуйста, решить задачу на c++!

Re: Помогите, пожалуйста, решить задачу на c++!

Darina » 06 июн 2017, 07:08

Слива писал(а):Блиииииин, я тут уже башку сломал, а задание оказалось таким простым. Автор короче корявый попался. Так так и надо писать "из заданного на плоскости множества точек", а не ерунду какую-то. Автор корявый короче.
Ну да обход массива по всем точкам и вычисление расстояние. Я уже код дать хотел, но если она так коряво задания составляет. то ничего не дам. БЕ-БЕ-БЕ! :D

Задание мне дал мой преподаватель, именно в такой формулировке. Ничего личного. Обратилась за помощью сюда именно потому, что не поняла решение этого задания)

Re: Помогите, пожалуйста, решить задачу на c++!

Слива » 05 июн 2017, 11:48

Цитата:"Не ври. Нет у тебя кода. Если даже читать не умеешь, то программировать и подавно." - Эээ, шакал, слышь за базаром следи, я написал вчера программу на C++Builder 6! Это телка составила задание, а не пацан, ты сам читать не умеешь! Зачем ты все это написал я уже понял понял свою ошибку и программа у меня есть, вчера написал - она высчитывает сумму расстояний от средней точки до всех точек массива. Могу дать если хотите, но сначала извинитесь передо мной за свои разговоры гнилые.

Re: Помогите, пожалуйста, решить задачу на c++!

AiK » 05 июн 2017, 00:51

Сионист писал(а):При чём здесь вообще центр? К тому же Вы сами себе противоречите: если нельзя найти сам центр, то тем более нельзя найти и максимально близкую к нему точку.

А ничего, что центры бывают разными? Не только геометрический, но и центр масс к примеру?

Re: Помогите, пожалуйста, решить задачу на c++!

Сионист » 04 июн 2017, 18:49

Слива писал(а):Блиииииин, я тут уже башку сломал, а задание оказалось таким простым. Автор короче корявый попался. Так так и надо писать "из заданного на плоскости множества точек", а не ерунду какую-то. Автор корявый короче.
Ну да обход массива по всем точкам и вычисление расстояние.
А ничего, что у него именно это и написано?
Я уже код дать хотел, но если она так коряво задания составляет. то ничего не дам. БЕ-БЕ-БЕ! :D
Не ври. Нет у тебя кода. Если даже читать не умеешь, то программировать и подавно.

Re: Помогите, пожалуйста, решить задачу на c++!

Сионист » 04 июн 2017, 18:01

Слива писал(а):Есть один вариант решения. Не знаю подойдет или нет, но в общем смысл в следующем. Находятся MinX, MaxX, MinY, MaxY - коробка или границы в которой лежат все точки. Это прямоугольник. Потом находится центр этого прямоугольника. Это и будет искомая точка. Верно?
Нет. Так как в обще случае она не совпадёт ни с одной из заданных точек. Кроме того, если большинство точек собраны возле одного из углов прямоугольника, то и искомая точка будет вблизи центра именно этого большинства, а не всего множества точек. Обратите внимание: надо найти не точку, расстояния от которой до всех данных точек равны друг другу, а точку, сумма расстояний от которой до остальных минимальна. Если бы ещё не сумма расстояний, а сумма квадратов расстояний, то получается точка, максимально близкая к центру тяжести.

Re: Помогите, пожалуйста, решить задачу на c++!

Сионист » 04 июн 2017, 17:57

AiK писал(а):А вы в таком случае используйте условие задачи :) Нет задачи найти центр для четырёх и более произвольных точек. Есть задача найти из N точек максимально близкую от центра.
При чём здесь вообще центр? К тому же Вы сами себе противоречите: если нельзя найти сам центр, то тем более нельзя найти и максимально близкую к нему точку.

Re: Помогите, пожалуйста, решить задачу на c++!

Сионист » 04 июн 2017, 17:55

Слива писал(а):Кстати! Пишут, что только для 3 точек можно найти центр. Я, как профессионал, думаю, что это правда.
А причём здесь центр?

Re: Помогите, пожалуйста, решить задачу на c++!

Слива » 04 июн 2017, 14:02

Блиииииин, я тут уже башку сломал, а задание оказалось таким простым. Автор короче корявый попался. Так так и надо писать "из заданного на плоскости множества точек", а не ерунду какую-то. Автор корявый короче.
Ну да обход массива по всем точкам и вычисление расстояние. Я уже код дать хотел, но если она так коряво задания составляет. то ничего не дам. БЕ-БЕ-БЕ! :D

Re: Помогите, пожалуйста, решить задачу на c++!

AiK » 03 июн 2017, 15:33

Слива писал(а):Это и будет искомая точка. Верно?
Нет. См. условие задачи - надо из массива в N точек выбрать одну, а не построить ещё одну N+1ю точку.

Это во-первых. А во-вторых, задача не имеет геометрического решения. Чем больше точек будет в одной из половин "коробки" тем дальше искомая точка будет находится от геометрического центра.

Ну и в-третьих, поиск минимума и максимума - это дополнительный обход массива.

Re: Помогите, пожалуйста, решить задачу на c++!

Слива » 03 июн 2017, 06:17

Есть один вариант решения. Не знаю подойдет или нет, но в общем смысл в следующем. Находятся MinX, MaxX, MinY, MaxY - коробка или границы в которой лежат все точки. Это прямоугольник. Потом находится центр этого прямоугольника. Это и будет искомая точка. Верно?

Вернуться к началу