Различия между версиями 3 и 4
Версия 3 от 2021-11-22 12:46:22
Размер: 3031
Редактор: FrBrGeorge
Комментарий:
Версия 4 от 2021-11-22 15:55:05
Размер: 2691
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 24: Строка 24:
Спойлер: /* В действительности догадываться тут не о чем. При вводе split()-тим строку. Кортеж из первых трёх элементов, преобразованных к float, используем как индекс словаря, а храним в словаре имя галактики — четвёртый элемент. Затем тупо перебираем все пары во вложенных циклах. Стоит слегка оптимизировать: внешний цикл — по всем индексам, кроме последнего, а внутренний — по всем индексам, большим первого; так, если у нас была пара (A, B), не появится ещё и пара (B, A). Замеряем расстояние, проверяем и запоминаем максимум и имена галактик, на которых он был достигнут. Потом выводим эти имена. */ Спойлер: /* В действительности догадываться тут не о чем. При вводе split()-тим строку. Кортеж из первых трёх элементов, преобразованных к float, используем как индекс словаря, а храним в словаре имя галактики — четвёртый элемент. Затем тупо перебираем все пары во вложенных циклах. Замеряем расстояние, проверяем и запоминаем максимум и имена галактик, на которых он был достигнут. Потом выводим эти имена. */

Ввести построчно четвёрки вида «число число число слово», где первые три числа — это координаты галактики по имени «слово» (некоторые галактики могут называться одинаково, но координаты у всех разные). Последняя строка ввода не содержит пробелов и не учитывается. Вывести в алфавитном порядке имена любых двух наиболее удалённых друг от друга галактик. Считается, что одинаковых расстояний в списке нет.

35.764 -797.636 -770.320 almost
88.213 -61.688 778.457 gene
-322.270 -248.555 -812.730 trend
721.262 630.355 968.287 dow
-895.519 -970.173 97.282 non
-561.036 -350.840 -723.149 disco
-151.546 -900.962 -658.862 bidder
-716.197 478.576 -695.843 hawaii
-744.664 -173.034 -11.211 sad
-999.968 990.467 650.551 erik
.
  • Подсказка: очевидно, ключом словаря должны быть координаты, потому что они все разные, а имена могут быть одинаковыми
  • У этой задачи есть довольно эффективное решение средствами самого Python, но в нашем случае достаточно ручного решения, в котором просто перебираются все возможные пары звёзд (вложенные циклы), и ищется наиболее далёкая пара.
  • Чтобы вывести что-то в порядке возрастания, надо это что-то сложить в список и отсортировать (например, с помощью .sort())

almost erik

Спойлер:

Python/GeoPython2021/Homework_FarGalaxy (последним исправлял пользователь FrBrGeorge 2021-11-22 15:55:05)