朋友圈的人脈關係的演算法

2021-09-07 12:09:50 字數 1626 閱讀 2162

大家一起討論一下啊!最短路徑?

1、一度人脈:雙方直接是好友

2、二度人脈:雙方有乙個以上共同的好友,這時朋友網可以計算出你們有幾個共同的好友並且呈現數字給你。你們的關係是: 你->朋友->陌生人

3、三度人脈:即你朋友的朋友的朋友就是這個陌生人。你們的關係是 你->朋友->朋友->陌生人

4、四度人脈:比三度增加一度,你們的關係是,你->朋友->朋友->朋友->陌生人

6、六度人脈:你->朋友->朋友->朋友->朋友->朋友->陌生人

根據六度人脈理論,世界上任意兩個人之間的聯絡間隔不超過6個人。不過我在朋友網上見過兩個人之間間隔7個人的。

就是這樣簡單的一張圖,乙個簡單的功能,幾秒鐘內算出你與任意乙個人之間的間隔聯絡。可是實現起來容易嗎?不容易,一點也不容易。明旭今天就試著剖析一下朋友網人脈地圖背後的實現演算法。

首先分析一下需要運算的量,和使用者能夠接受的範圍。

使用者能夠接受的的範圍,10秒以內,超過這時間就太長了。

需要運算的量,

按平均乙個人有250個好友來算。

計算是否一度人脈需要的運算量,用你的250個好友分別與這個人的250個好友逐一對比,這個需要對比的數量是 250*250=62500次,還得增加乙個計數器,累計你們之間有幾個共同好友。

計算是否二度人脈需要的運算量,就更大了,伺服器要掃瞄你250個直接好友的每人250個好友面與這個人250個好友進行對比。對比一遍下面需要的

最小運算量是:250*250+1 =62501次,

最大運算量是:250*250*250=15625000次 //二度人脈比較運算最高已經達到千萬次了。

三度人脈需要的運算量是:

最小運算量是:250*250*250+1=15,625,001次

最大運算量是:250*250*250*250=3,906,250,000次 //約39億次

四度人脈需要的運算量是:

最小運算量是:250*250*250*250+1=3,906,250,001次

最大運算量是:250*250*250*250*250=976,562,500,000次  //約九千億次了

五度人脈需要的運算量是:

最小運算量是:250*250*250*250*250+1=976,562,500,001次

最大運算量是:250*250*250*250*250*250=244,140,625,000,000次  //約240萬億次了

六度人脈需要的運算量是:

最小運算量是:250*250*250*250*250*250+1=244,140,625,000,001次

最大運算量是:250*250*250*250*250*250*250=61,035,156,250,000,000次  //約6億億次了

1,125,899,906,842,624

6億億次是個什麼概念呢,就是說把這每個對比運算做為乙個位元組儲存的話,需要54pb的硬碟來儲存了,如果是配備1tb硬碟的台式電腦,需要5400臺個人電腦來儲存了。

現在有點概念了吧。

這麼龐大的運算量,要在10秒種之內運算出來實在是乙個難題,那麼朋友網是如何在幾秒鐘之內運算出你與任意兩個人之間的關係了,這裡面到底要用到一些什麼樣的演算法呢

朋友圈的人脈關係的演算法

大家一起討論一下啊!最短路徑?1 一度人脈 雙方直接是好友 2 二度人脈 雙方有乙個以上共同的好友,這時朋友網可以計算出你們有幾個共同的好友並且呈現數字給你。你們的關係是 你 朋友 陌生人 3 三度人脈 即你朋友的朋友的朋友就是這個陌生人。你們的關係是 你 朋友 朋友 陌生人 4 四度人脈 比三度增...

朋友圈的人脈關係的演算法

大家一起討論一下啊!最短路徑?1 一度人脈 雙方直接是好友 2 二度人脈 雙方有乙個以上共同的好友,這時朋友網可以計算出你們有幾個共同的好友並且呈現數字給你。你們的關係是 你 朋友 陌生人 3 三度人脈 即你朋友的朋友的朋友就是這個陌生人。你們的關係是 你 朋友 朋友 陌生人 4 四度人脈 比三度增...

如何建立強有力的人脈關係?

常言道 10多歲比智力,20多歲比體力,30來歲拼專業,40歲拼人脈 年紀再大些要拼什麼我就不知道了,但過了60歲肯定重新拼體力,活著比什麼都重要,哈哈。說到人脈關係,現在任何人都相信它越來越重要,至少我身邊大多數朋友都把拓展人脈當成一件重要的事情來抓 包括我自己 剛好30來歲有點經驗和積累,還有體...