zoukankan      html  css  js  c++  java
  • 牛顿冷却定律 使用

    参考:

    http://www.ruanyifeng.com/blog/2012/03/ranking_algorithm_newton_s_law_of_cooling.html

    实现原理:

    变量意思:

      $a : 指定时间之后的温度

      $b : 指定时间之前的温度

      $c : 两个温度变化之间用去的时间

      $d : 该物品的冷却系数

    1.  取得一个物品的冷却系数

      $d=-log($a/$b)/$c;

    2. 定好一个冷却系数之后,定期计算每个物品的当前温度

      $a=$b*exp(-$d*$c);

    //------------------------------------------dome---------------------------------------------

    实际使用:

    表: hot 表示热度 update_time 表示最后更新时间

    ------------------

    hot | update_time

    ------------------

    得到一个冷却系数:(根据自己的需要调整以下参数)

    $start_hot=100;//开始温度
    $end_hot=1;//结束温度
    $run_time=24*7;//使用时间(按小时计算)一周
    $d=-log($end_hot/$start_hot)/$run_time;//系数

    1.更新温度值:

    $table_time='';//对应表的update_time值
    $table_hot=''; //对应表的hot值
    $c_time=ceil((time()-$table_time)/60);//得到经过时间
    $a=$table_hot*exp(-$d*$c_time);//得到现在温度
    //修改表里的值
    $table_time=time();//修改最后修改为当前时间
    $table_hot=$a+1;//每次温度加的值自己定

    2.按温度查询结果

    $time=time();
    //查询SQL:select * from table order by hot*EXP(-$d* ( ceil(($time-update_time)/60) )) desc;
    //用不到索引,数据量大做缓存
  • 相关阅读:
    一.js高级(4)-函数调用-this指向-其他参数
    一.js高级(3)-原型及其继承
    一.js高级(2) -构造函数-原型对象
    curl ,post,get (原创)
    PDOHelper (原创)
    php 写日志函数(原创)
    一致性hash 算法 (转)
    md5 c# unicode 互换(原创)
    php auto_load mvc 接口框架(原创)
    php获取uniqid
  • 原文地址:https://www.cnblogs.com/liushannet/p/3169676.html
Copyright © 2011-2022 走看看