首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于用户投票的排名算法(一):Delicious和Hacker News

互联网的出现,意味着"信息大爆炸"。 用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。...每个帖子前面有一个向上的三角形,如果你觉得这个内容很好,就点击一下,投上一票。根据得票数,系统自动统计出热门文章排行榜。...它的排名算法是这样实现的: 将上面的代码还原为数学公式: 其中,   P表示帖子的得票数,减去1是为了忽略发帖人的投票。   ...T表示距离发帖的时间(单位为小时),加上2是为了防止最新的帖子导致分母过小(之所以选择2,可能是因为从原始文章出现在其他网站,到转贴至Hacker News,平均需要两个小时)。   ...如果你不想让"高票帖子"与"低票帖子"的差距过大,可以在得票数上加一个小于1的指数,比如(P-1)^0.8。 第二个因素是距离发帖的时间T。 在其他条件不变的情况下,越是新发表的帖子,排名越高。

1.1K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Delicious和Hacker News--基于用户投票的排名算法

    用户担心的,不再是信息太少,而是信息太多。如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题。 各种各样的排名算法,是目前过滤信息的主要手段之一。...每个帖子前面有一个向上的三角形,如果你觉得这个内容很好,就点击一下,投上一票。根据得票数,系统自动统计出热门文章排行榜。...其中,P表示帖子的得票数,减去1是为了忽略发帖人的投票。...T表示距离发帖的时间(单位为小时),加上2是为了防止最新的帖子导致分母过小(之所以选择2,可能是因为从原始文章出现在其他网站,到转贴至Hacker News,平均需要两个小时)。...如果你不想让”高票帖子”与”低票帖子”的差距过大,可以在得票数上加一个小于1的指数,比如(P-1)^0.8。 第二个因素是距离发帖的时间T。 在其他条件不变的情况下,越是新发表的帖子,排名越高。

    80650

    基于内容热度的推荐

    背景 眼动技术可以用于研究广告注意机制[3],其研究结果表明我们以特定的模式来浏览网页、手机屏幕[4],进而产生点击等进一步转化行为。...其排名策略同时考虑用户正向投票数和时间因素[8]。 ? Hacker News截图 P: 表示帖子得票数, 表示忽略发帖人的投票。 T: 表示距离发帖的时间(单位为小时)。...可能是因为原始文章转贴至 Hacker News平均需要两个小时,所以+2还原最新帖子的实际发生时间。 G: 表示“重力因子”(gravityth power, ),即将帖子排名往下拉的力量。...得分公式可以看出: 帖子的票数 越多,内容的排名得分越高。可以在这一项上增加指数变为 ,增加( )或减小( )得票数对最终得分的影响。...总结 热度排名由3个方面影响: 初始状态热度(文章来源、类别、作者的信息等) 热度如何上升(点赞、收藏、关注、评论等) 热度如何下降(反对、低评分、时间增长等) 但对于不同类型的网站,内容的热度排名显然有不同的侧重点

    3.8K20

    LeetCode 图解 | 229.求众数Ⅱ,要求线性时间复杂度?

    所以,俺就先介绍摩尔投票法的原理,再配上动画。学完之后再做这道题,就会变得非常简单,编程起来速度也杠杠的。 摩尔投票法,解决的问题是如何在任意多的候选人中,选出票数超过一半的那个人。...但这不意味着这个候选人的票数一定能超过一半,例如 [A, B, C]的抵消阶段,最后得到的结果是 [C,1],C候选人的票数也未能超过一半的票数。...但是俺在这里发现了一个优化,如果最后得到的可抵消票数是0的话,那他已经无缘票数能超过一半的那个人了。因为本来可能有希望的,但是被后面的一张不同的票抵消掉了。...理解摩尔投票法之后,我们再回到题目描述,题目可以看作是:在任意多的候选人中,选出票数超过⌊ 1/3 ⌋的候选人。...如果至多选一个代表,那他的票数至少要超过一半(⌊ 1/2 ⌋)的票数; 如果至多选两个代表,那他们的票数至少要超过⌊ 1/3 ⌋的票数; 如果至多选m个代表,那他们的票数至少要超过⌊ 1/(m+1) ⌋

    80710

    老司机教你如何在以太坊上构建基于Token去中心化投票系统!

    作者 | Doug Crescenzi 译者 | 王柯凝 出品 | CSDN、区块链大本营 如果想在以太坊平台上构建一个去中心化的自治系统,其实有很多种不同的方法可供你选择。...然而,在构建一个基于代币的去中心化应用程序的实际操作中,我们还是会遇到很多困难与挑战。其中,最大的挑战之一就是选民欺诈行为。除此之外,投票的状态如何管理?一些代币独有的特性如何与相应的自治机制相结合?...在这里,选民使用代币余额对提案进行投票,而代币余额则表示选民可以对某一特定提案投票的票数。 首先,我们先假设某一选民提交提案。 我们需要创建一个函数,允许选民向自治智能合约提交提案。 代码如下: ?...现在,我们需要创建一个函数,来处理选民对该特定提案的投票。...submitVote函数将会调用if语句,检查是否已经收到足够的票数使提案通过: ? 如果投票系统已经接收到足够多的票数,则会调用endVote函数: ?

    72431

    使用pandas分析1976年至2010年的美国大选的投票数据

    我会从不同的角度来处理这些数据,试图了解人们是如何投票的。 我将使用pandas库进行数据分析和可视化,因此这也是使用pandas的函数和方法的良好实践。...我们准备开始分析,我将分析分为三个部分: 一段时间内的总票数 每个获胜者的投票比例 国家层面的比较 一段时间内的总票数 我们首先要检查的是每次选举的票数。...“totalvotes”列显示特定状态下的投票总数。因此,下面的代码将创建一个dataframe,其中包含每个州对于每次选举的总票数。...每行包含获胜者的票数和特定选举在特定州的总票数。一个简单的groupby函数将为我们提供各个国家的值。...但是这篇文章的重点是练习如何将pandas用于数据分析和操作。在数据分析和操作方面,我们做了大量的操作,这个才是我们这篇文章的目的。 最后感谢您的阅读。

    2.1K30

    Python股市数据分析教程——学会它,或可以实现半“智能”炒股 (Part 1)

    此外,在此提供的所有代码均无法提供任何保证。选择使用这些代码的个人需自行承担风险。 引言 高等数学与统计学已在金融领域应用了一段时间。...比如,近期数学领域最大的成就之一,便是Black-Scholes公式的推导,这一成果可用于股票期权(一种赋予持有人以特定价格向期权发行商购买或出售股票权利的合约)的定价。...实际上,大部分的算法交易都属于高频交易(HFT)。尽管算法的表现可能超过人类,但是这项技术并不成熟,应用的领域又充满着高风险与动荡。...我还将讨论移动均线、如何使用移动均线来构建交易策略、如何在进入仓位时制定退出策略以及如何使用回溯检验评估交易策略等方面的内容。 声明:这不是关于金融投资的建议!!!...股票数据可视化 既然我们现在有了股票数据,我们可以通过可视化的形式展示它。我首先演示如何使用matplotlib来可视化股票数据。

    1.5K100

    LeetCode,数组中有一个数超过元素的一半,找出那个数

    力扣题目: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。...哈希表 我们最容易想到的方法就是使用一个哈希表来存储每个元素,键表示一个元素,值表示该元素出现的次数。然后,我们遍历哈希映射中的所有键值对,返回值最大的键。...摩尔投票法 摩尔投票法(Boyer–Moore majority vote algorithm),也被称作「多数投票法」,该算法解决的问题是:如何在任意多的候选人中(选票无序),选出获得票数最多的那个。...思路: 随便选个人当选,和他相同就赞成,票数++ 和它不同就反对,票数–- 票数为0则换一个候选人,最终票数肯定是正的,当选的便是众数 func majorityElement(nums []int)...count ++ } else { count -- } } return major } ❝注意:这种解法只是满足于超过一半的投票

    49450

    2020-01-25:redis中,哨兵如何选举?

    5、Candidate会不断的统计自己的票数,直到他发现认同他成为Leader的票数超过一半而且超过它配置的quorum(quorum可以参考《redis sentinel设计与实现》)。...6、如果在一个选举时间内,Candidate没有获得超过一半且超过它配置的quorum的票数,自己的这次选举就失败了。 7、如果在一个epoch内,没有一个Candidate获得更多的票数。...那么等待超过2倍故障转移的超时时间后,Candidate增加epoch重新投票。 8、如果某个Candidate获得超过一半且超过它配置的quorum的票数,那么它就成为了Leader。...3、如果该sentinel节点发现自己的票数已经超过半数并且超过了quorum。 4、如果此过程选举出了多个领导者,那么将等待一段时重新进行选举。...slave的选举.进行不健康的slave排除(主观下线的,大于5秒未回应的,与master节点失联的),对健康节点进行排序(设置的优先级,若相同进行下一步,选择偏移量大的从节点)。

    2K10

    Python股市数据分析教程(一):学会它,或可以实现半“智能”炒股

    此外,在此提供的所有代码均无法提供任何保证。选择使用这些代码的个人需自行承担风险。 引言 高等数学与统计学已在金融领域应用了一段时间。...比如,近期数学领域最大的成就之一,便是Black-Scholes公式的推导,这一成果可用于股票期权(一种赋予持有人以特定价格向期权发行商购买或出售股票权利的合约)的定价。...实际上,大部分的算法交易都属于高频交易(HFT)。尽管算法的表现可能超过人类,但是这项技术并不成熟,应用的领域又充满着高风险与动荡。...我还将讨论移动均线、如何使用移动均线来构建交易策略、如何在进入仓位时制定退出策略以及如何使用回溯检验评估交易策略等方面的内容。 声明:这不是关于金融投资的建议!!!...股票数据可视化 既然我们现在有了股票数据,我们可以通过可视化的形式展示它。我首先演示如何使用matplotlib来可视化股票数据。

    5.7K83

    leetcode-169. 多数元素

    image.png JAVA解法 class Solution { public int majorityElement(int[] nums) { //假设第一个元素的票数...,那么这个丙就是人数最多的一个。...摩尔投票法:刚开始有甲乙丙三个候选人,谁都不知道是谁当选,因为票数都是 0,先假设数组的甲(这里是数组的第一个元素)为当选人,票数是 1,然后遍历整个数组,如果遇到甲的,票数就加一,如果遇到不是甲的,票数就减一...,直到甲的票数为 0,甲的票数为 0 就更换候选人,然后继续比较,遍历到数组的最后一个元素就是当选人。...然后票数等于 0 就更换当选人。 这道题的题目是假设数组是存在多数元素的,这个条件非常重要,也就是说这个数组中必定有元素是超过 n/2 的,也就是说用摩尔投票法找出来的众数一定是超过 n/2 的。

    18720

    solidity 合约入门

    合约允许用户为不同的候选人投票,并且可以查询每个候选人的得票数。...5.vote 函数:允许任何地址投票给特定的候选人。6.getVotes 函数:允许查询特定候选人的得票数。 合约的调用者可以通过调用函数来添加候选人、投票和查询候选人的得票数。...以下是如何在 Remix IDE 中调试智能合约的步骤: 1.打开 Remix IDE:访问 Remix IDE 的网站:https://remix.ethereum.org/2.创建或打开合约:在 Remix...选择左侧菜单栏中的 "File Explorer",然后点击 "Open" 按钮,选择你的 Solidity 合约文件,或者点击 "Create" 创建一个新的合约文件。...3.选择 Solidity 版本:在左上角的选择框中,选择你要使用的 Solidity 版本。选择一个你熟悉的版本,通常会是最新的版本。

    26420

    募资6亿登陆科创板不足7个月,佰维存储又抛出45亿定增计划!股价大跌近10%!

    7月19日晚间,存储模组厂商佰维存储发布了定向增发预案,拟定增募资不超过45亿元,主要用于惠州佰维先进封测及存储器制造基地扩产建设项目、晶圆级先进封测制造项目、研发中心升级建设项目、补充流动资金。...具体来说,佰维存储拟向不超过35名(含35名)特定对象发行股票,发行价格为不低于定价基准日前二十个交易日公司股票交易均价的80%。...本次发行的股票数量按照募集资金总额除以发行价格确定,同时本次发行股票数量不超过本次向特定对象发行前公司总股本的30%,即本次发行不超过1.29亿股(含本数)。...佰维存储上市发行价为13.99元/股,上市之后,股价最高一度达到116.66元/股,涨幅超过8倍,截至7月19日收盘,佰维存储股价为89.98元/股,市值超380亿元。...本次向特定对象发行股票数量不超过 129,098,740 股(含本数),在不考虑可能导致公司总股本或股权结构发生变化的其他事项的前提下,若假设本次发行股票数量为发行上限 129,098,740 股且实际控制人孙成思及其一致行动人不参与

    24220

    Redis哨兵(Sentinel)模式快速入门

    Candidate会不断的统计自己的票数,直到他发现认同他成为Leader的票数超过一半而且超过它配置的quorum(quorum可以参考《redis sentinel设计与实现》)。...如果在一个选举时间内,Candidate没有获得超过一半且超过它配置的quorum的票数,自己的这次选举就失败了。 如果在一个epoch内,没有一个Candidate获得更多的票数。...那么等待超过2倍故障转移的超时时间后,Candidate增加epoch重新投票。 如果某个Candidate获得超过一半且超过它配置的quorum的票数,那么它就成为了Leader。...最后,sentinel会等待旧的master复活,然后将新master成为slave 那么,如何选择“合适”的slave节点呢?...其次会选择复制偏移量最大的slave节点(复制得最完整),如果存在则返回,不存在则继续 最后会选择run_id最小的slave节点(启动最早的节点) 客户端实现高可用的基本原理 故障转移后客户端无法感知将无法保证正常的使用

    56750

    剑指Offer题解 - Day51

    数组中出现次数超过一半的数字 力扣题目链接[1] 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。...「示例 1:」 输入: [1, 2, 3, 2, 2, 2, 5, 4, 2] 输出: 2 「限制:」 1 <= 数组长度 <= 50000 思路: 如果说,将数组进行排序,那么出现次数超过一半的数字肯定位于数组的中位数...哈希表 同样的,我们可以用哈希表来存储每个数字出现的次数,然后找出出现次数最多的即可。该方法的时间复杂度和空间复杂度均为O(n) 。 摩尔投票法 该方法的原理是票数的正负抵消。...从而获取到出现次数超过一半的数字。...首先寻找规律,首先称出现次数超过一半的数字为 「众数」 : 如果是众数则投票 「+1」 ,如果不是众数则投票 「-1」 ,最后的结果一定 「大于0」 ; 如果数组的前面部分数字的票数和为 「0」 ,则剩余数字的票数和一定

    18630

    Redis专题(七)——Redis高可用(哨兵篇)

    由于同一个主从系统可以多个哨兵检查,则投票数的目的在于当该哨兵认为主库主观下线,至少还要有投票数-1 (因为包括当前哨兵)的哨兵认为是客观下线,才会换主库。 其中只需要配置主库,哨兵会自动获取从库。...当下线的是主库,哨兵还会给其他哨兵发送命令,确认其他哨兵是否也认为主库主观下线,当达到指定数量(哨兵配置文件中主库的投票数,投票数含自身),则认为其客户下线(检测到+odown),此时重新选主库。...b.如果接到命令的哨兵,没有选过其他人,则选A。 c.当A的票数超过哨兵的半数,且超过哨兵配置文件对该主库的投票数,则A称为领头哨兵。...6)故障恢复 领头哨兵挑选一个从库作为新的主库,挑选依据如下: a.所有在线从库,选择优先级最高的从库,优先级通过配置文件的slave-priority来设置。...b.当多个从库优先级都一样且最高,则复制的偏移量越大,即增量复制时保存的数据相对约完整的,越优先。 c.以上条件都一样,则选择运行id最小的从库作为新的主库。

    1K60

    Python 之父退位后,最高决策权花落谁家?

    我选择忽略了一些不太重要的方面,比如专门的投票组织(详见每个PEP)。提取信息并总结它,这不是一件容易的事,所以我可能会出错。...PEP 8011、8014 和 8015 提到了多样性(译注:即决策层成员的多样性,如女性开发者),但却没有提到如何“促进”(enforce)多样性的详细规则。...最高决策层 PEP-8012 明确地避免它 PEP-8014 有一个长老会(Council of Elders),负责决定如何及何时批准 PEP,决定是基于对所有人开放的投票(详见下文关于 PEP 流程的部分...Council of Pythonistas,智囊团,为GUIDO提供参谋意见) 协商,确定专家人选” PEP 8011:工作组 (3-5 人),给三巨头提建议,无需是核心开发者 PEP 8012:专家自组织成特定兴趣领域的子团队...本文的全部 PEP 都是围绕如何选出新的 BDFL 以及配套的治理方案,该词不再特指某人。 译后记 : 这是我首次尝试翻译工作,其中的艰难之处真是知者自知。

    34110

    剑指offer | 面试题31:数组中出现次数超过一半的数字

    数组中出现次数超过一半的数字 题目描述 :数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。...摩尔投票法: “设输入数组 nums 的众数为x,数组长度为n。 推论一: 若记众数的票数为+1,非众数的票数为-1,则一定有所有数字的票数和> 0。...推论二: 若数组的前a个数字的票数和=0,则数组剩余(n-a)个数字的票数和一定仍> 0,即后(n- a)个数字的众数仍为x。 根据以上推论,记数组首个元素为n1,众数为x,遍历并统计票数。...数组中出现次数超过一半的数字 * 题目描述:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数 * 字。如果不存在则输出 0。...count+1,与之后的数进行比较,相等则+1,否则—1, * 最后进行校验是否超过长度的一半。

    42860
    领券