Member 13806206 Ответов: 3

Алгоритмы: найти среднее расстояние между деревнями


Пусть x1< x2 < . . . < xn-вещественные числа, представляющие координаты n деревень, расположенных вдоль прямой дороги. В одной из этих деревень нужно построить почтовое отделение.

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

Что я уже пробовал:

Я пытаюсь понять, как это сделать, но я так запутался. Кто-нибудь может помочь??

Maciej Los

Есть одна проблема... Если вы хотите написать эффективный алгоритм, вам нужно знать, сколько городов должно быть вокруг почтового отделения...

Кстати: я бы посмотрел на скользящее среднее значение.

3 Ответов

Рейтинг:
1

OriginalGriff

Это твое домашнее задание, так что я не дам тебе никакого кода!

Начните с того, что подумайте, как бы вы сделали это вручную. Предположим, что у вас есть четыре деревни, и определите, где вы их разместите.
Как бы вы сделали это вручную? Ну, вы бы начали с предположения, что это было в деревне 1, а затем вычислите расстояние до каждой другой деревни. Возьмите среднее из этих расстояний.
Затем сделайте то же самое для деревни 2, деревни 3 и деревни 4 - Теперь у вас есть четыре средних расстояния и вы можете решить, какое из них самое низкое.
Это деревня, где вы разместили свою почту!

Теперь начните думать о том, как бы вы автоматизировали этот процесс, а затем начните думать о его реализации.


Рейтинг:
0

Patrice T

Цитата:
Я пытаюсь понять, как это сделать, но я так запутался.

- Нет! То, что вы делаете, - это попытка волшебным образом угадать дизайн. К сожалению, магия работает только для рыцарей-джедаев.

Единственный способ пойти-это взять лист бумаги , карандаш и решить проблему вручную.
Поскольку вам нужно понять математику, попробуйте поставить почтовое отделение в каждой деревне и получить балл за каждую.
Попробуйте еще раз с различными наборами деревень, сделайте чертеж позиций деревень, посмотрите, найдете ли вы более эффективный метод.
"Попробуй каждую деревню" - это метод "грубой силы", иногда он самый лучший.

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это похоже на попытку научиться водить машину, обучая кого-то другого.
Создание алгоритма - это в основном поиск математики и необходимая адаптация к вашей реальной проблеме.