• 大小: 625KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C/C++
  • 标签: ER网络  

资源简介

10000个节点的ER网络的C语言实现,复杂网络中常用的网络有ER网络,UCM网络等等。

资源截图

代码片段和文件信息

// ER-随机网络.c : 定义控制台应用程序的入口点。

#include 
#include 
#include “time.h“
int N=10000;                        //节点个数
double p=0.001;                      //连边概率
int edge[15000][15000];                   //存放连边矩阵

void randomnetwork()
{
    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
        {
            edge[i][j] = 0;
        }//对矩阵进行初始化为0
    for(int i = 1; i <= N; i++)
        for(int j = i+1; j <= N; j++)
        {
                double test1=0.0;
                test1=(rand()%N)/(double)N;
                if(test1                {
                    edge[i][j]=1;
                    edge[j][i]=1;
                    //printf(“edge[i][j]“);
                    //cout<                }
            }
        }
//统计节点度数计算网络平均度和P(K)
int calculateDegreeDistribution()
{
    double networkDegree=0.0;
    int degree[N];
    double statistic[N];
    for(int i = 1; i <= N; i++)
    {
        degree[i] = 0;
        statistic[i] = 0.0;
    }
    for(int i = 1; i <= N; i++)
    {
         for(int j = 1; j <= N; j++)
        {
            degree[i] += edge[i][j];
        }
        printf(“node %dDegree is %d\n“idegree[i]);
    }
    for(int i = 1; i <= N; i++)
        networkDegree += degree[i];
    printf(“networkDegree is %f\n“networkDegree);
    printf(“ = %f\n“networkDegree/(double)N);
    for(int i = 1; i <= N; i++)//这里从1开始是因为数据degree坐标是从1开始的
        statistic[degree[i]]++;//计算度为K(这里的degree[i]中存储的是度)的节点的个数
    double indentify=0.0;
    for(int i=0; i    {
        statistic[i]=statistic[i]/(double)N;
        printf(“度为%d的节点所占比例为: %f\n“istatistic[i]);
        indentify += statistic[i];
    }
    printf(“indentify = %f\n“indentify);
}
void main()
{
    srand((unsigned int)time(0));
    randomnetwork();
    FILE *fp2;
    fp2 = fopen(“100--随机网络--平均度为10.txt“ “w“);
    for(int i = 1; i <= N; i++)
        for(int j = 1; j <= N; j++)
        {
            fprintf(fp2 “%d “edge[i][j]);
            if(j==N)
                fprintf(fp2 “ \n“);
        }

    fclose(fp2);
    calculateDegreeDistribution();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-12 20:53  ER\
     文件   200030000  2018-05-12 15:36  ER\100--随机网络--平均度为10.txt
     文件        1060  2018-05-11 12:24  ER\ER.cbp
     文件         111  2018-05-12 13:41  ER\ER.depend
     文件         357  2018-05-11 15:11  ER\ER.layout
     目录           0  2018-05-11 12:24  ER\bin\
     目录           0  2018-05-12 15:36  ER\bin\Debug\
     文件       33260  2018-05-12 15:36  ER\bin\Debug\ER.exe
     文件        2411  2018-05-12 15:35  ER\main.c
     目录           0  2018-05-11 12:24  ER\obj\
     目录           0  2018-05-12 15:36  ER\obj\Debug\
     文件        5332  2018-05-12 15:36  ER\obj\Debug\main.o

评论

共有 条评论