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}")