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

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://q.cnblogs.com/q/36448/

转载于:https://www.cnblogs.com/softidea/p/7008311.html

朋友圈的人脉关系的算法相关推荐

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

    大家一起讨论一下啊!最短路径? 1.一度人脉:双方直接是好友 2.二度人脉:双方有一个以上共同的好友,这时朋友网可以计算出你们有几个共同的好友并且呈现数字给你.你们的关系是: 你->朋友-> ...

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

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

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

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

  4. 人脉关系大检阅 chuangye

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

  5. “凡事不发朋友圈的人,都是过的不好的人”你认同这句话吗为什么?

    我不认同凡事不发朋友圈的人,都是过得不好的人?恰恰相反,凡事不发朋友圈的人,大部分都是过得很好的人! 本人大约是在2012年开始接触微信,之前跟老板开车,好像老板娘因为充话费还是办业务,送了一台智能机 ...

  6. 原来发朋友圈还有这讲究,难怪我的朋友圈没人看

    点击上面↑「爱开发」关注我们 每晚10点,捕获技术思考和创业资源洞察 当你想要放弃的那一刻,想想当初为什么坚持走到了这里 1.朋友圈的定位 对于时常发朋友圈的人来说,微信朋友圈好比是我们店面,店面装修 ...

  7. 用python每天发朋友圈的人_每天都发朋友圈的人是什么心态?

    突然的更新! 看到有朋友说想要我室友的表情包,作为一个负责任的答主,我当然是满足你们这群小妖精啦! 下面是我紧急去翻了她近一个月朋友圈收的表情包,喜欢的自己抱走鸭! --------------以下是 ...

  8. 国际顶刊《PNAS》:爱发朋友圈的人,更容易长寿

    点上面关注我们,每日获取前沿新知 近几十年来,智能手机和网络的普及率越来越高,与此同时,"朋友圈"应运而生. 在这个朋友圈里,有人十分活跃,而也有些人是"国家级潜水运动员 ...

  9. 不停刷朋友圈的人_有些人一直发朋友圈是什么心态

    我们每个人都有智能手机,手机中也必不可少的有微信,而微信的朋友圈是了解朋友最新动态的一个快速的渠道,不过现在发朋友圈的越来越少了,但是有一些人天天发朋友圈天天被他刷屏,而且还不是发广告的,这些人是一种 ...

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

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

最新文章

  1. python的四种内置数字类型_浅析Python数字类型和字符串类型的内置方法
  2. 从源码分析DEARGUI之draw的一系列操作
  3. python需要学多久才能找到工作-为什么Python适合初学者,一般要学习多久
  4. KR C 传统C语言的函数定义
  5. 作用域、执行环境、作用域链
  6. Node.js 官方文档中文版
  7. cm0中断优先级_转:第13章 FreeRTOS任务优先级修改及其分配方案
  8. linux core文件乱码,.net core在linux下图片中文乱码
  9. 【模块化开发】之 模块化概述
  10. linux报错之no space left on device问题分析
  11. nodejs做中间层_nodejs做中间层,向后端取数据
  12. 17 类的成员 私有
  13. 据说:一个线程性能相当于30%核心
  14. 查询工资最低的3名员工的职工工号、姓名和收入_2018年31省最低工资排名!武汉工资低于这个数就违法!...
  15. 协作多智能体强化学习中的回报函数设计
  16. Tomcat+Servlet面试题都在这里
  17. lede做无线打印服务器吗,OpenWrt/PandoraBox/LEDE做打印服务器连接HP1020问题汇总
  18. 微服务SpringBoot整合Jasypt加密工具
  19. 为什么计算机无法访问u盘,打开U盘后为什么提示拒绝访问 打开U盘后提示拒绝访问原因...
  20. 从学校,到字节跳动,追忆似水流年

热门文章

  1. win10电脑桌面透明便签_win10系统在桌面添加透明便签的操作方法
  2. 1.2 DICOM成像协议剖析
  3. MATLAB制作简易小动画入门详解
  4. 交换机芯片vlan管理
  5. 硬件工程师面试基础知识点
  6. FFMPEG详解(完整版)
  7. JAVA之CRC校验算法
  8. 2022年面试工具篇Jmeter接口面试题及答案
  9. matlab函数句柄介绍
  10. 如何手动配置IP地址