大家一起讨论一下啊!最短路径?

1、一度人脉:双方直接是好友
2、二度人脉:双方有一个以上共同的好友,这时朋友网可以计算出你们有几个共同的好友并且呈现数字给你。你们的关系是: 你->朋友->陌生人
3、三度人脉:即你朋友的朋友的朋友就是这个陌生人。你们的关系是 你->朋友->朋友->陌生人
4、四度人脉:比三度增加一度,你们的关系是,你->朋友->朋友->朋友->陌生人
5、五度人脉:你->朋友->朋友->朋友->朋友->陌生人 ,像上面这张图片表示的就是一个五度人脉关系。
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秒种之内运算出来实在是一个难题,那么朋友网是如何在几秒钟之内运算出你与任意两个人之间的关系了,这里面到底要用到一些什么样的算法呢???讨论啊!

转载于:https://www.cnblogs.com/wanghl/archive/2012/05/18/2507202.html

大家一起讨论一下朋友网的人脉关系算法是怎么实现的相关推荐

  1. 人脉关系大检阅 chuangye

    人脉关系大检阅 zhuanzai 作者:曹志士 日期:2010-7-15 联系方式:Anewczs@gmail.com http://www.kaiguanxi.net/ 今天参加CSDN CTO俱乐 ...

  2. 人际关系-《别独自用餐》书中的精髓:通过有效的社交法则,改变社交行为固有模式,建立更有价值的人脉关系,从而获取更大成功。

    <别独自用餐>书中的精髓:通过有效的社交法则,改变社交行为固有模式,建立更有价值的人脉关系,从而获取更大成功. "社交"曾是个不好的字眼,却成了当今社会的通用语.它反映 ...

  3. 利用市场推广快速建立人脉关系

    本系列文章之所以叫市场推广宝典,纯粹是做标题党做习惯了,没别的意思.本人并非高手,新丁一个,请大家不要误会.另外上一篇文章发布后,很多朋友给予了肯定和支持,在此表示感谢.特别是牟长青与贾思军同学,与俺 ...

  4. 每天早晨的问候能够彻底的改善你的人脉关系

    每天早晨来上班,一天最好的时候,结果大家都是死气沉沉的,来了第一件事情就是赶紧开电脑而不是互相打招呼.而工作的时候,又都是在聊工作的事情,而工作难免会带一些情绪在里面,使得沟通效果根本就不明显.有些时 ...

  5. 你人脉网中应该有的10种人

    你人脉网中应该有的10种人 mankeep是现在很流行的一个词,我们译为"人脉经营",根据发音我们便读为"脉客".善于使用人脉.经营人脉的人就是脉客.人脉的重要 ...

  6. 人脉存折 五个朋友决定你的富贵

    人脉存折 五个朋友决定你的富贵 url:http://www.mesdn.net/blog/index.php?m=06&y=09&entry=entry090611-091443 如 ...

  7. 用python每天发朋友圈的人_心理学:我们要远离那些,每天都发朋友圈的人

    小潘丨情感美文系列小潘谈情说爱 签约作者原创 01 闲下来的时候,刷刷朋友圈成我们生活的常态.看着朋友在朋友圈秀恩爱,晒晒娃,发发牢骚吐吐槽,可谓是不联系也没有忘记.可是随着时间的推移,有的人慢慢对朋 ...

  8. 一生中需要的10种人脉

    mankeep是现在很流行的一个词,我们译为"人脉经营",根据发音我们便读为"脉客".善于使用人脉.经营人脉的人就是脉客.人脉的重要性越来越凸显出来,斯坦福研究 ...

  9. 杨焘鸣 杨涛鸣:怎样建立自己的人脉网络

    ​建立人脉有四条规则要注意. 一.在帮助自己之前,最好先去帮助别人一位好友说: 人在社会中应该懂得"舍"在你想要从别人那里获得一些东西之前,最好先有所付出,才能体现出你的价值. 你 ...

最新文章

  1. 32岁程序员面试被拒:比又穷又忙更可怕的,是2020年你还不懂...
  2. mybatis教程--查询缓存(一级缓存二级缓存和整合ehcache)
  3. 【CyberSecurityLearning 附】使用PHP语言搭建简单的论坛:注册功能实现+PHP个人中心设计+简单留言板
  4. CXF WebService整合Spring
  5. 关于微信红包的架构思考
  6. C语言结构体占用内存总结
  7. 使用spool命令从Oracle导出数据
  8. Flask入门之上传文件到本地服务器
  9. 《团队激励与沟通》第 2 讲——激励的方法与应用 重点部分总结
  10. Ubuntu 16.04 LTS误删系统内核或驱动导致无法上网解决方案
  11. 【基础】弹出框的处理(五)
  12. 利用python中的csv库读写csv文件
  13. 考研 英语一 大作文-图画作文 (二)---第二段写作攻略
  14. C语言中 整数除法 向上取整的数学证明
  15. 【VB+数控原理与系统】数控原理与系统课程设计刀具半径补偿直线-直线VB模拟软件实现
  16. 看不起java_程序员铁律,用Tab的瞧不起用Space键的,用C语言的瞧不起用Java的!...
  17. 软硬整合:开发一款VR大作背后的技术支撑
  18. Arduino与Proteus仿真实例-继电器驱动仿真
  19. c语言编程入门题库,级程序设计基础题库(c语言)(..更新).doc
  20. 畅销图书排行榜TOP10(2009上半年)

热门文章

  1. linux netstat
  2. vim emmet插件
  3. Java字符串基本认识
  4. vSphere 7融合Kubernetes,构建现代化应用的平台
  5. 一键就绪的VMware Cloud Foundation
  6. Java虚拟机学习总结(1)——JVM内存模型
  7. 消息中间件学习总结(16)——17 个方面,综合对比 Kafka、RabbitMQ、RocketMQ、ActiveMQ 四个分布式消息队列
  8. Spring MVC学习总结(17)——SpringMVC之接口规范与Controller规范
  9. Java基础学习总结(95)——Java反射主要用来干什么?
  10. AJAX解惑篇(转)