IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

数学之美:《社交网络》中Facemash算法分析

标点符 2012-07-12 22:49:20 累计浏览 7,083 次
本机暂存

    在电影《社交网络》的开始有这么一段,扎克博格由于被女友甩了,所以需要做一个网站(www.facemash.com),用来推选哈佛最漂亮的女生。网站的逻辑非常的简单,就是系统从照片库中随机挑出两幅女生照片,选择两者较“美”者。就是这么一个网站在上线两小时(周末凌晨两点到四点)内点击量达到了2万2千次,从而导致了哈佛网络的瘫痪。(备注:最近华中科技大学女生的照片也被类似的放到了网上评比,并且使用山寨的域名www.hust-facemash.com)

    信息的关注应该注意到,上述功能中涉及到一个排名规则,是由扎克博格那位同学提供的,他把公式写在了窗户上,如下截图:

    原图已失效

    上面的公式主要作用作用是用来对进行女生的分数进行评比,从而确定哪些是最优质女生。不过让人遗憾的是电影中给出的这个公式是错误的公式,真正的公式应该如下:

    原图已失效

    即分数线下方是1+10的幂次,而非10的倍数。上诉的排名公式并非扎克博格等人原创,而是出自匈牙利裔美国物理学家Arpad Elo,这算法叫作: Elo Rating ,最初应用于国际象棋排名,现在也广泛应该于足球、篮球等运动。中文称为等级分排名。

    下面就来对算法进行解读,Arpad Elo认为:

  • 参赛选手在每次比赛中的表现成正态分布;后来普遍认为Logistic(逻辑斯蒂)分布更为合理。
  • 在一局比赛中,赢的一方被认为表现较好,输的一方被认为表现较差;若平局,则双方表现大致相当。
  •     公式中出现的

        Ea/Eb为选手A/B的期望值,即A/B选手获胜的概率。当选手A和B进行比赛时,可根据公式算出两选手的期望表现。

        Ra/Rb为选手A/B当前的等级分排名。

        如果选手的表现比期望要好,那么此选手的排名应该上升。相反,若表现不如期望,则排名会下降。

        原图已失效

        Sa为选手A本局的得分(1或0),K为常数,数值越大比分变动越快,在大师级象棋赛中通常取16。用这个公式来计算出选手A本局比赛后的等级分排名。

        另外关于Logistic的分布图如下:

        原图已失效

    同分类推荐文章

    1. Four Levels Of Customer Understanding (2026-05-22 21:00:00)
    2. 除法的意义 (2026-04-12 20:52:17)
    3. 第五章:共识算法 (2026-03-18 08:00:00)

    查看更多 算法 文章 →

    建议继续学习

    1. 为什么算法这么难? (累计阅读 12,324)
    2. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,531)
    3. 加州求职记 (累计阅读 11,449)
    4. 谷歌(Google)2011年校园招聘笔试题 (累计阅读 9,523)
    5. 最常被程序员们谎称读过的计算机书籍 (累计阅读 9,084)
    6. 再谈“我是怎么招聘程序员的” (累计阅读 8,724)
    7. 使用python来抓取新浪的IP数据 (累计阅读 8,320)
    8. 如何在面试中发现优秀程序员 (累计阅读 8,193)
    9. IBM面试记 (累计阅读 7,306)
    10. 谈谈在校程序员技能培养 (累计阅读 7,041)