Как сделать пересечение

Обновлено: 04.07.2024

Но я не знаю, как это сделать. Я искал на форуме, и большинство вопросов о пересечении возникает между двумя arraylist или двумя наборами.

Интересно, можно ли сделать пересечение между двумя такими функциями?

Я попытался изменить свой код, чтобы использовать ArrayList, но застрял в методе fibo ().

Почему он стал логическим типом в моем списке Фибо?

Сделайте так, чтобы два метода возвращали массив или список, а затем пересекались.

Ответы 3

Для этого вам нужно будет использовать такую ​​структуру данных, как HashSet или ArrayList , а затем найти пересечение между ними.

Решение с использованием ArrayList :

Решение с использованием HashSet :

Я бы действительно не рекомендовал использовать ArrayList, если у вас нет конкретной цели, поскольку это неэффективная структура данных по сравнению с HashSet . но я изменил свой ответ выше, чтобы все равно включить его.

Это определенно возможно. Я не собираюсь писать для вас код, но могу подсказать, как вам это сделать. Вместо того, чтобы печатать эти фибоначчи и простые числа до 40, вы должны сохранить их в 2 разных массивах и попытаться найти то, что между ними общего. Но я думаю, что вы не знакомы с массивами и наборами, я предлагаю вам другой метод.

Когда вы найдете число Фибоначчи меньше 40, проверьте, является ли это число простым или нет. Если это так, то распечатайте его, иначе нет.

Спасибо. Я пробовал вашу рекомендацию без использования Arraylists или наборов. Оно работает!

Зачем использовать array вместо list в java. Вы можете просто добиться этого с помощью retainAll следующим образом:

Для местного тестирования:

ОБНОВЛЕНО

По просьбе OP я добавляю это для справки:

Что ты пробовал? Для доступа к list вы должны использовать list.get(i) и list.add(val) , а массив arr[i] и arr[i] = val .

@ShinYuWu Пожалуйста, отметьте ответ и проголосуйте за решение, если ваша проблема решена, спасибо ~

Изучим способы поиска точек пересечения двух графиков и графика с осью координат, а также варианты их отображения в Excel.

Поиск точек пересечения графиков может применяться, к примеру, при графическом способе решения различных уравнений в математике или при поиске точки безубыточности предприятия в бизнесе.
Если графики заданы какими-либо алгебраическими функциями, то точное решение оптимальнее искать математически, приравняв функции друг к другу.
В данной статье мы разберем как найти точки пересечения для линейного графика, в котором линии имеют одинаковые координаты по оси абсцисс (горизонтальная) и различные координаты по оси ординат (вертикальная).

Как мы помним из школьного курса математики, через две любые несовпадающие точки можно провести прямую и только одну.
Поэтому зная их координаты мы можем составить уравнение прямой. Таким образом решая систему уравнений, состоящую из уравнений двух прямых, мы можем найти место пересечения:

Принцип расчета


Общий принцип поиска координат следующий: для каждых двух соседних пар точек на оси абсцисс (на рисунке x1 и x2 расположены по горизонтали) проверяется условие пересекаются ли линии, то есть выполняется ли условие y1 ≥ z1 и y2 ≤ z2, или наоборот y1 ≤ z1 и y2 ≥ z2 (на рисунке y1, y2, z1 и z2 расположены по вертикали).

Пересечение двух графиков

Предположим, что у нас имеется таблица с координатами двух линий:

Таблица с данными


Построим на основе этих данных точечную диаграмму. Выделяем диапазон данных A1:K3 и на панели вкладок выбираем Вставка -> Диаграмма -> Точечная -> Точечная с прямыми отрезками.
В итоге получаем точечную диаграмму с двумя линиями:

Точечная диаграмма


Как видим на диаграмме линии пересеклись в 5 местах. В общем случае подобных точек может быть сколь угодно много, поэтому вручную находить каждую из них представляется достаточно трудоемким процессом.
Чтобы упростить работу и автоматизировать расчет воспользуемся средствами Visual Basic.
Переходим в редактор VBA (в панели вкладок выбираем Разработчик -> Visual Basic или воспользуемся сочетанием клавиш Alt + F11), создаем модуль и записываем в него макрос (напротив каждой строчки даются пояснения к коду):

Точка пересечения прямых

Если точка M, является точкой пересечения двух прямых, то она должна принадлежать этим прямым, а ее координаты удовлетворять уравнения этих прямых.

Точка пересечения двух прямых на плоскости

Графический метод решения. Используя уравнения, начертить графики прямых и с помощью линейки найти координаты точки пересечения.

