# 随机图中心度统计Python代码 **Published by:** [NingNing](https://paragraph.com/@ningning/) **Published on:** 2023-09-09 **URL:** https://paragraph.com/@ningning/python ## Content import networkx as nx import random # 创建一个随机图实例 def generate_random_graph(num_nodes, prob_edge): G = nx.erdos_renyi_graph(num_nodes, prob_edge) return G # 计算节点度中心性 def calculate_degree_centrality(G): degree_centrality = nx.degree_centrality(G) return degree_centrality # 计算多个随机图实例下的节点度中心性的平均值 def calculate_average_degree_centrality(num_instances, num_nodes, prob_edge): average_degree_centrality = {} for _ in range(num_instances): random_graph = generate_random_graph(num_nodes, prob_edge) degree_centrality = calculate_degree_centrality(random_graph) # 累加节点度中心性 for node, centrality in degree_centrality.items(): if node in average_degree_centrality: average_degree_centrality[node] += centrality else: average_degree_centrality[node] = centrality # 取平均值 for node in average_degree_centrality: average_degree_centrality[node] /= num_instances return average_degree_centrality # 示例用法 num_instances = 10000 # 随机图实例的数量 num_nodes = 50 # 节点数量 prob_edge = 0.2 # 边的概率 average_degree_centrality = calculate_average_degree_centrality(num_instances, num_nodes, prob_edge) print("平均度中心性:") for node, centrality in average_degree_centrality.items(): if centrality == 1: print(f"Node {node}: {centrality}") ## Publication Information - [NingNing](https://paragraph.com/@ningning/): Publication homepage - [All Posts](https://paragraph.com/@ningning/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@ningning): Subscribe to updates - [Twitter](https://twitter.com/0xNing0x): Follow on Twitter