You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何执行相同命令生成的图与讲师的图形状存在差异?

为什么你和讲师的nx.gnp_random_graph生成图不一样?

嗨,这个问题其实很常见——核心原因就是nx.gnp_random_graph(n, p)本身就是随机图生成器,每次运行的结果本来就存在差异,具体来说有这几个关键点:

  • 随机边的本质:这个函数的工作逻辑是,对20个节点的所有可能边(总共190条),每条边都以50%的概率被随机选中保留。每次运行程序时,随机选择的边组合都是不同的,自然图的连接结构和最终呈现的形状就不一样了。
  • 讲师用了随机种子:如果讲师的图每次运行都固定,那他大概率是设置了随机种子。随机种子可以让随机数生成器的输出固定下来,这样每次生成的图结构就完全一致。你只需要在生成图之前加上一行种子设置代码,就能复现他的结果:
    import networkx as nx
    import matplotlib.pyplot as plt
    
    # 设置随机种子,让图生成过程固定
    nx.random.seed(42)  # 42只是示例,讲师可能用了其他数字
    G = nx.gnp_random_graph(20, 0.5)
    plt.show(G)
    
  • 绘图布局的随机性:有时候就算图结构一样,你和讲师的图看起来还是不同,这可能是因为默认的绘图布局(比如spring_layout)也是随机计算节点位置的。如果要连节点位置都完全一致,你可以给布局函数也加上种子:
    pos = nx.spring_layout(G, seed=42)  # 固定节点布局
    nx.draw(G, pos=pos)
    plt.show()
    

只要设置了相同的随机种子,你生成的图就会和讲师的完全一模一样啦!

内容的提问来源于stack exchange,提问作者Rajat Negi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:47:47