У меня есть проблема, которую я не могу просто решить алгоритмически.
Допустим, у меня есть видео захват, который всегда захватывает видеокадры с фиксированной скоростью F (скажем, 30 кадров в секунду).
Что я хочу, так это «разбить» эту последовательность кадров на n (скажем, четыре) подпоследовательности. Каждая подпоследовательность имеет частоту кадров fn, то есть, очевидно,
(0 - это кадры, которые не передаются подпоследовательности, 1 - это кадры, которые делают):
100 (in 1 second it will repeated like: 100100100100100100100100100100)
или
010 (again, in 1 sec it will go like: 010010010010010010010010010010)
или, для F = 30 и f = 8:
100000001
(и потребуется MCD (30,8) = 120 кадров, прежде чем секунда перезапустится с "1").
Проблема в том, что подпоследовательности не могут конфликтовать, поэтому если F = 30, f1 = 10 кадров в секунду (каждые три кадра) и f2 = 5 кадров в секунду (каждые шесть кадров), эта последовательность в порядке:
102100 (again, in a second: 102100102100102100102100102100)
Но если мы добавим f3 = 6 кадров в секунду
132100 (1 AND 3) <--- collides! 02100102100102100102100
или
102103102130102 (1 AND 3) <--- collides! 00102100102100
Третья подпоследовательность столкнется с первой.
Вопрос:
- Есть ли способ найти каждую комбинацию частоты кадров n (с n <= 4) подпоследовательностей, которая не будет сталкиваться и будет иметь одинаковое расстояние? </li>
(мне нужен общий случай, но в этом конкретном случае мне потребуются все действительные комбинации только для одной последовательности (тривиальные), все действительные комбинации для двух последовательностей, все действительные комбинации трех последовательностей и все для четыре последовательности).
Надеюсь, кто-то мог просветить мой разум.
Спасибо!