|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
||||||
Можно ли решить задачу эффективнее или написать более компактный код?04.03.2024, 15:18. Показов 2689. Ответов 45
Метки нет (Все метки)
Всем привет. Решил алгоритмическую задачу. Решение верное, но я думаю, что можно уложится в гораздо меньшее количество строк, но не знаю как, если кто напишет как, буду очень признателен )
Суть задачи: используются только целые числа. Никаких защит от дурака ставить не надо. Даётся две координаты - это центры двух отрезков на прямой. А так же задаются диапазоны. Т.е. например Center1 = 3 D1 = 4, Center2 = -5 D1 = 3. Это значит что один диапазон равен 3 +- 4, а второй аналогично. Надо посчитать сколько точек в сумме входит в оба диапазона, учитывая, что они могут пересекаться. Вот моё решение:
Кажется один лишний else if я уже нашёл.
0
|
||||||
| 04.03.2024, 15:18 | |
|
Ответы с готовыми решениями:
45
Можно ли написать более оптимальный или простой код, используя цикл for? более компактный код Необходим более рациональный и компактный код |
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 04.03.2024, 16:43 | |||
|
Попробуйте прогнать мою функцию через подобный цикл.
0
|
|||
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
||
| 04.03.2024, 16:44 [ТС] | ||
|
-5 +- 3 это [-8, -2] Я не мог сюда скинуть само условие задачи, так как я тут привёл работающий код, который выдаёт верный результат, хоть и написан не оптимально, а за это могут дисквалифицировать, по этому пришлось написать условие своими словами. Ну наверно получилось не очень.
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 04.03.2024, 16:44 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
||
| 04.03.2024, 16:45 [ТС] | ||
|
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 04.03.2024, 16:48 | |||
|
Ballantrae, что бы вы там не считали, циклы вам не нужны.
Ведь по нашим интервалам мы легко можем посчитать расстояние между ними. И через сколько точек они начнут пересекаться. Добавлено через 1 минуту
0
|
|||
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
|||||||
| 04.03.2024, 16:50 [ТС] | |||||||
0
|
|||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||||||
| 04.03.2024, 16:55 | |||||||
И ссуть ?
0
|
|||||||
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
|
| 04.03.2024, 16:56 [ТС] | |
|
0
|
|
| 04.03.2024, 16:56 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
||
| 04.03.2024, 17:03 [ТС] | ||
|
0
|
||
| 04.03.2024, 17:11 | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 06.05.2021
Сообщений: 242
|
|
| 04.03.2024, 17:12 [ТС] | |
|
SmallEvil, а вы хамите. И у кого тут большие проблемы? Да и картинку я для вас нарисовал. Что бы было предельно понятно.
0
|
|
| 04.03.2024, 17:13 | |
|
0
|
|
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
|||||||||||
| 05.03.2024, 08:44 | |||||||||||
|
Мой вариант (не в 3 строчки, но все же; вывод отрезков можно убрать или "улучшить", объединив их в "один общий"):
0
|
|||||||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 05.03.2024, 11:23 | |
|
0
|
|
|
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,358
|
|||||||
| 05.03.2024, 11:27 | |||||||
|
Мой код:
0
|
|||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|||
| 05.03.2024, 11:34 | |||
|
Хотели написать другое, но что получилось то и получилось. ![]() Напомню, из первого поста :
0
|
|||
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
||
| 05.03.2024, 11:43 | ||
|
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 05.03.2024, 11:51 | ||
|
gunslinger, да, но эти 16 точек не
Некоторые из них входят только в первый отрезок, некоторые только во второй. Но ни одна не входит в оба диапазона. Это не смущает ? Это большая и важнейшая часть условия, чем некая сумма.Добавлено через 4 минуты Но и это не проблема. Нужно подсчитать сумму точек первого и второго отрезка. (16). И вычесть из них количество точек пересечения. И то и другое элементарная арифметическая операция. То есть, работать нужно с интервалами, а не вот этими вот вымышленными центром и радиусом на пряямой, что очень смешно ))
0
|
||
|
place status here
3192 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,028
|
|
| 05.03.2024, 11:53 | |
|
А потому что в условии нет уточнения, что нужны ВСЕ точки или только ОБЩИЕ точки.
Отсюда вылезает и недопонимание с разночтениями. И если я не ошибаюсь, сам ТС не в курсе, что требуется. Либо ткните носом туда, где он это объясняет. Также я полагаю, что фраза "в сумме" равносильна слову "всего". Отсюда и такой код у меня (и используются там интервалы).
0
|
|
| 05.03.2024, 11:53 | |
|
Каким образом можно объективно определить, решение на каком языке будет эффективнее решать некоторую задачу? Решить задачу симплекс-методом и написать двойственную к ней задачу Как можно эффективнее написать алгоритм? Решить задачу более оптимально
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге).
Задача:
Программно добавить префикс в нумерацию документов.
Решение:
В модуле объекта. . .
|
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
https:/ / youtu. be/ VpfFZSUDGnQ. . .
|
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|