题目




思路

熟练运用一维数组、二维数组处理有向图问题

具体代码

import java.util.Random;
public class e3 {       int linjiejuzhen[][];//二维数组存放邻接矩阵   int chubian[];//记录每个点的出边数目  double rank[];//记录每个点的rank值 int size;//矩阵的边长    //打印有向邻接矩阵  public e3(int n)    {       init(n);        print();        countchubian(); }   public void print() {       for(int i=0;i<size;i++)       {           for(int j=0;j<size;j++)           {               System.out.print(linjiejuzhen[i][j]+" ");            }           System.out.println();       }   }       public void init(int n)//【i】【j】为0表示无边,为1表示i指向j   {       //随机生成有向图       size=n;        this.linjiejuzhen=new int[size][size];     Random rand = new Random();        for(int i=0;i<size;i++)           for(int j=0;j<size;j++)           {               if(i==j)                  linjiejuzhen[i][j]=0;              else                        linjiejuzhen[i][j]=rand.nextInt(2);            }       //初始化每个节点的rank值     rank=new double[size];     for(int i=0;i<size;i++)           rank[i]=1.0/size;  }       public void countchubian()//统计每个节点有几个出边 {       chubian=new int[size];     for(int i=0;i<size;i++)       {           chubian[i]=0;      }                   for(int i=0;i<size;i++)           for(int j=0;j<size;j++)           {               if(i!=j&&linjiejuzhen[i][j]==1)                  chubian[i]++;         }   }       public void rank()  {       for(int i=0;i<size;i++)//遍历所有节点       {           for(int j=0;j<size;j++)//找出指向当前节点的所有节点,加上rank值         {               if(i!=j&&linjiejuzhen[j][i]==1)              {                   rank[i]+=rank[j]/chubian[j];              }           }       }   }       public void printChubian()  {       String r="";     for(int i=1;i<size+1;i++)            r+=i+":"+chubian[i-1]+"  ";        System.out.println("节点出边"+"\n"+r);                }       public void printRank() {       String r="";     for(int i=1;i<size+1;i++)            r+=i+":"+rank[i-1]+"  ";       System.out.println("节点rank值"+"\n"+r);             }   public static void main(String[] args) {        // TODO Auto-generated method stub
e3 temp=new e3(4);
temp.printRank();
temp.printChubian();
for(int i=0;i<5;i++)
{           System.out.println("第"+(i+1)+"次rank");           temp.rank();            temp.printRank();       }   }   }

运行结果

山东大学众智科学实验3pagerank算法实验(java实现)相关推荐

  1. 山东大学众智科学与网络化产业复习笔记

    山东大学众智科学复习笔记 写在前面:鹿男神yyds,讲课诙谐有趣,条理清晰,给分可冲,总而言之,众智可冲,题主94,12/160,本文是复习时的总结,希望学弟学妹95+ 第一章 图论基础 图 = 事物 ...

  2. 山东大学众智科学实验一二

    1.概述 本门课的核心是网络的概念--网络是事物之间相互关联的一种模式.比如我们身在其中的社会网络,体现朋友之间的社交联系.等等. 1.1网络的基本问题 先放几个社会中的网络结构 金融机构之间的借贷网 ...

  3. 山东大学软件学院2022年春众智科学与网络化产业期末考试

    山东大学软件学院2022年春众智科学与网络化产业期末考试 时间:2022年6月28日 14:30-16:30 本次考试共十道大题 ! 本题考查博弈,材料来源:百度百科-协调博弈.题目要求(1)画出博弈 ...

  4. 山东大学众智课程——网络(图)有关的实验

    1.概述 本门课的核心是网络的概念--网络是事物之间相互关联的一种模式.比如我们身在其中的社会网络,体现朋友之间的社交联系.等等. 1.1网络的基本问题 先放几个社会中的网络结构 金融机构之间的借贷网 ...

  5. 山东大学软件学院众智科学与网络化产业(网络、群体与市场)复习笔记

    文章目录 教材版本 第1章:概述 第2章:图论 第3章:强联系和弱联系 第4章:网络及其存在的环境 4.1 同质性 4.2 同质现象背后的机制:选择与社会影响 4.5 隔离的一种空间模型 第5章:正关 ...

  6. 山东大学软件学院众智科学与网络化产业期末考试回忆版

    文章目录 一.考试时间 二.考试范围 三.考试题目 四.总结 一.考试时间 2021年6月24日 下午2:00-4:00 本次考试为软件学院2019级大二下的众志考试 二.考试范围 除了表决这一章不考 ...

  7. 山东大学2018-2019众智科学与网络化产业期末试题

    1.说明强三元闭包和捷径,证明捷径一定是弱关系 2.说明阿罗不可能定理 3.pagerank计算(和去年题目一样,迭代两次) 4.市场清仓求最大和 和去年题目一样 5.gsp vcg计算(和去年一样) ...

  8. 山东大学软件学院2022年众智科学期末简单回忆版题目

    1.求收益矩阵,混合策略纳什均衡求解 2.GSP,VCG计算价格 3.群体序列形成的中位项算法描述 4.弱平衡定理的证明 5.计算有同比缩减与统一补偿规则的PageRank,以及描述随机游走:Page ...

  9. 计算机操作系统实验银行家算法,实验六 银行家算法(下)

    实验六 银行家算法(下) 一.实验说明 实验说明:本次实验主要是对银行家算法进行进一步的实践学习,掌握银行家算法的整体流程,理解程序测试时每一步的当前状态,能对当前的资源分配进行预判断. 二.实验要求 ...

最新文章

  1. myeclipse使用maven整合ssh配置
  2. 企业怎样管理员工才会更有效?
  3. 在Developerkit开发板上运行blink例程
  4. python中filter函数的使用
  5. JAVA程序设计----集合基础之Map
  6. linux的搜索和时间
  7. Java包装类中的equals方法
  8. 时间转换python_Python 日期与时间转换的方法
  9. 用python计算列表元素之和_python实现计算列表元素之和
  10. WordPress标签(tag)url自动转化插件
  11. LintCode刷题笔记-- BackpackIII
  12. python学习手册-Python学习手册(第4版) 中文版.pdf
  13. 美国亚马逊账号被锁定之后
  14. Atititt hi dev eff db op Spring JDBC 目录 1. Spring JDBC 2 1 1.1. Atitit 数据库db insert 插入数据data 最佳实践
  15. 如何在cad中模块计算机,cad中家具模板哪里找(怎么在CAD图纸里面加入家具)
  16. 8- 性能测试面试题(测试框架总结)史上最全面试题
  17. 汽车FMCW毫米波雷达信号处理流程
  18. 本地同城小程序开发需要具备什么功能
  19. 乔治亚大学计算机科学,乔治亚大学的计算机科学排名,真得稳重考察
  20. 后台执行linux命令

热门文章

  1. matlab图像最暗,一种暗图像的亮度增强方法与流程
  2. 一个会烤吐司的AI,小扎用后表示非常不错!
  3. C2000 MBD 代码自动生成
  4. 关于VO,BO,PO,DO,DTO的简单理解
  5. 地中海发生两起海难事故 约170名难民死亡或失踪
  6. 三国志威力无双物资如何获取?
  7. Android10之Video MediaCodec硬解码流程(二十七)
  8. 电商业务梳理1-导流
  9. 自我感动式努力的第二天
  10. MATLAB 图像特征点检测(6个方法)