Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 投票权算法_Php_Algorithm_Statistics_Theory - Fatal编程技术网

Php 投票权算法

Php 投票权算法,php,algorithm,statistics,theory,Php,Algorithm,Statistics,Theory,我正在开发一个类似Digg的web应用程序,我需要一个算法,用于按流行程度排序帖子。例如:在第一页,我希望有今天最受欢迎的帖子,以及前几天的几篇获得足够票数的帖子。我的数据库目前看起来是这样的: Table | fields Posts | id | ... | time Feedback | id | userid | time | upvote “向上投票”字段是布尔。如果是肯定的,则表示用户单击了向上投票按钮 我的表格是空的,可以修改 如果我理解正确,您希望投票的价值与其年龄成反比,我们

我正在开发一个类似Digg的web应用程序,我需要一个算法,用于按流行程度排序帖子。例如:在第一页,我希望有今天最受欢迎的帖子,以及前几天的几篇获得足够票数的帖子。我的数据库目前看起来是这样的:

Table | fields
Posts | id | ... | time
Feedback | id | userid | time | upvote
“向上投票”字段是布尔。如果是肯定的,则表示用户单击了向上投票按钮

我的表格是空的,可以修改


如果我理解正确,您希望投票的价值与其年龄成反比,我们将非常感谢您的帮助。(投票年龄越大,在你的人气指数中所占的比例就越小。)


实现这一点的一个简单方法是将投票转换为人气单位(PUs),并且不只是简单投票的总和,而是PUs的总和。PU的构造可以简单到等于1/(投票年龄以天或小时为单位)。一天的投票价值1 PU,而两天的投票价值一半

就我个人而言,我喜欢采取更复杂的方法。一般的想法是,cron处理器每5分钟运行一次,根据您提到的标准计算每个实体的受欢迎程度,并基于用户计算受欢迎程度,以消除明显的帮派投票聚集现象,从而提升他们自己社交圈内的内容

看看劳森的答案,可以找到一个考虑投票年龄的好办法。但是考虑一下,根据声誉、资历等来应用用户自己的权重可能是有用的。 不幸的是,这并不简单。虽然我发现它比大多数网络编程更有趣,但考虑到游戏系统的所有基本心理因素可能是一个非常耗时的过程,并且可能不是你所想的,除非你碰巧为Digg工作,或者是一家严肃的初创公司的一部分

以下是php.net标准偏差:

虽然我认为这个答案更切题:

代码示例可能很好,但我们需要一些数据来完成这项工作,即使这样,这可能会变得相当复杂。但它确实很有趣。尤其是当您的代码发现有人试图玩系统游戏时。

为什么不按过去X小时内的投票数进行排名?或者使用一个时间延迟过滤器。。。。