我在精神上陷入了以下问题:我需要一个高效的算法来创建一个链上可能的跳。
“现实生活”是这样的:你有一条有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]
]
];还是有一种“已知”的算法?
发布于 2013-04-17 12:52:40
有一个包math_combinatoric:Combinatorics
https://stackoverflow.com/questions/16056945
复制相似问题