Умные люди, помогите, пожалуйста, с алгоритмом:

  • Имеем 7 измерений, по которым можно двигаться, с шагом в 1.
  • Одномоментно можно пройти только по одному измерению.
  • При переходе надо сделать расчет можем ли мы здесь находиться, если можно, ок, идем дальше, нельзя - по этому пути прохода нет.
  • Начальные условия задаются при старте, как далеко можно зайти зависит только от начальных условий


Хочу узнать как далеко можно зайти.
Если делать в один поток, то вырисовывается простая рекурсивная функция, которая рано или поздно все обойдет.


Думал как можно распараллелить сие, пока что пришел к мысли хранить контейнер с мьютексом для хранения уже пройденных состояний. При переходе проверять наличие исследуемого элемента в контейнере. Если его нет, тут же добавлять его в контейнер, чтобы другие потоки не делали дублирующую работу.


Вопрос собственно в том, а не фигню ли я придумал?

Интересует есть ли более быстрые/простые способы запускать от 1 до N потоков, чтобы они не делали лишную работу и не мешались друг другу








 , ,






URL записи