Умные люди, помогите, пожалуйста, с алгоритмом:
- Имеем 7 измерений, по которым можно двигаться, с шагом в 1.
- Одномоментно можно пройти только по одному измерению.
- При переходе надо сделать расчет можем ли мы здесь находиться, если можно, ок, идем дальше, нельзя - по этому пути прохода нет.
- Начальные условия задаются при старте, как далеко можно зайти зависит только от начальных условий
Хочу узнать как далеко можно зайти.
Если делать в один поток, то вырисовывается простая рекурсивная функция, которая рано или поздно все обойдет.
Думал как можно распараллелить сие, пока что пришел к мысли хранить контейнер с мьютексом для хранения уже пройденных состояний. При переходе проверять наличие исследуемого элемента в контейнере. Если его нет, тут же добавлять его в контейнер, чтобы другие потоки не делали дублирующую работу.
Вопрос собственно в том, а не фигню ли я придумал?
Интересует есть ли более быстрые/простые способы запускать от 1 до N потоков, чтобы они не делали лишную работу и не мешались друг другу