Пространная задача для размышления
Есть достаточно пространная задача, решение которой пока не могу найти, допускаю даже что красивого решения нет. Но всеже попробую сформулировать, бывает тупишь над какойто задачей, поделишься ей с кемто и взглянишь на все с другой стороны.
Итак, упуская тех. детали.
Представьте что вы в своем автомобиле на вьезде в город. У вас ограниченное количество топлива, но вам нужно найти адресс некоего Джона в этом городе за минимальное время. Допустим некий Джон один единственный в городе живет и вы это знаете точно.
Первый сценарий, в городе мало улиц и все дома одноэтажные. В таком случае проще всего обьездить все улицы и обойти все дома. Это просто.
Второй сценарий, в городе мало улиц, но все дома многоэтажные. В таком случае обьехать все улицы, если мы попали в многоэтажный дом, то пускай все жители живут в нем по алфавитному порядку. Тогда обычным бинарным поиском можно определить живет ли в этом доме Джон или не живет.
Третий сценарий, в городе много улиц и все дома одноэтажные/многоэтажные. И вот тут то я не вижу решения, кроме как обьезжать все улицы полностью. Если бы все жители в городе жили по алфавитному порядку, то опять же, можно было бы воспользоваться бинарным поиском. Тоесть проезжаем по центральной улице к центральному дому, смотрим на фамилию жильца в доме. Если Джон по алфавиту слева, то едем в левую часть города искать. Если справа, то в правую часть. Проблема в том, что по условию задачи нельзя сортировать жителей в масштабах города. Также изящное решение (если оно вообще есть) не подразумевает что мы имеем какието дополнительные структуры данных (вроде карт и тд).
Все вышеописанное пускай будет на правах полубреда, просто хотелось бы взглянуть на это все под другим углом, допускаю что хорошее решение всеже можно найти.
39 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів