【发布时间】:2013-09-06 07:06:19
【问题描述】:
我将创建几个算法来解决旅行商问题,但首先我要创建一个包含 n 个节点的图形/地图,每个节点都有一个边框。 (如果 n=100 则为 99 个边界)。每个节点之间的距离应该是1到5之间的随机数。
(我在 python 中这样做) 我的第一个想法是每个节点都有一个列表(最终地图将是列表中的列表),其中包含与其他节点的距离。 如果有 10 个节点,那么每个列表将有 9 个整数。
生成第一个列表后,其他列表将继承相应的距离。 前任。
A: [5, 5, 3]
B: [5]
C: [5]
D: [3]
下一步是生成一个少一个元素的新列表,将其放在已经存在的值后面并执行与上述相同的操作(其余节点将继承相应的距离)。这将递归完成,直到所有列表都已满。
最终的列表会是这样的:
[[5, 5, 3],
[5, 2, 1],
[5, 2, 4],
[3, 1, 4]
有人可以告诉我应该如何实施这个吗? 或者,如果有更简单的方法。谢谢!
随机导入
def main():
graph_map = []
max_nodes = 10
i = 0
generate_map(graph_map, max_nodes, i)
print graph_map
def generate_map(graph_map, max, i):
temp_list = []
for j in range(max-1):
temp_list.append(random.randint(1, 5))
if i > 0:
graph_map[i].append(temp_list)
else:
graph_map.append(temp_list)
for j in range(1, max):
graph_map.append([temp_list[j-1]])
if __name__ == '__main__':
main()
这段代码将为我提供我想要的示例输出:
[[4, 5, 5, 2, 1, 3, 3, 3, 2], [4], [5], [5], [2], [1], [3], [3], [3], [2]]
【问题讨论】:
-
边框是什么意思?是边缘吗?