在python中生成具有规定度分布的网络(图)

我的问题是如何使用 numpy 和 networkX 在 python 中生成随机网络图(其他模块也可以工作,但目前我专注于这两个),其中包含 1000 个节点和给定的度数分布,如图所示,其中 k 是节点数边,P(k) 是节点与一定数量的边连接的概率。多谢。学位分布

p_k = [0, .1, .35, .25, .2, .1, .04, .01, .02, .02, .01]
k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]


汪汪一只猫
浏览 69回答 1
1回答

万千封印

这是 100 个节点的实现。请注意,我将您的原始概率修改为总和为 1。import numpy as npimport networkx as nximport matplotlib.pyplot as pltp_k = [0, .01, .35, .25, .2, .1, .04, .01, .01, .02, .01]k = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]expected_degree_sequence = np.random.choice(  k,   100,  p = p_k)G = nx.configuration_model(expected_degree_sequence)nx.draw(G)plt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python