《社交网络》里的数学公式elo rating system埃洛等级分系统(java实现)

版权声明:转载请标明出处哦 https://blog.csdn.net/easy_purple/article/details/85197965

之前看过电影社交网络,里边的一个算法很吸引我,也可以说是一个数学公式,于是就用java实现了一下。

除此,我还利用这个算法,做了一个应用,用于选出我喜欢的音乐等等.

如果你不是很了解这个是干嘛的,可以查看前人写过的文章:

好了,接下来贴出我的代码(很简陋)(因为我要删这个文件了,删了怪可惜,在这里保存一下)

public class zhishu {
	public static void main(String[] args) {
		double Ra=2000,Rb=2400;
		for(int i=1;i<=10;i++){
			double Ra0=Ra;
			Ra=Ra+K(Ra)*(S(1)-E(Ra,Rb));
			Rb=Rb+K(Rb)*(S(0)-E(Rb,Ra0));
			System.out.println(Ra+"  "+Rb+"   "+ (Ra+Rb));
		}
	}
	
	//返回胜利结果,胜利为1,失败为0
	private static double S(double x){
		//如果参数为1,那么自己赢了;如果参数为0,那么自己输了
		if(x==1)return 1;
		return 0;
	}
	
	//计算期望值
	private static double E(double Ra,double Rb){
		double fenmu=1+Math.pow(10,(Rb-Ra)/400.0);
		return Math.pow(fenmu, -1);
	}
	
	//判断实力值
	private static double K(double d){
		if(d>=2400)
			return (double) 16.0;
		if(d>=2100&&d<=2399)
			return 24.0;
		if(d>=0&&d<=2100)
			return 32;
		return 32;
	}
}

猜你喜欢

转载自blog.csdn.net/easy_purple/article/details/85197965
今日推荐