分离度

时间:2012-11-11 19:57:54

标签: api facebook-graph-api

有没有办法,(有效或无效),在Facebook上给出两个人X和Y,找到这样定义的数字。如果X和Y是朋友那么1.如果X有一个朋友是Y的朋友,那么2.否则如果X是朋友Y的朋友的朋友,那么3.等等。

澄清:
执行此操作的程序将Facebook上任意两个人的姓名X和Y作为输入。 然后,如果他们在每个朋友的朋友列表上,程序输出1.
如果没有,但他们每个人都有一个共同的朋友,那么输出2.
如果他们不是朋友并且没有共同的朋友,但每个朋友都是朋友,那么输出3 如果没有,但X有一个朋友x,而Y有一个朋友y,而x和y有一个共同的朋友,那么输出4.等...

如果朋友之间没有联系,则输出0。

1 个答案:

答案 0 :(得分:5)

您正在寻找名为degree of separation的内容。

填写每个案例的唯一方法是列出尽可能多的朋友朋友的朋友......基本上尽可能接近你的应用程序覆盖Facebook图表。然后,您将Facebook用户表示为图表上的节点,并计算从A到B的路径。因此,除非您拥有来自Facebook的所有数据,否则完全正常工作的应用程序是不可能的。假设你这样做,你可以使用Dijkstra's algorithm

对于淡化版本,您只能检查您的朋友,从中制作图表并找到大于1的任何度数。

您需要查询

  • me/friends用于初始化图表的构建

  • SELECT uid1, uid2 FROM friend WHERE uid1 = ' + uid1 + ' AND uid2 IN (SELECT uid2 FROM friend WHERE uid1=me())用于查找您的哪些朋友在网络中连接

如果你只是需要这个来显示当前用户的用户路径,那么JS SDK中就有一个隐藏的插件http://www.fbrell.com/saved/12bd86306fe69a2af6134fe2a9e645e3

<fb:degrees href="http://facebook.com/zuck">

Degrees of separation