• 大小: 2.77MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-30
  • 语言: C/C++
  • 标签: PageRank  

资源简介

PageRank C++ 实现 附带程序说明

资源截图

代码片段和文件信息

#define ROW 20 //默认链接数量
#define d 0.85 //阻尼系数
#define PK 10 //默认链接的PageRank总和
#include
#include
#include
#include  

using namespace std;

/*初始化*/
int init()
{
cout<<“************************************************************************\n\n“;
cout<<“                    本程序为模拟google网页评级算法的原型\n\n“;
cout<<“将各个链接直接的关系用二维邻接矩阵表示\n“;
cout<<“如存在123三个链接,且他们的指向关系为1指向2,2指向33指向1\n则用如下邻接矩阵表示其关系\n“;
cout<<“0 1 0\n0 0 1\n1 0 0\n“;
cout<<“************************************************************************\n“;
system(“pause“);
int n = ROW;
char c = ‘N‘;
cout<<“是否使用系统默认邻接矩阵(Y/N):“;
cin>>c;
if(c==‘Y‘)return n;
else
{
cout<<“请输入链接的数量:“;
cin>>n;
return n;
}
}

/*生成二维邻接矩阵*/
int** getAdjacencyMatrix(int n)
{
int** aMatrix = new int*[n];
for(int i=0;i aMatrix[i] = new int[n];
if(n==ROW)
{
srand((unsigned)time(0));
unsigned temp = rand();
for(int i = 0;i for(int j=0;j {
srand(temp++);
aMatrix[i][j] = rand()%2;
}
}
else
{
cout<<“请按行优先的顺序输入邻接矩阵,并以回车结束行输入!\n“;
for(int i=0;i for(int j=0;j {
cout<<“请输入第“< cin>>aMatrix[i][j];
}
}
for(int i=0;i aMatrix[i][i] = 0;
return aMatrix;
}

/*获取转移矩阵*/
double** getTransitionMatrix(int** aMatrixint n)
{
double** tArry = new double*[n];
int** newMatrix = new int*[n];
for(int i=0;i {
tArry[i] = new double[n];
newMatrix[i] = new int[n];
}
int* num = new int[n];
for(int i=0;i {
num[i]=0;
for(int j=0;j {
if(aMatrix[i][j]==1)num[i]++;
newMatrix[j][i] = aMatrix[i][j];
}
}
for(int i=0;i {
for(int j=0;j {
if(num[j]!=0)
tArry[i][j] = newMatrix[i][j]*d/num[j]+(1-d)/n;
else tArry[i][j] = (1-d)/n;
}
}
delete num;
delete newMatrix;
return tArry;
}

/*迭代PK*/
void updatePageRank(double** tArrydouble* pkint n)
{
double* pageRank = new double[n];
for(int i=0;i {
pageRank[i] = 0;
for(int j=0;j {
pageRank[i]+=tArry[i][j]*pk[j];
}
}
for(int i=0;i delete pageRank;
}

void outPut(int** aMatrixint n)
{
cout<<“\n各链接指向的邻接矩阵如下:\n  “;
for(int i=0;i {
cout< }
cout< for(int i=0;i {
if(i<9)cout< if(i>=9)cout< for(int j=0;j {
cout< }
cout< }
cout<}

/*登记排序*/
void sort(int* pkIddouble* pkint n)
{
for(int i=0;i for(int j=i+1;j {
if(pk[j]>pk[i])
{
int tem;
double temp;
tem=pkId[j];
pkId[j] = pkId[i];
pkId[i] = tem;
temp=pk[j];
pk[j] = pk[i];
pk[i] = temp;
}
}
}

void outPut(int* pkIddouble* pkint** aMatrixint n)
{
sort(pkIdpkn);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      49664  2010-12-06 15:12  PageRank\Debug\PageRank.exe

     文件     417252  2010-12-06 15:12  PageRank\Debug\PageRank.ilk

     文件     666624  2010-12-06 15:12  PageRank\Debug\PageRank.pdb

     文件       8964  2010-12-06 15:12  PageRank\PageRank\Debug\BuildLog.htm

     文件         67  2010-12-06 15:12  PageRank\PageRank\Debug\mt.dep

     文件        663  2010-12-06 15:12  PageRank\PageRank\Debug\PageRank.exe.embed.manifest

     文件        728  2010-12-06 15:12  PageRank\PageRank\Debug\PageRank.exe.embed.manifest.res

     文件        621  2010-12-06 15:12  PageRank\PageRank\Debug\PageRank.exe.intermediate.manifest

     文件      86119  2010-12-06 15:12  PageRank\PageRank\Debug\PageRank.obj

     文件     461824  2010-12-06 15:12  PageRank\PageRank\Debug\vc90.idb

     文件     258048  2010-12-06 15:12  PageRank\PageRank\Debug\vc90.pdb

     文件       5033  2010-12-06 15:12  PageRank\PageRank\PageRank.cpp

     文件       3922  2010-12-06 15:12  PageRank\PageRank\PageRank.vcproj

     文件       1403  2010-12-06 15:12  PageRank\PageRank\PageRank.vcproj.D24.Administrator.user

     文件    8489984  2010-12-06 15:12  PageRank\PageRank.ncb

     文件        890  2010-12-06 15:11  PageRank\PageRank.sln

    ..A..H.      7680  2010-12-06 15:12  PageRank\PageRank.suo

     目录          0  2010-12-06 15:12  PageRank\PageRank\Debug

     目录          0  2010-12-06 15:12  PageRank\Debug

     目录          0  2010-12-06 15:12  PageRank\PageRank

     目录          0  2010-12-06 15:12  PageRank

     文件     507392  2011-12-14 17:05  PageRank.doc

----------- ---------  ---------- -----  ----

             10966878                    22


评论

共有 条评论