У меня есть матрица, и мне нужно найти шаблон внутри этой матрицы. Матрица:Как сделать этот алгоритм поиска паттерна?
1 0 0 1 1 1 0 0 0 1
0 0 0 1 1 0 1 0 0 1
0 1 1 1 0 0 0 1 0 1
1 0 1 0 0 1 1 0 1 0
1 1 1 0 0 0 1 1 0 1
0 1 0 0 1 1 0 1 0 1
1 1 1 0 0 0 1 0 0 1
1 0 0 1 0 1 1 1 0 1
Правила:
- Мы выбираем одно число из каждой строки.
- Следующее выбранное число из второй строки должно быть противоположным прецеденту.
- Позиции номеров, выбранных правилами 1 и 2, должны быть точными.
Так что вопрос будет:
Найти лучший образец, соблюдать 3 правила. Пример из матрицы показано:
- Choosed число: 0 (2) // то, что в "()" представляет положение начала value..position от 1 до 10 по строкам.
- 1 (4)
- Для позиций 2 и 4, которые должны быть шаблоном, должны поддерживать правила 1 и 2 для остальной части матрицы.
Итак, мы идем дальше на 3-й ряд, и мы проверяем 2-ю позицию: 1. Мы идем 4-й ряд, мы проверяем 4-ю позицию: 0. Кажется, соблюдают правила. На 2-й и 4-й позиции есть противоположные числа, поэтому мы продолжаем: 5-й ряд, 2-я позиция: и т. Д., Но вы увидите 7-й ряд 2-я позиция: 1 и 8-я строка 4-я позиция: 1; поэтому картина позиций 2-4 не является хорошей.
Как я могу создать алгоритм, основанный на этих правилах?
Вы уже «создали» алгоритм. Я не понимаю, почему вы не просто кодируете свой список инструкций на своем любимом языке программирования и продолжаете работать с ним. Если вы застряли, или если вы считаете, что ваш алгоритм является субоптимальным (в некотором смысле), отправьте сообщение снова с кодом, и мы предоставим некоторую помощь. –