【问题标题】:Converting a formula into PHP将公式转换为 PHP
【发布时间】:2010-10-21 20:17:55
【问题描述】:

我正在尝试将此自适应贝叶斯评级公式转换为 PHP 代码:请参阅此处

这里是公式各个部分的详细信息..

  • nvotes : 到目前为止的总票数
  • nlinks : 链接总数
  • nvotes(k) : 投给第 rth 链接的票数。
  • deltarank(k, m) : 由投给第 m 个链接的第 k 个投票引起的排名增加。
  • nsaves(i) :将第 i 个链接保存到其 linkibol 的用户数。
  • 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 中实现它的最佳方法是什么 - 可能有我可以使用的函数等等。

【问题讨论】:

  • 那些你得到算法代码的人,我有兴趣看看它是什么样子的。

标签: php math formula


【解决方案1】:

他们将增量排名定义为在第 m 个链接上进行第 k 次投票时排名的变化......这似乎是任意的,因为他们的排名变化是基于投票的用户的业力。

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

【讨论】:

  • 我知道它是基于业力的,我只是不确定参数 k 和 m 代表什么(第 k 个投票和第 m 个链接)。 sigma 位是否受 deltarank 位的影响?我知道 sigma 不必一次增加 1 个整数,所以我想知道它是否受 deltarank 返回的值的影响..
  • k 和 m 是循环中的当前索引 - 如果您查看 sigmas 的初始值,一个以 k=1 开头,另一个以 m=1 开头。是的,像这样的 sigma 确实每次增加​​ 1 个整数。
【解决方案2】:

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

Delta 只是一个区别,但该特定函数肯定有更精确的定义。

【讨论】:

  • 我想循环计数器的替代方案是 array_sum() - 我认为这会产生相同的效果。关于 delta 函数的有趣想法——你认为它背后有更多的计算没有显示在那个公式上吗?我仍在试图弄清楚 deltarank 代表什么..
猜你喜欢
  • 1970-01-01
  • 2017-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 2019-10-05
相关资源
最近更新 更多