Facemash 算法 [已关闭]

2022-08-30 20:21:24

有谁知道马克·扎克伯格(Mark Zuckerberg)在他的facemash网站上实现的facemash算法吗?http://www.thecrimson.com/article/2003/11/19/facemash-creator-survives-ad-board-the/

最好在PHP和MySQL中。


答案 1

enter image description here

更新:

正如我在评论中所说,我已经将这个算法添加到我的新网站上。起初,它似乎工作得很完美。但是在一些奇怪的输入之后,一些奇怪的结果开始形成。

在调试时,我发现我做错了什么。当获得2个节点之间“直接关系”(也用于间接关系)的分数时,我将分数加在一起。这是错误的,直接关系的分数应该用-1到+1表示,其中:

-1 = lost everything 
+1 = won everything

因此,如果A赢了8次B,B赢了2次给A,得分应该是:

(A wins) 8 + (B wins) 2 = (total matches)10
(delta of -1 and +1 =) 2 / (total matches)10 = (points per win) 0.2
Score of A vs B = (points per win) 0.2 * (wins) 8 - 1 = 0.6
Score of B vs A = (points per win) 0.2 * (wins) 2 - 1 = -0.4

另外,我在最初的解释中没有提到这一点,但它都是关于三角形的。因此,当我们查看间接分数时,您不需要超过1跳。


答案 2

我不知道现实世界的网站实际上使用了什么算法,但他们在电影窗口中写的东西是基于Elo评级系统,该系统起源于国际象棋世界,现在也用于许多其他游戏。


推荐