在外文IT周刊上看到一个网站的文章排名算法,非常简单,就是一个式子计算得出文章的排名,然后文章根据这个排名数在首页上进行显示,那如果是我们得到这个命题,我们想到这个问题的相关属性和影响因素,
1、文章的喜爱程度,会有人进行投票,所有投票数是一个很关键的属性。
2、文章的存放时间,必然是时间越长的文章投票数会越多,但这对那些刚发表的文章会很不公平,同样老的文章应该被淘汰,如此看来这个排名应该是投票数与时间的比值,但是真正的式子是
Score = (P-1) / (T+2)^G
P为投票数,-1为发表者的一票,T是时间数(小时)却没有解释2是个什么意思,为什么要加2呢!!G是一个权重系数,默认为1.8,这个应该会随不同行业有所不同,可是,如何得到确切的值,也是要考虑的。
当应用到其他行业的话,目前所能想到的是影片的排名,和这个类似,可能P涉及的比较多,比如说收藏的人数,或者点击观看的人数,如若多个因素都考虑,式子又要怎样的变化呢,突然间意识到自己看到的很多复杂的计算式子其实就是这样很简单的一步步得来的,考虑每个因素的影响效果,用不同的计算符号将其表达,不仅是加减乘除,更有开方平方求积求和等复杂的运算符号,而不同的运算符号就会导致相应因子的影响程度对结果的变化趋势,所以要对各种运算符号要有很敏感的认知才可以。
算法可以很复杂也可以很简单,简单到一个数学式子,复杂可以是一系列的库和类,但是它都是对解决问题的一种规则和方法,后来不断的演变,将相似的解决方法归纳成一起,便有了各种类型的算法,启发算法,贪心算法,回溯算法等,而对结果也有了优化和比较的不同演变形式。从宏观上如此认知,希望自己能在算法路上可以走得稍远些。