我有一个关于机场航班的家庭作业,首先我要用10000个随机数为1000x1000数组创建一个稀疏矩阵(I,j和值)的表示,标准如下:
i是出发机场,j是到达机场,值是从i到j的旅行时间
然后,我必须根据上述标准找到最多2到8站的机场A的往返路线。例如:
注意:这个问题只能通过python内置库来解决。不接受像scipy和numpy这样的外部库。你知道吗
我试着运行一个10000个数字的循环,并根据上述标准为行、列和值分配一个随机数,但我猜这不是分配要求我做的,因为循环没有停止。你知道吗
我猜I和j不是稀疏矩阵的实际iloc和j表示,而是它们的值?我不知道。你知道吗
除了往返实现的示例之外,我目前没有其他工作代码。如果列表为空,则将引发错误:
dNext = {
0: [],
1: [4, 2, 0],
2: [1, 4],
3: [0],
4: [3, 1]
}
def findRoundTrips(trip, n, trips):
if (trip[0] == trip[-1]) and (1 < len(trip) <= n + 1):
trips.append(trip.copy())
return
for x in dNext[trip[-1]]:
if ((x not in trip[1:]) and (len(trip) < n)) or (x == trip[0]):
trip.append(x)
findRoundTrips(trip, n, trips)
trip.pop()
下面是如何构建稀疏矩阵:
这样做的目的是将稀疏矩阵定义为字典,其中字典的键是旅行的起点。键的值以元组列表的形式定义可以飞到的任何地方以及飞到那里所需的时间。你知道吗
注意,我没有检查我是否完全正确地使用了
randint
和uniform
,如果您使用了这两个函数,您应该查看这些函数的文档,以确定此解决方案中是否存在任何off-by-one错误。你知道吗相关问题 更多 >
编程相关推荐