与随机因素相比不太喜欢的项目更频繁地显示更多喜欢的项目的公式
Posted
技术标签:
【中文标题】与随机因素相比不太喜欢的项目更频繁地显示更多喜欢的项目的公式【英文标题】:Formula for showing more liked items more often than less liked items with a random factor 【发布时间】:2018-04-22 23:52:56 【问题描述】:目前我在mysql中使用order by RAND() DESC
效果很好
除了我还有一个数字可以计算喜欢的数量,现在从 0 到 5 不等,但未来可能会增加 5,让我们打电话给 5 我的maxlikes
如何以这样的方式订购它,让更多喜欢的人更有可能更频繁地出现,但仍然不时地随机显示喜欢较少的人?
【问题讨论】:
当我计算喜欢时,我最终选择了max(rand()) as my order
,这样每个喜欢的人都有平等的机会出现,因此拥有很多喜欢的项目可以有多个机会获得高(比如每个点赞都像是一张彩票有点意思)。
【参考方案1】:
你可以order by RAND()*likes DESC
喜欢非常喜欢的东西
或类似order by RAND()*maxLikes +Likes DESC
的东西平均添加 maxLikes/2 来排名
这真的取决于你想要的分布是什么
我想你也可以select columns, rankingFormulaWithRandom as rank .... order by rank desc
【讨论】:
我没有使用这个,因为分发太有利于点赞,我想要一个点赞作为一个额外的条目,所以当我计算我的点赞数时,我在同一行选择了max(rand()) as my order
喜欢的人有很多机会获得高排名(但要保持一切平等,就像随机抽奖中的额外条目一样)。以上是关于与随机因素相比不太喜欢的项目更频繁地显示更多喜欢的项目的公式的主要内容,如果未能解决你的问题,请参考以下文章