Wataru,
Спасибо большое за ответ. Мне нужны примерно сутки на то, чтобы вытащить более качественную информацию о структуре ответа. Скорее всего она проще, чем в исходной формулировке. Напишу комментарий не позже чем завтра в это же время.
Сейчас уже точно известно, что N фиксированное, и равно 32768. Постараюсь ввести другие ограничение на исходные данные.
а что надо вывести в этом примере? N=1, aabb, aacc, bbdd, ccbb?
Минимально: строки (1, 2), (1, 3), (1, 4), (2, 4), (3, 4) содержат общие подстроки длины N=1.
Желательно:
1: строки 1 и 2, общая часть начиная с символов 1 и 1, длина подстроки 2.
2: строки 1 и 3, общая часть начиная с символов 3 и 1, длина подстроки 2.
3: строки 1 и 4, общая часть начиная с символов 3 и 3, длина подстроки 2.
4: строки 2 и 4, общая часть начиная с символов 3 и 1, длина подстроки 2.
5: строки 3 и 4, общая часть начиная с символов 1 и 4, длина подстроки 2.
Конкретно в моём случае будет так: 100 тысяч строк есть всего на входе, на выходе - сто групп по двадцать строк в группе, для каждой группы есть одна общая подстрока. Желательно конечно указывать и другие подстроки, т.е., если какую-то подстроку мы уже нашли - то дальше формируя выход, мы конкретно её уже не ищем, но для начала нужно хотя бы как нибудь.
UPD. тут в ответе на вопрос немного упрощено - но как мне кажется - формат вывода - не суть важно, группами по 2 строки выводить, или по бОльшему количеству.
Не понимаю, что имеется в виду.
Если их разбивать на блоки, например, по фиксированному количеству байт, или по кусками, начинающимся с конкретного байта, или с конкретной пары байт - то выделить что-либо не удаётся. данные ведут себя как рэндом. есть предположение, что данные - это результат работы поточного шифра ... ну то есть рэндом, не подлежащий распознаванию.
Нет, данные очень близки к рэндому. Если в них и есть какие структуры или закономерности - о них неизвестно, и распределение даже блоков по 4 байта выглядит равномерным.
Каково значение N? Хотя бы порядок?
например, хотя бы, одно фиксированное значение - 32768.
UPD. (предыдущий комментарий криво написан и вводит в заблуждение). просто сравнивать пары вход-выход нельзя. входов и выходов суммарно - больше 100 штук, внутри схема имеет структуру группы связанных ПЛИС с памятью около 18 мегабайт - соответственно, ситуацию, когда системой было запомнено несколько мегабайт данных, а потом передано в выходной поток через десять минут - также необходимо отслеживать.
mayton2019, нет. строки - это потоки входных и выходных данных с некоторого цифрового чипа. и чип этот тестируется на определённые виды специфических глюков. собственно, общие подстроки - это момент когда чип переключается в режим raw передачи данных со входа на выход, и не изменяет данные так, как должен. это и есть глюк. но да, согласен, задача чем то похожа на штуки из обработки последовательностей ДНК.
это именно строки байтов. в них нет никаких закономерностей, никаких слов, кроме разве что факта того, что где-то в середине разные строки могут содержать общую подстроку.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
ну да, но пока ничего лучше нет, и с документацией на чип всё очень плохо.
сейчас сделаю, завтра напишу что получилось.