Аналитический метод решения. Необходимо объединить уравнения прямых в систему, решение которой, позволит определить точные координаты точки пересечения прямых.

Если система уравнений:

  • имеет единственное решение, то прямые пересекаются;
  • имеет бесконечное множество решений, то прямые совпадают;
  • не имеет решений, то прямые не пересекаются (прямые параллельны между собой)

Точка пересечения прямых

Решение: Для вычисления координат точки пересечения прямых, решим систему уравнений:

y = 2 x - 1 y = -3 x + 1

Вычтем из первого уравнения второе

y - y = 2 x - 1 - (-3 x + 1) y = -3 x + 1 => 0 = 5 x - 2 y = -3 x + 1

Из первого уравнения найдем значение x

5 x = 2 y = -3 x + 1 => x = 2 5 = 0.4 y = -3 x + 1

Подставим значение x во второе уравнение и найдем значение y

x = 0.4 y = -3·(0.4) + 1 = -1.2 + 1 = -0.2

Ответ. Точка пересечения двух прямых имеет координаты (0.4, -0.2)

Точка пересечения прямых

Решение: Для вычисления координат точки пересечения прямых, решим систему уравнений:

y = 2 x - 1 x = 2 t + 1 y = t

В первое уравнение подставим значения x и y из второго и третьего уравнений.

t = 2·(2 t + 1) - 1 x = 2 t + 1 y = t => t = 4 t + 1 x = 2 t + 1 y = t =>

-3 t = 1 x = 2 t + 1 y = t => t = - 1 3 x = 2 t + 1 y = t

Подставим значение t во второе и третье уравнение

t = - 1 3 x = 2·(- 1 3 ) + 1 = - 2 3 + 1 = 1 3 y = - 1 3

Ответ. Точка пересечения двух прямых имеет координаты ( 1 3 , - 1 3 )

Точка пересечения прямых

Решение: Для вычисления координат точки пересечения прямых, решим систему уравнений:

2 x + 3 y = 0 x - 2 3 = y 4

Из второго уравнения выразим y через x

2 x + 3 y = 0 y = 4· x - 2 3

Подставим y в первое уравнение

2 x + 3·4· x - 2 3 = 0 y = 4· x - 2 3 => 2 x + 4·( x - 2) = 0 y = 4· x - 2 3 =>

2 x + 4 x - 8 = 0 y = 4· x - 2 3 => 6 x = 8 y = 4· x - 2 3 =>

x = 8 6 = 4 3 y = 4· x - 2 3 => x = 8 6 = 4 3 y = 4· 4/3 - 2 3 = 4· -2/3 3 = - 8 9

Ответ. Точка пересечения двух прямых имеет координаты ( 4 3 , - 8 9 )

Точка пересечения прямых

Решение: Обе прямые заданы уравнениями с угловым коэффициентом. Так как k 1 = k 2 = 2, то прямые параллельны. Так как эти прямые не совпадают то точек пересечения нет.

Решим также эту задачу используя систему уравнений:

y = 2 x - 1 y = 2 x + 1

Вычтем из первого уравнения второе

y - y = 2 x - 1 - (2 x + 1) y = -3 x + 1 => 0 = -2 y = -3 x + 1

В первом уравнении получили противоречие (0 ≠ -2), значит система не имеет решений - отсутствуют точки пересечения прямых (прямые параллельны).

Ответ. Прямые не пересекаются (прямые параллельны).

Точка пересечения прямых

Решение: Подставим координаты точки N в уравнения прямых.

Ответ. Так как оба уравнения превратились в тождества, то точка N - точка пересечения этих прямых.

Точка пересечения двух прямых в пространстве

Метод решения. Для определение координат точки пересечения прямых в пространстве, необходимо объединить уравнения прямых в систему, решение которой, позволит определить точные координаты точки пересечения прямых.

Если система уравнений:

  • имеет единственное решение, то прямые пересекаются;
  • имеет бесконечное множество решений, то прямые совпадают;
  • не имеет решений, то прямые не пересекаются (прямые параллельны или скрещиваются между собой)

Решение: Составим систему уравнений

x - 1 = a y - 1 = a z - 1 = a x - 3 -2 = b 2 - y = b z = b => x = a + 1 y = a + 1 z = a + 1 x - 3 -2 = b 2 - y = b z = b =>

Подставим значения x , y , z из 1, 2, 3 уравнений в 4, 5, 6 уравнения

x = a + 1 y = a + 1 z = a + 1 a + 1 - 3 -2 = b 2 - ( a + 1) = b a + 1 = b => x = a + 1 y = a + 1 z = a + 1 a - 2 -2 = b 1 - a = b a + 1 = b

