Рассмотрим следующую простую задачу:
Пусть
- произвольные непустые строки.
Пусть дана строка
, где
. Надо найти нетривиальные
(попроще и пооптимальнее) и определить, в каком случае задача разрешима. У меня получилось, что задача разрешима, если
и неверно, что все
начинаются на один символ и неверно, что все
заканчиваются на один символ. Алгоритм решения состоит в том, чтобы брать начало и с конец строки и искать их вхождения в
так, чтобы все вхождения были сочленены, а начало и конец максимальны по длине.
При анализе быдлокода у меня часто возникают такая и более сложные задачи.
имеет более сложный вид:
,
,
и т.п., надо найти все константы
и минимальные ограничения на
.
Желательно найти как можно более простые критерии их разрешимости и как можно более простые и одновременно быстрые алгоритмы их решений.
В качестве необходимого условия разрешимости можем принять, что
и неверно, что все
начинаются на один символ и неверно, что все
заканчиваются на один символ, но достаточно ли оно для разрешимости? В качестве более общего алгоритма решения я даже не знаю, что брать. М.б. поиск одинаковых подстрок в строке, но хотелось бы, чтобы кто-то подтвердил, что это будет работать, поскольку я не вижу, сработает ли это точно или нет