山东大学众智科学实验3pagerank算法实验(java实现)
题目
思路
熟练运用一维数组、二维数组处理有向图问题
具体代码
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实现)相关推荐
- 山东大学众智科学与网络化产业复习笔记
山东大学众智科学复习笔记 写在前面:鹿男神yyds,讲课诙谐有趣,条理清晰,给分可冲,总而言之,众智可冲,题主94,12/160,本文是复习时的总结,希望学弟学妹95+ 第一章 图论基础 图 = 事物 ...
- 山东大学众智科学实验一二
1.概述 本门课的核心是网络的概念--网络是事物之间相互关联的一种模式.比如我们身在其中的社会网络,体现朋友之间的社交联系.等等. 1.1网络的基本问题 先放几个社会中的网络结构 金融机构之间的借贷网 ...
- 山东大学软件学院2022年春众智科学与网络化产业期末考试
山东大学软件学院2022年春众智科学与网络化产业期末考试 时间:2022年6月28日 14:30-16:30 本次考试共十道大题 ! 本题考查博弈,材料来源:百度百科-协调博弈.题目要求(1)画出博弈 ...
- 山东大学众智课程——网络(图)有关的实验
1.概述 本门课的核心是网络的概念--网络是事物之间相互关联的一种模式.比如我们身在其中的社会网络,体现朋友之间的社交联系.等等. 1.1网络的基本问题 先放几个社会中的网络结构 金融机构之间的借贷网 ...
- 山东大学软件学院众智科学与网络化产业(网络、群体与市场)复习笔记
文章目录 教材版本 第1章:概述 第2章:图论 第3章:强联系和弱联系 第4章:网络及其存在的环境 4.1 同质性 4.2 同质现象背后的机制:选择与社会影响 4.5 隔离的一种空间模型 第5章:正关 ...
- 山东大学软件学院众智科学与网络化产业期末考试回忆版
文章目录 一.考试时间 二.考试范围 三.考试题目 四.总结 一.考试时间 2021年6月24日 下午2:00-4:00 本次考试为软件学院2019级大二下的众志考试 二.考试范围 除了表决这一章不考 ...
- 山东大学2018-2019众智科学与网络化产业期末试题
1.说明强三元闭包和捷径,证明捷径一定是弱关系 2.说明阿罗不可能定理 3.pagerank计算(和去年题目一样,迭代两次) 4.市场清仓求最大和 和去年题目一样 5.gsp vcg计算(和去年一样) ...
- 山东大学软件学院2022年众智科学期末简单回忆版题目
1.求收益矩阵,混合策略纳什均衡求解 2.GSP,VCG计算价格 3.群体序列形成的中位项算法描述 4.弱平衡定理的证明 5.计算有同比缩减与统一补偿规则的PageRank,以及描述随机游走:Page ...
- 计算机操作系统实验银行家算法,实验六 银行家算法(下)
实验六 银行家算法(下) 一.实验说明 实验说明:本次实验主要是对银行家算法进行进一步的实践学习,掌握银行家算法的整体流程,理解程序测试时每一步的当前状态,能对当前的资源分配进行预判断. 二.实验要求 ...
最新文章
- myeclipse使用maven整合ssh配置
- 企业怎样管理员工才会更有效?
- 在Developerkit开发板上运行blink例程
- python中filter函数的使用
- JAVA程序设计----集合基础之Map
- linux的搜索和时间
- Java包装类中的equals方法
- 时间转换python_Python 日期与时间转换的方法
- 用python计算列表元素之和_python实现计算列表元素之和
- WordPress标签(tag)url自动转化插件
- LintCode刷题笔记-- BackpackIII
- python学习手册-Python学习手册(第4版) 中文版.pdf
- 美国亚马逊账号被锁定之后
- Atititt hi dev eff db op Spring JDBC	 目录 1. Spring JDBC	2	1 1.1. Atitit 数据库db insert 插入数据data 最佳实践
- 如何在cad中模块计算机,cad中家具模板哪里找(怎么在CAD图纸里面加入家具)
- 8- 性能测试面试题(测试框架总结)史上最全面试题
- 汽车FMCW毫米波雷达信号处理流程
- 本地同城小程序开发需要具备什么功能
- 乔治亚大学计算机科学,乔治亚大学的计算机科学排名,真得稳重考察
- 后台执行linux命令