我正在尝试实现一种非常简单的优先附加算法来创建无标度网络.它们具有遵循幂律的度分布,即P(k)~k ^ -g,其中g是指数.下面的算法应该产生指数等于3 +/- 0.1的度分布,我的实现并不是指数更接近2.5 +/- 0.1.我显然不是在某处理解某些东西并继续弄错.
我很抱歉,如果这是在错误的地方,我无法决定它是否应该在stackoverflow或maths.stackexchange.com.
The Algorithm:
Input: Number of Nodes N; Minimum degree d >= 1.
Output: scale-free multigraph
G = ({0,....,N-1}, E)
M: array of length 2Nd
for (v=0,...,n-1)
for (i=0,...,d-1)
M[2(vd+i)] = v;
r = random number selected uniformly at random from {0,.....,2(vd+i)};
M[2(vd+i)+1] = M[r];
end
end
E = {};
for (i=0,...,nd-1)
E[i] = {M[2i], M[2i+1]}
end
Run Code Online (Sandbox Code Playgroud)
我在C/C++中的实现:
void SF_LCD(std::vector< std::vector<int> >& graph, int N, int d) {
if(d < 1 || d …Run Code Online (Sandbox Code Playgroud)