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;
    //用不到索引,数据量大做缓存
  • 相关阅读:
    html标签笔记
    C语言中的函数基础
    数组
    循环控制结构程序(goto、while、dowhile、 for)
    if语句+switch
    分支程序设计
    字符数据的输入与输出
    各类数值型数据之间的混合运算
    c语言概述及如何上机运行c程序
    [记录] Ubuntu 配置Apache虚拟站点
  • 原文地址:https://www.cnblogs.com/liushannet/p/3169676.html
Copyright © 2011-2022 走看看