有效的链条跳跃算法

时间:2013-04-17 09:52:59

标签: javascript routing chain

我精神上坚持以下问题:我需要一种有效的算法来创建链中的可能跳跃。

“真实生活”screnario如下:您有一条带 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]
    ]
];

或者是否存在“已知”算法?

1 个答案:

答案 0 :(得分:0)

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