|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.12.2020, 15:29 | #1 |
Регистрация: 18.11.2020
Сообщений: 6
|
Как решить задание?
Помогите пожалуйста решить задание.
В поселке, где N домов, расположенных вдоль прямой дороги с одной стороны на равных расстояниях, прокладывают телефонную связь. Задать количество телефонных аппаратов в каждом доме. Каждый телефон должен быть соединен с АТС отдельным кабелем. Определить, в каком доме необходимо установить АТС, чтобы суммарная длина кабелей была минимальной. |
14.12.2020, 21:24 | #2 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Ставишь АТС в средний дом, считаешь длины, имея в виду число аппаратов. Потом на один дом ближе к началу. Если стало меньше, продолжаешь в том же духе, пока не станет больше. Если уже в первой попытке было больше, то считаешь таким же образом в другую сторону. И выходишь на оптимум.
Или тупо в лоб, полным перебором: с первого по последний. Простейшая задача дискретной оптимизации. |
15.12.2020, 09:12 | #3 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
программа — запись алгоритма на языке понятном транслятору
|
|
15.12.2020, 11:40 | #4 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
... с одной поправкой: учитывать не только число аппаратов, но и удалённость от АТС.
Вот решение (тупо, в лоб, полным перебором): Код:
23 1 3222 3691 -469 6913 24 10 3468 3439 29 6907 25 2 3724 3197 527 6921 ...... 24 = 6907 Последний раз редактировалось digitalis; 15.12.2020 в 12:17. |
15.12.2020, 23:45 | #5 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Что-то уж больно сложно
Если в посёлке n домов на расстоянии dL друг от друга, в каждом доме ki аппаратов и АТС в доме с номером m, то можно записать: Код:
Для домов, чьи номера меньше m - положительные значения, а для домов с номером больше m - отрицательные. Оптимальной будет сумма равная нулю. Полагаем dL = 1. Тогда: Код:
Код:
В принципе можно тупо проверить только для двух номеров [m] (меньшее целое) или ]m[ (большее целое. PS: digitalis А вы можете проверить?
Как-то так, ...
|
16.12.2020, 00:08 | #6 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Я так глубоко не вник - ночь, сонливость - но результат, по-моему, всё тот же: полный перебор. Ваш вариант (#3 с моим добавлением) я проверил ( (слева - справа) -> min), оптимум совпадает с моим (#4). Но по-моему, слишком много чести для такой элементарнейшей задачи, чтоб мы её ещё шлифовали до крайности.
Последний раз редактировалось digitalis; 16.12.2020 в 00:31. |
16.12.2020, 00:25 | #7 | |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,309
|
Цитата:
Как-то так, ...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решить задание в ПаскальАБС | miler | Помощь студентам | 0 | 19.12.2016 17:11 |
помогите решить задание c++ | max1993 | Помощь студентам | 0 | 11.06.2015 22:27 |
[c++] Решить задание | Safok | Помощь студентам | 0 | 26.11.2014 23:18 |
решить задание | Chapik | C++ Builder | 2 | 17.09.2012 01:50 |