java 热度算法_Raddit算法Java实现
import java.util.Date;
public class HotArticleRank {
/************
* 输入发贴时间,返回发贴时间距离1970.1.1的秒数
* @param Date dateTimes
* @return
*/
private static long epoch_seconds(Date pubtimes) {
return pubtimes.getTime() / 1000 - 1134028003;
}
/******
* 输入顶,踩,返回差值
* @param ups
* @param downs
* @return
*/
private static long score(long ups, long downs) {
return ups - downs;
}
/******
* 计算热度值,输入顶,踩和发贴时间,返回热度值
* @param ups 文章顶的数量
* @param downs 文章踩的数量
* @param pubtimes 文章发布时间
* @return
*/
public static double getHotVal(long ups, long downs, Date pubtimes) {
double hotrank = 0;
long seconds = 0;
long scorecount = 0;
double order = 0;
long signcount = 0;
scorecount = score(ups, downs);
seconds = epoch_seconds(pubtimes);
//计算贴子的受肯定(否定)的程度,如果对某个贴子的评价,越是一边倒,
//order就越大,但会趋于平缓。如果顶等于踩,则为0
order = Math.log10(Math.max(Math.abs(scorecount), 1));
signcount = (long) Math.signum(scorecount);
//seconds越大,得分越高,即新帖子的得分会高于老帖子。
//它起到自动将老帖子的排名往下拉的作用。
hotrank = order + (signcount * seconds) / 45000;
return hotrank;
}
}
java 热度算法_Raddit算法Java实现相关推荐
- java培训:Java的十大算法
想要学好java语言,就要打好基础,java要学习的东西有很多,今天小编就来和大家说下java的十大算法. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个 ...
- java和c 的rsa加密算法_RSA算法签名技术Java与C++统一(加密解密结果一样)
RSA算法签名技术Java与C++统一 (加密解密结果一样) 源代码下载地址:http://www.doczj.com/doc/64f44a94a0116c175f0e484d.html/produc ...
- Java常见的面试算法题:实现两个线程交替打印1到100的数
Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...
- 基数排序算法(基于Java实现)
title: 基数排序算法(基于Java实现) tags: 基数算法 基数排序算法原理及代码实现: 一.基数排序算法的原理 基数排序属于"分配式排序",又称"桶子法&qu ...
- 选择排序算法(基于Java实现)
title: 选择排序算法(基于Java实现) tags: 选择算法 选择排序算法原理及代码实现: 一.选择排序算法的原理 选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间.但是选择 ...
- 插入排序算法(基于Java实现)
title: 插入排序算法(基于Java实现) tags: 插入算法 插入排序算法原理及代码实现: 一.插入排序算法的原理 首先,我们将数组中的数据分为两个区间,已排序区间和未排序区间.初始已排序区间 ...
- 桶排序算法(基于Java实现)
title: 桶排序算法(基于Java实现) tags: 桶排序算法 桶排序算法的原理和代码实现 一.桶排序算法的原理 桶排序,顾名思义,会用到"桶",核心思想是将要排序的数据分到 ...
- 快速排序算法(基于Java实现)
title: 快速排序算法(基于Java实现) tags: 快速排序算法 快速排序算法的原理与代码实现: 一.快速排序算法的原理 快排算法的思想是: 如果需要排序数组中下标从p到r之间的一组数据,我们 ...
- 【使用Java编写的B*算法】
使用XP系统之家Java编写的B*算法 package rpg.stage.path; import java.util.ArrayList; import java.util.HashSet; im ...
- 了解java虚拟机—垃圾回收算法(5)
引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...
最新文章
- Python 字符串的所有方法详解
- 分层开发思想与小笼包
- 大数据互联网架构阶段 Redis(二)
- Cookie和Session的区别详解
- mfc编程消息机制中消息汇总
- 理解云计算备份与灾难恢复
- Grakn Forces 2020——D题Pecco模型总结
- Tomcat9.0部署iot.war(环境mysql8.0,centos7.2)
- spring5.0学习笔记7
- QML 插件开发 Plugin封装
- 鼠标经过时改变DIV背景颜色的三种途径
- 利用微信搜索抓取公众号文章(转载)
- ics日历 android,哪些日历 App 支持导入 ics 或 webcal 协议订阅?
- Python机器学习英文资源
- VR全景图在家装行业的应用及发展
- 用html5 Canvas制作一个简单的游戏 英雄抓小怪物(上)
- 使用R语言筛选数据中的重复行
- 流程变革,从推倒三座大山开始
- matlab——GUI概念
- 我是怎么提升写作能力的