Я хотел бы найти количество максимальных перекрытий 1
двух двоичных матриц, допускающих только перемещение (вращение и отражение не допускаются). Мой вопрос очень похож на этот , но я хочу на самом деле эффективно кодировать «наивное» решение, предложенное OP в этом вопросе.
Итак, чтобы Напомним, у меня есть две матрицы ( не обязательно одинакового размера ) с записями, равными 0
или 1
, например:
[0 0] [0 0 1]
A: [1 1] B: [0 0 1]
[1 0] [1 0 0]
Максимальное перекрытие может быть найдено с помощью выравнивание одного из углов одной матрицы с каждой возможной позицией другой матрицы и подсчет всех перекрывающихся 1
. Затем мы находим, что максимальное перекрытие равно два и дается, когда мы выравниваем нижний левый угол (2,0) от A до (1,2) of B.
Я хотел бы закодировать в python простую (и, возможно, быструю) реализацию этого метода, но я не знаю, с чего начать ...