2024-01-04 13:00:21 | 我爱编程网
graph
=
{'A':
['B',
'C'],
'B':
['C',
'D'],
'C':
['D'],
'D':
['C','G','H'],
'E':
['F'],
'F':
['C']}
#从图中找出任意一条从起始顶点到终止顶点的路径
def
find_path(graph,
start,
end,
path=[]):
if
start
==
end:
"path",
path
return
True
if
not
graph.get(start):
path.pop()
return
False
for
v
in
graph[start]:
if
v
not
in
path:我爱编程网
path.append(v)
if
find_path(graph,v,end,path):
return
True
return
False
path
=
[]
if
find_path(graph,
'A',
'C',
path=path):
print(path)
else:
print(1)
#从图中找出从起始顶点到终止顶点的所有路径
import
copy
def
find_path_all(curr,
end,
path):
'''
:param
curr:
当前顶点
:param
end:
要到达的顶点
:param
path:
当前顶点的一条父路径
:return:
'''
if
curr
==
end:
path_tmp
=
copy.deepcopy(path)
path_all.append(path_tmp)
return
if
not
graph.get(curr):
return
for
v
in
graph[curr]:
#一个顶点在当前递归路径中只能出现一次,否则会陷入死循环。
if
v
in
path:
print("v
%s
in
path
%s"
%(v,
path))
continue
#构造下次递归的父路径
path.append(v)
find_path_all(v,end,path)
path.pop()
path_all
=
[]
find_path_all('A',
'G',path=['A'])
path_all
#遍历图中所有顶点,按照遍历顺序将顶点添加到列表中
vertex
=
[]
def
dfs(v):
if
v
not
in
graph:
return
for
vv
in
graph[v]:
if
vv
not
in
vertex:
vertex.append(vv)
dfs(vv)
for
v
in
graph:
if
v
not
in
vertex:
vertex.append(v)
dfs(v)
print(vertex)
fx是方程f(x)的系数列表
gx是方程g(x)的系数列表
q是多项式g(x)除以f(x)的商
r是多项式g(x)除以f(x)的余数
rx是多项式f(x)乘以g(x)的结果
import numpy as np
fx=[1,-14,48]
fxroots=np.roots(fx)
print(fxroots)
gx=[1,-9,18,31,-102]
gxroots=np.roots(gx)
print(gxroots)
q,r=np.polynomial.polynomial.polydiv(gx,fx)
print(q,r)
rx=np.polynomial.polynomial.polymul(fx,gx)
print(rx)
我爱编程网(https://www.52biancheng.com)小编还为大家带来邻接矩阵和邻接表怎么画的相关内容。
用二维数组和链表表示。
邻接矩阵和邻接表是表示图(无向图或有向图)的两种常用数据结构。邻接矩阵是用一个二维数组来表示图,数组的行数和列数都等于顶点的个数,若两个顶点之间存在一条边,则相应位置的值为1;否则为0。邻接表则是用链表来表示每一对相邻的顶点,对于每一个顶点,都存在若干个链表节点,这些节点表示与该顶点相邻的顶点。在实际应用中可以使用Python、C++等编程语言来实现邻接矩阵和邻接表,并通过打印输出的方式来展示二者的结构。
2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01