`

《社交网络》中Facemash算法分析

 
阅读更多

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

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

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

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

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

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

公式中出现的

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

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

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

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

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

分享到:
评论

相关推荐

    Facemash-源码.rar

    7. 服务器架构:虽然原始Facemash可能只是一个简单的单服务器应用,但源码分析可以让我们了解到早期社交网络是如何逐步演化为分布式系统的,包括如何处理用户登录、如何存储和检索用户信息等。 通过深入研究...

    Facemash:马克·扎克伯格(Mark Zuckerberg)设计的哈佛臭名昭著的Facemash的克隆

    该网站是电影“社交网络”中显示的网站“ Facemash”的实现。 它具有相同的外观。 它使用经典的Elo公式。 可以将要洗牌的照片存储在同一文件夹中名为facepics的文件夹中。 图片的格式应为“ image(number).jpg”...

    beautiful-girls:比较喜欢《社交网络》里的Facemash,自己动手做了一个

    beautiful-girls##(1)写在前面 看了《社交网络》之后,觉得Facemash这个点子很有意思,就产生了自己仿制一个的想法。奈何当时比较菜(比现在还菜),所以迟迟没有动手。后来接触了spring系框架之后,决定把这个...

    FaceMash:哈佛大学马克·扎克伯格制作的著名网络应用程序的实现

    面糊哈佛大学马克扎克伯格制作的著名... 要将图像加载到数据库中,只需将图像移动到 /img 文件夹中,然后在浏览器中导航到 facemash/zing。 Zing 是一个脚本,它将执行并将图像路径拉入数据库。 你已经启动并运行了!

    react-Facemash使用React实现最喜欢用户投票的功能

    在本文中,我们将深入探讨如何使用React框架来构建一个类似于"Facemash"的应用,它具有让用户投票选择他们最喜欢的用户的特性。React是一个由Facebook维护的开源JavaScript库,专门用于构建用户界面,尤其适用于构建...

    新世纪英语专业综合教程(第二版)第4册Unit3PPT课件.pptx

    知识点1:社交网络的起源 本课件中,马克·扎克伯格和埃德瓦多·萨维林讲述了他们如何创建Facebook的故事。他们解释了为什么人们会涌向Facemash网站,为什么Facemash网站能够吸引如此多的人气。他们认为,人们之...

    facemash-clone

    罗素的Facemash克隆 注意:该项目包含来自两个较旧版本库的更新/当前代码: Dopple(主要是index_non_dopple.php)和 (作为/ non-dopple /文件夹)。 在那些GitHub存储库中(例如“ ELO-Node-Regular-Voting-App”...

    facemash:使用功能强大的ExpressJS构建完整的NodeJS MVC框架

    这个想法是要在ExpressJS的上下文中演示自定义MVC架构。 首先,我于2013年在大学里用php开发了“ facemash”。2016年初,我对NodeJS产生了兴趣,并决定在功能强大且不受人欢迎的expressJS之上构建自定义的MVC框架...

    faceclash::eyes:Faceclash是Mark Zuckerberg于2003年创作的Facemash的翻拍

    我在2016年10月中旬至2016年11月间制作的游戏的源代码,使我的学校有些受激。 它最初是使用SQL,AJAX和Elo评分算法进行的学习实验。 这款游戏的灵感来自马克·扎克伯格(Mark Zuckerberg)的《 Facemash》(2003年)...

    Facebook An accidental billionair

    - **发展过程**:书中详细记录了Facebook从哈佛大学的一个小项目逐步成长为全球最大的社交网络平台的过程。 **2. 埃杜阿多·萨维林的角色** - **早期投资者**:萨维林不仅是Facebook的共同创始人之一,也是最早的...

    hotshottt:Facemash for Dribbble,在 Sinatra

    Hotshottt 是用于 Dribbble 投篮的 Facemash。 编码 这里是龙,孩子们。 这里的 Ruby 代码很丑陋。 这是我的第一个 Sinatra 应用程序之一。 所有前端 HTML/CSS 都是由 @nbashaw 编写的。 应用程序 版权 版权所有 (C)...

    the accidental billionaries

    这本书揭示了IT行业的传奇故事,特别是互联网社交网络巨头Facebook是如何从哈佛大学的一个小项目发展成为全球性现象的。 首先,我们要了解Facebook的起源。扎克伯格在2004年创建了Facebook,最初名为“Facemash”,...

Global site tag (gtag.js) - Google Analytics