0

我在精神上陷入了以下问题:我需要一种有效的算法来沿着链创建可能的跃点。

“现实生活”情景如下:您有一条包含n个站点的路线。在这条路线上可以有不同的停靠模式,例如在n=4的路线上,在车站 1、3 和 4 有停靠点。

我认为这对于 Dijkstra 或 A* 等经典路由算法来说不算什么,但我非常肯定这很容易解决……但最有效的方法是什么?

创建这些集合的有效算法是什么?生成的行如下所示:

var sets = [
    stationCount2: [
        [0, 1]
    ],

    stationCount3: [
        [0, 2],
        [0, 1, 2]
    ],

    stationCount4: [
        [0, 3],
        [0, 1, 3],
        [0, 2, 3],
        [0, 1, 2, 3]
    ],

    stationCount5: [
        [0, 4],
        [0, 1, 4],
        [0, 2, 4],
        [0, 3, 4],
        [0, 1, 2, 4],
        [0, 1, 3, 4],
        [0, 2, 3, 4],
        [0, 1, 2, 3, 4]
    ]
];

或者有一个“已知”的算法吗?

4

1 回答 1

0

有一个包math_combinatoric:http ://pear.php.net/package/Math_Combinatorics

于 2013-04-17T12:52:40.623 回答