К шестому уравнению добавим пятое уравнение

x = a + 1 y = a + 1 z = a + 1 a - 2 -2 = b 1 - a = b a + 1 + (1 - a ) = b + b => x = a + 1 y = a + 1 z = a + 1 a - 2 -2 = b 1 - a = b b = 1

Подставим значение b в четвертое и пятое уравнения

x = a + 1 y = a + 1 z = a + 1 a - 2 -2 = 1 1 - a = 1 b = 1 => x = a + 1 y = a + 1 z = a + 1 a - 2 = -2 a = 0 b = 1 =>

x = a + 1 y = a + 1 z = a + 1 a = 0 a = 0 b = 1 => x = 0 + 1 = 1 y = 0 + 1 = 1 z = 0 + 1 = 1 a = 0 a = 0 b = 1

Ответ. Прямые пересекаются в точке с координатами (1, 1, 1).

Замечание. Если уравнения прямых заданы параметрически, и в обоих уравнениях параметр задан одной и той же буквой, то при составлении системы в одном из уравнений необходимо заменить букву отвечающую за параметр.

Пример 7. Найти точку пересечения прямых x = 2 t - 3 y = t z = - t + 2 и x = t + 1 y = 3 t - 2 z = 3 .

Решение: Составим систему уравнений заменив во втором уравнении параметр t на a

x = 2 t - 3 y = t z = - t + 2 x = a + 1 y = 3 a - 2 z = 3

Подставим значения x , y , z из 1, 2, 3 уравнений в 4, 5, 6 уравнения

x = 2 t - 3 y = t z = - t + 2 2 t - 3 = a + 1 t = 3 a - 2 - t + 2 = 3 => x = 2 t - 3 y = t z = - t + 2 2 t = a + 4 t = 3 a - 2 t = -1 =>

Подставим значение t из шестого уравнения в остальные уравнения

x = 2·(-1) - 3 y = (-1) z = -(-1) + 2 2·(-1) = a + 4 -1 = 3 a - 2 t = -1 => x = -5 y = -1 z = 3 a = -6 a = 1 3 t = -1

Будем говорить о том, что получается, если на прямой искать различные пересечения замкнутых множеств. Поехали!

Если пропустили начало опуса, рекомендую вернуться:

Безупречная конструкция, ставшая основой основ математики. В школе ей пользовались, но не понимали глубинный смысл

Итак, рассмотрим различные варианты пересечения замкнутых множеств на вещественной прямой.

Вариант 1. Тривиальный

Классическое пересечение отрезков, которые накладываются друг на друга более, чем одной точкой. Естественно в итоге получается замкнутое множество.

Вариант 2. Пустота

Если отрезки не имеют общих точек, то их пересечение пусто, но это не проблема. Ведь мы условились считать пустое множество замкнутым и открытым одновременно.

Вариант 3. Точка

Если конец одного отрезка совпадает с началом другого, то их пересечение будет отдельной точкой. Вот здесь очень тонкий момент .

  1. Точка является замкнутым множеством, если она находится внутри чего-либо : внутри отрезка, внутри интервала, наконец внутри всей вещественной прямой.
  2. Точка является и замкнутым и открытым множеством, если мы рассматриваем ситуацию, когда кроме точки вокруг ничего не существует.

Мы же рассматриваем варианты на вещественной прямой, поэтому принимаем первый случай.

Вариант 4. Лучи добра

Теперь мы рассмотрим пересечение отрезка с закрытым лучом. Здесь больше вопрос не к результату, а к условию. Почему, собственно, закрытый луч является замкнутым множеством, ведь это интуитивно непонятно.

Но давайте поразмышляем: мы условились считать замкнутым множеством такое множество, все предельные точки (у которых есть окрестность с хотя бы одной точкой множества, отличной от себя) которого ему принадлежат. Очевидно, закрытый луч удовлетворяет этому требованию!

Вариант 5. Бесконечность

Наверное, главным результатом нашей тягомотины является то, что пересечение любого количества (в том числе бесконечного) числа замкнутых множеств является множеством замкнутым. Это легко показать по определению :

  1. Замкнутое множество содержит все свои предельные точки;
  2. Пересечение множеств - это множество точек, которые принадлежат всем множествам одновременно;
  3. По п.1 все эти точки предельные, значит, возвращаясь к определению, делаем вывод о замкнутости результата.

Как видите, никакого контрпримера с пересечением на вещественной оси быть не может. Другое дело - с объединением. В следующем материале я покажу Вам ситуацию, когда объединение замкнутых множеств на прямой не будет замкнутым!

Читайте также: