2012-11-11 21 views
1

有沒有辦法,(有效與否)找到給定的兩個人X和Y在Facebook上,這樣定義的數字。如果X和Y是朋友,那麼1.否則,如果X有朋友是Y的朋友,則2.否則,如果X是朋友Y的朋友的朋友,那麼3.等等分離度

說明:
這樣做的程序需要在Facebook上輸入任何兩個人的姓名X和Y. 然後,如果他們在eachothers朋友列表,程序輸出1.
如果不是,但他們每個人都有一個共同的朋友,然後輸出2.
如果他們不是朋友,並沒有一個共同的朋友,但每個人都有一個朋友誰是朋友,那麼輸出3.
如果不是,但X有一個朋友X,Y有一個朋友Y,X和Y有一個共同的朋友,那麼輸出4.等等......

如果朋友之間沒有任何聯繫,輸出爲0.

+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

+0

我可以下載這個 Rajnish

+1

@Rajnish確定它包含在JS SDK中,但沒有記錄 – phwd

+1

我嘗試瞭解代碼,但無法顯示結果或錯誤以及:(我不能告訴你,但我告訴你,你能給我的例子它?? ?? – Rajnish