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实现相关推荐

  1. java培训:Java的十大算法

    想要学好java语言,就要打好基础,java要学习的东西有很多,今天小编就来和大家说下java的十大算法. 算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个 ...

  2. java和c 的rsa加密算法_RSA算法签名技术Java与C++统一(加密解密结果一样)

    RSA算法签名技术Java与C++统一 (加密解密结果一样) 源代码下载地址:http://www.doczj.com/doc/64f44a94a0116c175f0e484d.html/produc ...

  3. Java常见的面试算法题:实现两个线程交替打印1到100的数

    Java常见的面试算法题:实现两个线程交替打印1到100的数 思路: 这是涉及到多个线程打印的问题,一定会用到锁的(synchronized),故这就是一个多线程打印的典型案例. 代码实现: pack ...

  4. 基数排序算法(基于Java实现)

    title: 基数排序算法(基于Java实现) tags: 基数算法 基数排序算法原理及代码实现: 一.基数排序算法的原理 基数排序属于"分配式排序",又称"桶子法&qu ...

  5. 选择排序算法(基于Java实现)

    title: 选择排序算法(基于Java实现) tags: 选择算法 选择排序算法原理及代码实现: 一.选择排序算法的原理 选择排序算法的实现思路有点类似插入排序,也分已排序区间和未排序区间.但是选择 ...

  6. 插入排序算法(基于Java实现)

    title: 插入排序算法(基于Java实现) tags: 插入算法 插入排序算法原理及代码实现: 一.插入排序算法的原理 首先,我们将数组中的数据分为两个区间,已排序区间和未排序区间.初始已排序区间 ...

  7. 桶排序算法(基于Java实现)

    title: 桶排序算法(基于Java实现) tags: 桶排序算法 桶排序算法的原理和代码实现 一.桶排序算法的原理 桶排序,顾名思义,会用到"桶",核心思想是将要排序的数据分到 ...

  8. 快速排序算法(基于Java实现)

    title: 快速排序算法(基于Java实现) tags: 快速排序算法 快速排序算法的原理与代码实现: 一.快速排序算法的原理 快排算法的思想是: 如果需要排序数组中下标从p到r之间的一组数据,我们 ...

  9. 【使用Java编写的B*算法】

    使用XP系统之家Java编写的B*算法 package rpg.stage.path; import java.util.ArrayList; import java.util.HashSet; im ...

  10. 了解java虚拟机—垃圾回收算法(5)

    引用计数器法(Reference Counting) 引用计数器的实现很简单,对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器减1.只要对象A的引用计数器的 ...

最新文章

  1. Python 字符串的所有方法详解
  2. 分层开发思想与小笼包
  3. 大数据互联网架构阶段 Redis(二)
  4. Cookie和Session的区别详解
  5. mfc编程消息机制中消息汇总
  6. 理解云计算备份与灾难恢复
  7. Grakn Forces 2020——D题Pecco模型总结
  8. Tomcat9.0部署iot.war(环境mysql8.0,centos7.2)
  9. spring5.0学习笔记7
  10. QML 插件开发 Plugin封装
  11. 鼠标经过时改变DIV背景颜色的三种途径
  12. 利用微信搜索抓取公众号文章(转载)
  13. ics日历 android,哪些日历 App 支持导入 ics 或 webcal 协议订阅?
  14. Python机器学习英文资源
  15. VR全景图在家装行业的应用及发展
  16. 用html5 Canvas制作一个简单的游戏 英雄抓小怪物(上)
  17. 使用R语言筛选数据中的重复行
  18. 流程变革,从推倒三座大山开始
  19. matlab——GUI概念
  20. 我是怎么提升写作能力的

热门文章

  1. 项目经理的修炼,直面需求变更
  2. 对四旋翼无人机飞行的认识(飞行控制原理)
  3. 关于limn阶乘/n^n的若干解法(2)
  4. 云计算(Cloud Computing)
  5. 一款很漂亮的一天只弹窗一次的公告
  6. 计算机包括台式机和笔记本,笔记本电脑与台式机怎样连接
  7. 三目表达式 java_Java 三目运算符表达式的一些问题
  8. excel转置怎么操作_Excel八问八答,新手入门必修课
  9. Windows下批量修改文件名称
  10. 基本的ps快捷键(图文)