私はpythonをコーディングするのが初めてです。私はこのコードを変更して二部構成の2モードバージョンを開発したいと考えています。幾何乱数グラフを作るために使用されるnetworkxのコードです。私はこの機能のほとんどを把握していますが、94〜99行目が何をしているのかを正確に理解できません。 while、zipやnodes.pop()は理解していますが、他の部分は初心者のために混乱しています。コードのこの部分が与えられた一般的な説明より多くのことを誰かが説明できるように助けてくれますか?networkxコードのpythonの説明
G=nx.Graph()
G.name="Random Geometric Graph"
G.add_nodes_from(range(n))
if pos is None:
# random positions
for n in G:
G.node[n]['pos']=[random.random() for i in range(0,dim)]
else:
nx.set_node_attributes(G,'pos',pos)
# connect nodes within "radius" of each other
# n^2 algorithm, could use a k-d tree implementation
nodes = G.nodes(data=True)
while nodes: #line94
u,du = nodes.pop()
pu = du['pos']
for v,dv in nodes:
pv = dv['pos']
d = sum(((a-b)**2 for a,b in zip(pu,pv))) #line99
if d <= radius**2:
G.add_edge(u,v)
return G
小修正:「d」は、ユークリッド距離の* 2乗です。 – Avaris
@Avaris:非常に真実で、ルートの中の用語を計算します:) –
これは本当にいくつかのことをクリアしてくれてありがとうございます。可能であれば、私は1つの最終的なことを尋ねるかもしれない私はちょうどちょうどどこ正確に u、du = nodes.pop() pu = du ['pos'] から来て、何が起こっているかわからない。私は私がしたと思ったが、今あなたの答えがわからない。 最高の願い –