При решении одной прикладной задачи возникла следующая проблема.
Заданы целые числа
и
такие, что
Двоичный вектор (т.е. вектор с элементами из множества
длины
назовем
правильным если
в подвекторе
имеется ровно
единиц,
в подвекторе
имеется ровно
единиц,
...
в подвекторе
имеется ровно
единиц.
Иными словами, правильный вектор, это вектор составленный из
блоков длин
, причем
-й блок содерхит
единиц (остальные элементы равны
).
Рассмотрим ситсему линейных уравнений над
(левые части фиксированы):
Требуется определить, существует ли хотя бы один
правильный столбец свободных членов при котором эта систсма совместна?
Отмечу, что решать и находить ничего не нужно. Нужен быстрый алгоритм выдающий true или false в зависимости от ответа на сформулированный вопрос. Хочется, чтобы этот алгоритм работал быстрее, чем простой перебор всех мыслимых правильных столбцов свободных членов (это очень долго).
Порядок чисел таков:
,
,
.
Буду рад любым соображения и замечаниям.