0

遍历 3d 矩阵

我需要检查某个困境的所有可能解决方案。

我有一个矩阵[x][y][z],它代表可能要经过的节点。我已经完成了一个应该给我一组解决方案的方法(它每次迭代都禁用一条路径并重新计算整个解决方案,禁用优先级基于最后一个解决方案的旅行能力)但我需要看看我的方法在计算一组所需的总时间。为此,我需要一种方法来计算这些路径的每个排列的解决方案。

目前它在 2 个主要层 (L1) 之间只有一个层,其中 0 是自由路径,1 是不可访问路径。这是起始布局,我可以将 L1 层上的值从 0 切换到 1,以禁用路径和最短路径搜索算法的基础。

L0 0 0 0 0 0  L1  0 1 0 1 0  L2  0 0 0 0 0
   0 1 0 1 0      1 1 1 1 1      0 1 0 1 0
   0 0 0 0 0      0 1 0 1 0      0 0 0 0 0 
   0 1 0 1 0      1 1 1 1 1      0 1 0 1 0 
   0 0 0 0 0      0 1 0 1 0      0 0 0 0 0 

当矩阵的维度不恒定时(意味着它们已经在编译时由用户定义并且可以随时更改),我如何遍历禁用自由路径的所有可能组合?有 2^n 个解,其中 n 是所有中间层上的自由路径数。(最好用 C 或 C++ 快速解释一下,即使是伪代码也很好),因为目前有 9 个自由路径可以与之组合,应该有大约 2^9 个解决方案需要我测试。我之前没有做过任何蛮力算法,所以我不知道如何制作一个。

4

0 回答 0