使用Python随机生成20个AGraph()
发布时间:2023-12-11 07:51:39
要使用Python随机生成20个AGraph(),您可以使用以下代码:
import random
class AGraph:
def __init__(self, size):
self.size = size
self.graph = [[0] * size for _ in range(size)]
def add_edge(self, u, v):
self.graph[u][v] = 1
self.graph[v][u] = 1
def get_neighbors(self, node):
neighbors = []
for i in range(self.size):
if self.graph[node][i] == 1:
neighbors.append(i)
return neighbors
# 生成20个AGraph()
graphs = []
for _ in range(20):
size = random.randint(5, 10) # 图的大小为5到10之间的随机数
graph = AGraph(size)
# 随机添加边,连接图中的节点
for i in range(size):
for j in range(i + 1, size):
if random.random() < 0.5: # 以50%的概率添加边
graph.add_edge(i, j)
graphs.append(graph)
# 打印每个图的节点和邻居
for i, graph in enumerate(graphs):
print(f"Graph {i+1}:")
for node in range(graph.size):
neighbors = graph.get_neighbors(node)
print(f"Node {node}: {neighbors}")
print()
上述代码中,我们首先定义了一个名为AGraph的类,该类代表一个带权无向图。构造函数__init__()接收一个整数参数size,该参数表示图的大小(节点个数),并根据该大小创建一个二维列表来表示邻接矩阵。
add_edge()方法用于将两个节点连接起来,参数u和v表示要连接的两个节点的索引。
get_neighbors()方法用于获取给定节点的邻居列表。
然后,我们使用一个循环生成20个不同大小的随机图,并将它们添加到graphs列表中。在每个图中,我们使用随机概率向节点之间添加边,以创建不同的连接。
最后,我们通过循环打印每个图的节点和邻居,以验证生成的图的正确性。
下面是一些输出示例:
Graph 1: Node 0: [1, 4] Node 1: [0, 2, 3] Node 2: [1, 3, 4] Node 3: [1, 2, 4] Node 4: [0, 2, 3] Graph 2: Node 0: [1, 3, 4, 6] Node 1: [0, 2, 5, 6] Node 2: [1, 3, 4] Node 3: [0, 2, 4] Node 4: [0, 2, 3] Node 5: [1, 6, 7, 8] Node 6: [0, 1, 5, 7] Node 7: [5, 6, 8, 9] Node 8: [5, 7, 9] Node 9: [7, 8] ... Graph 20: Node 0: [1, 2, 3] Node 1: [0, 2, 4] Node 2: [0, 1, 3, 4] Node 3: [0, 2, 4] Node 4: [1, 2, 3]
这些输出示例展示了每个图的节点和邻居关系,您可以看到每个图的大小(节点数)不同,并且每个节点的邻居也不同。
