Страница 1 из 1

Пересечение областей. Есть ли более рациональное решение?

Добавлено: 13 янв 2021, 20:11
Юрий
Потребовалось найти пересечение двух векторов и оставшихся участков. Казалось бы простая задача, но не тут то было. Всё было бы и просто, если бы не случаи, когда какие то значения совпадают - при сортировке не понятно в каком порядке по отношению к векторам эти значения выстраиваются. В результате программа получилась достаточно громоздкая. Мне всё же интересно, можно ли эту задачу решить более красиво.

Re: Пересечение областей. Есть ли более рациональное решение?

Добавлено: 13 янв 2021, 21:59
IvanLis
Юрий писал(а): 13 янв 2021, 20:11 Мне всё же интересно, можно ли эту задачу решить более красиво.
Простой алгоритм определения пересечения двух отрезков
если Вы это имели ввиду
А то в названии темы одно, в сообщении другое, сложно предположить, что в программе реализовано. :wink:

Re: Пересечение областей. Есть ли более рациональное решение?

Добавлено: 13 янв 2021, 22:19
Юрий
IvanLis писал(а): 13 янв 2021, 21:59 Простой алгоритм определения пересечения двух отрезков
если Вы это имели ввиду
А то в названии темы одно, в сообщении другое, сложно предположить, что в программе реализовано. :wink:
В названии темы сказано о пересечение областей. Области две, простейшие, одномерные, заданы двумя векторами.

Re: Пересечение областей. Есть ли более рациональное решение?

Добавлено: 13 янв 2021, 22:32
IvanLis
Юрий писал(а): 13 янв 2021, 22:19 В названии темы сказано о пересечение областей. Области две, простейшие, одномерные, заданы двумя векторами.
Значит я неверно трактовал термин "вектор".
Заполните значения и сохраните их по умолчанию, т.к. что бы исходные данные задать, нужно быть в теме ...
Я ничего не задал на входе (пустые массивы), а пересечение уже обнаружено.
Снимок экрана от 2021-01-13 22-34-57.png
Т.е. фактически Вам нужно найти пересечения множеств целых чисел, которые заданы граничными значениями?

Re: Пересечение областей. Есть ли более рациональное решение?

Добавлено: 13 янв 2021, 23:39
Юрий
IvanLis писал(а): 13 янв 2021, 22:32 Т.е. фактически Вам нужно найти пересечения множеств целых чисел, которые заданы граничными значениями?
IvanLis, спасибо за правильную формулировку и извините за лишний напряг. Что то с основными понятиями у меня совсем плохо стало, поленился освежить в памяти понятия множеств, хотя чувствовал, что что то не так. Всё это так давно было. Программу по Вашему пожеланию подправил.

Re: Пересечение областей. Есть ли более рациональное решение?

Добавлено: 15 янв 2021, 21:34
IvanLis
Юрий писал(а): 13 янв 2021, 20:11Мне всё же интересно, можно ли эту задачу решить более красиво.
Более элегантное решение я не смог придумать, по крайней мере, за то время, которое смог уделить этой задаче.
Единственно, если дальнейшая цель сгенерировать именно множества целых чисел на основе вычисленных интервалов, то я бы предложил работать сразу с множествами. Т.е. генерируем их, а потом используя операции: Intersection (пересечение) и Complement (разность) получить искомые множества.
Тем более с последних версиях LV появилась палитра Collections позволяющая работать с множествами.

Re: Пересечение областей. Есть ли более рациональное решение?

Добавлено: 18 янв 2021, 22:28
Юрий
IvanLis писал(а): 15 янв 2021, 21:34 С последних версиях LV появилась палитра Collections позволяющая работать с множествами.
А можно уточнить с какой? Хотя вряд ли уже буду переходить на новую версию и что то изменять. Предлагаемый Вами вариант просматривал, но не смог найти в своей 18-ой подходящих функций.

Re: Пересечение областей. Есть ли более рациональное решение?

Добавлено: 18 янв 2021, 23:23
dadreamer
Юрий писал(а): 18 янв 2021, 22:28А можно уточнить с какой? Хотя вряд ли уже буду переходить на новую версию и что то изменять. Предлагаемый Вами вариант просматривал, но не смог найти в своей 18-ой подходящих функций.
LabVIEW 2019