必威体育Betway必威体育官网
当前位置:首页 > IT技术

六度空间

时间:2019-10-15 13:41:05来源:IT技术作者:seo实验室小编阅读:55次「手机版」
 

六度空间

六度空间

一个数学领域的猜想,名为Six Degrees of Separation,中文翻译包括以下几种: 六度分割理论或小世界理论等。 理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个中间人你就能够认识任何一个陌生人。也叫小世界理论。(百度

这个理论以前就听说过了,现在学了图论之后,感觉也就那样,好像没那么神奇。在现在每个人,至少大概能直接联系到的人能有100人吧?特别是有了微信qq等社交网络之后。老一辈的可能没那么多,怎么说也得有50人可以直接联系的到吧。

然后人是一群群分布的,每个人都有不一样的群,但是每个人的群之间或多或少有直接或间接的联系,群与群之间有不同程度的亲密度。

但是总的来说,每个人可以通过自己的群体认识到更多的群体更多的陌生人,从而导致指数增长,可以很快的在5-6层之间覆盖到好几十亿人。粗略算一下每一层一个人可以直接联系50个新人加入大群,6层。50的6次方等于15625000000一百多亿啊!

在这里插入图片描述

在这里插入图片描述

现在世界总人口75亿,完全可以在6步之间找到一个人。

理论归理论,但是现实找一个陌生人还是有点难度的。要看在什么情况,在网络上就简单,但是在没有网络交通也不发达的地方就难了。而且,你也不能让每层的人都去找,你只能像路由算法那样,通过一个个人传递,每次把信息传到他认为离目标最近的人,最终到达目标。

下面用Python简单模拟了下六度空间

用广搜来确定走了几层

逻辑上有点不符合实际,每个人的交际圈,就是每个人能直接联系的人,是随机生成的,所以每个人所组成的群体,群体与群体之间的亲密度差不多,都认识的人数量(重复的人)也差不多。所以大概通过每个人新认识的人大概可能也就20多30几个吧。20的n次方。

import random
from queue import Queue


def bfs(start, graph):
    queue = Queue()
    queue.put([start, 0])
    vis = [False for _ in range(len(graph))]
    vis[start] = True
    maxDegree = 0
    while not queue.empty():
        node, degree = queue.get()
        maxDegree = degree
        for nextNode in graph[node]:
            if not vis[nextNode]:
                queue.put([nextNode, degree + 1])
                vis[nextNode] = True
    return maxDegree


# 模拟一万个人空间的六度空间
# 每个人大概可以与50-100个人形成直接联系,因为会有重复,每个人实际上直接进入下一层的人数小于50-100人
n = 10000
min_max = (50, 100)
# 建立邻接表
graph = [[] for _ in range(n)]
for i in range(n):
    # 每个人随机产生50-100之间的联系人
    m = random.randint(min_max[0], min_max[1])
    # 联系人从10000个人里面随机选出m位联系人
    l = list(range(n))
    random.shuffle(l)
    for v in l:
        if v != i:
            graph[i].APPend(v)
        if len(graph[i]) == m:
            break

print('Six Degrees of Separation')
degree = bfs(0, graph)
print('max degree is: %d' % degree)

运行结果:

在这里插入图片描述

相关阅读

QQ空间解封 申诉技巧与防骗攻略。

空间解封,尤其永久封禁,相当不靠谱,大伙儿请珍重。查找限制、空间封禁,QQ冻结,此类可以解,笔者相信;永久封禁的空间,尤其是自己不能进的

命名空间(解决了为什么使用using namespace std;的疑惑

命名空间是用来组织和重用代码的编译单元。NameSpace(名字空间),是为了解决命名冲突的问题而引入的概念。通过使用 namespace xxx(就

浅析如何为网站开通腾讯认证空间 积累人气

根据相关资料显示,去年也就是2012年腾讯QQ同时在线的用户数突破一亿七千万。请分清楚,是“同时在线”。那就更别说QQ注册

C盘空间越来越小怎么办?

C盘是系统分区,不管是WindowsXP、Win7、Win8、Win10系统,默认系统分区都是C盘。电脑使用越久,C盘空间会被各种缓存和临时文件慢慢塞

Windows内存体系(1) -- 虚拟地址空间

一、实模式下内存分配机制 在8086或者80186以前,要运行一个程序,操作系统会把这些程序全都装入内存,程序都是直接运行在物理内存上

分享到:

栏目导航

推荐阅读

热门阅读