将公式转换为PHP代码

3
我正在尝试将这个自适应贝叶斯评分公式转换成PHP代码:请看这里
以下是公式各部分的详细信息:
- nvotes: 到目前为止的总投票数 - nlinks: 总链接数 - nvotes(k): 投给第r个链接的投票数。 - deltarank(k, m): k次投票对mth链接造成的排名增量。 - nsaves(i): 将第i个链接保存到其链接库中的用户数。 - a: 保存指数(接近1的专用值) - age(i): 链接添加日期与当前日期之间的差异(以天计)。 - b: 衰减指数(接近0的专用值)
(公式的完整细节可以在http://blog.linkibol.com/2010/05/07/how-to-build-a-popularity-algorithm-you-can-be-proud-of/找到-向下滚动到“如何在linkibol中实现流行度?”部分)
我可以轻松地将大多数此函数转换为PHP代码,但我不理解sigma和deltarank部分。我不确定那一部分应该做什么或传递给k和m的值是什么。
如果有人有任何提示或能够将公式的复杂部分分解,那就太好了,然后我可以考虑在PHP中实现它的最佳方法-可能有我可以利用等的函数。

一旦您获得算法代码,我会很有兴趣看看它的样子。 - Bot
2个回答

1

他们将Delta排名定义为在第k次投票对第m个链接进行投票时排名的变化...这似乎是任意的,因为他们的排名变化基于投票者的声望。

至于Sigma,它只是从(k=1)到(k=任何值)的内容之和,因此您将使用循环来实现它。


我知道这是基于karma的,但我不确定参数k和m代表什么(第k个投票和第m个链接)。sigma位是否受deltarank位的影响?我知道sigma不必每次增加1个整数,所以我想知道它是否受deltarank返回值的影响。 - RichW
1
k和m是循环中的当前索引 - 如果您查看sigmas的初始值,一个从k=1开始,另一个从m=1开始。是的,这样的sigma每次会增加1个整数。 - Sam Dufel

1

sigma部分是求和。使用提供的值作为循环计数器。(例如k=1到10,在接受k的函数中使用这些值)。

Delta只是一个差异,但是那个特定的函数肯定有更精确的定义。


我想循环计数器的另一种选择可能是array_sum() - 我认为那会产生相同的效果。关于delta函数的有趣想法 - 你认为有更多的计算在它背后,只是那个公式没有展示出来吗?我仍在努力理解deltarank代表什么.. - RichW

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接