ポアソン度分布のランダムグラフを生成するためにsource code of Networkxを使用しました。次のようにランダムグラフジェネレータはnetworkxでどのように動作しますか?
私は私が必要とするコードの一部を変更します。
import random
import networkx
import math
from networkx.generators.classic import empty_graph
def gnp_random_graph(n, p, seed=None):
"""Return a random graph G_{n,p}.
Parameters
----------
n : int
The number of nodes.
p : float
Probability for edge creation.
possible edges: n[n-1]/2
seed : int, optional
Seed for random number generator (default=None).
"""
#My sample
z = 4 #mean degree
n = 10 #Number of nodes
p = math.exp**(-z)*z**(k)/(math.factorial(k)) ##I add this myself #k is missing
#This part is from the source
G=empty_graph(n)
if not seed is None:
random.seed(seed)
for u in xrange(n):
for v in xrange(u+1,n):
if random.random() < p:
G.add_edge(u,v)
return G
をエッジを生成するための最後の部分では、私はそれが度を数える方法を理解していないと((pは度の確率分布を比較しますk))?私にとっては、乱数btw(0,1)を生成するようです。しかし、どのようにしてpのドメインを使用し、乱数とp(k)を比較すべきですか?
私は良い説明しませんでした。 p(ポアソン分布)、私は手でそれを元のコードp(k)に加え、kは言及されず、混乱させました:( – masti