3d迷宫编程

时间:2016-08-14 14:16:37

标签: c++ algorithm logic

我正在努力解决这个问题。

我不需要整个代码或逻辑。只需要一些提示让我开始解决问题。我应该在这个问题上采用什么方法。

问题

假设一只蚂蚁被困在一个迷宫中,只有一条路进入,一条出路。 迷宫是尺寸为NxNxN(长度=宽度=高度= N)的立方晶格结构。最左边的方法是左下方,而出路则是 右上角(沿主要对角线)。下图显示了N = 2的迷宫。

enter image description here

假设蚂蚁只沿着迷宫的网格向右,向前或向上移动,计算蚂蚁可以的方式总数 逃逸。数学上正确,向前和向上分别定义在x,y和z轴上坐标的正变化。

实施例: 对于N = 1,网格结构和解决方案如下所示:

enter image description here

因此,对于N = 1,我们有6种方法的净值。 输入格式: 单整数N

输出格式: 输出也包含一个数字,对应于蚂蚁逃离迷宫的方式。

约束:

  • 0<N<=8

enter image description here

2 个答案:

答案 0 :(得分:4)

为了摆脱蚂蚁需要让N向右移动,N向上移动,N向前移动。

由于没有路径被阻挡,因此可以无限制地以任何顺序进行这些移动。

R,U和F移动的每个不同顺序是不同的路径,因此答案是由N R,Us和F组成的不同字符串的数量。

可以简单地计算为(3N)! / (N!)^3

...其中!是阶乘,而不是布尔否定,^是指数,而不是异或:)

答案 1 :(得分:0)

它与2d谜题基本相同,但交叉点更多。使用BFS或DFS算法。祝你好运