六度空间理论及其应用 PDF
数据结构六度空间理论
数据结构基础
六度分隔的图模型
六度分隔理论可以用 图模型来表示。在这 个模型中,每个人都 是一个节点,人与人 之间的关系是边。根 据六度分隔理论,任 意两个陌生人之间最 多通过6个中间人就 可以建立联系。这个 理论可以用图的最短 路径问题来描述
数据结构基础
最短路径算法
在图模型中,最短路径是指从一个节点到另 一个节点路径中边的数量最少的那条路径。 在六度分隔理论中,最短路径问题就是寻找 任意两个陌生人之间的最短路径,即通过的 中间人数量最少的那条路径。这个问题可以 使用图论中的最短路径算法来解决
数据结构六度空间理 论
xxx
1 引言 2 数据结构基础 3 六度空间理论的实现
PART 1
引言
1
1
六度空间理论,又被称为六度分隔理 论,最早由美国的社会心理学家米尔
格朗提出
这个理论的核心思想是,通过不超过 六个中间人,任何两个完全陌生的人
都可以建立联系
2
3
这个理论在社交网络、信息传播和推 荐系统等领域有着广泛的应用
3
六度空间理论的实现
PART 3
六度空间理论的实现需要使用到一些关键 的数据结构和算法
其中最重要的数据结构是图,而最关
x
键的算法是最短路径算法
在实际应用中,可以通过编程语言来实现 这些算法和数据结构
例如,可以使用Python的NetworkX库来实 现图结构和最短路径算法
六度空间理论的实现
编程实现
应用实例:社交网络推荐系统
六度空间理论在社交网络推荐系统中有着广泛的应用。 通过分析用户之间的社交关系,我们可以发现用户之间 的最短路径,并根据这些路径来推荐可能感兴趣的用户 或内容。例如,在微博等社交媒体平台上,我们可以分 析用户关注的人、转发的人以及互动的人之间的关系, 找出最短路径,并根据这些路径来推荐可能感兴趣的用 户或内容。这样可以帮助用户发现更多有价值的信息和 人脉资源,提高社交网络的使用体验
六度空间理论及其应用
六度空间理论及其应用一、六度空间理论的背景以及基本定义:1.六度空间理论简述:六度空间理论(Six Degrees of Separation)是一个数学领域的猜想,中文翻译包括以下几种:六度分割理论、六度空间理论或小世界理论等。
六度空间理论的实质即为:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
这就是六度空间理论,也叫小世界理论。
二、六度分割的提出:上世纪60年代,美国哈佛大学的社会心理学家米尔格伦提出了“六度分割”的理论。
简单来说,“六度分割”就是在这个社会里,任何两个人之间建立一种联系,最多需要六个人(不包括这两个人在内),无论这两个人是否认识,生活在地球上任何偏僻的地方,他们之间只有六度分割。
三、六度空间理论应用:1. 六度空间理论的实验基础:(1)寻找马龙·白兰度的过程:有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
(2)耶鲁大学教授设计的连锁信件实验:20世纪60年代,耶鲁大学的社会心理学家米尔格兰姆就设计了一个连锁信件实验。
他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人,信中放了一个波士顿股票经纪人的名字,信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。
朋友收信后照此办理。
最终,大部分信在经过五、六个步骤后都抵达了该股票经纪人。
六度空间的概念由此而来。
这个连锁实验,体现了一个似乎很普遍的客观规律:社会化的现代人类社会成员之间,都可能通过“六度空间”而联系起来,绝对没有联系的A与B是不存在的。
六度空间理论
六度空间理论通过上课,我体会较深的是六度空间理论。
在课后我仔细了解了这个理论,理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
这就是六度分割理论,也叫小世界理论。
我个人的理解,它改变了以往人们对社会关系的理解,以往在考虑人与人之间的关系时更多是点对点的,单向的金字塔式的层级,而网络尤其是微博客的兴起打破了这种论断。
人与人之间双向的联系大大交换,点对点的单项练习转换成网络式的双向联系,复杂程度大大增强,由以往的在电视报纸杂志等顶端媒体大量投放广告的自上而下的营销模式开始转向以少数人际枢纽投放关键信息横向扩散的方式。
这也是微博客营销兴起的一个重要契机。
接下来就要分析如何投放信息才能使这种信息有效的传播到目标客户之上。
首先考虑信息传播的有效性问题,对于一般的微博用户而言,有两类信息的有效程度更高一些,一种是自己比较熟悉的人对某产品的实际使用后的个人体验,依照发信息人与接受信息者之间的亲密程度不同,越亲密则影响权重越大。
另外一种则是对接收信息人影响较大的所谓微博名人们,这里面又分两种因素,一种是接收信息者对发信息人个人人品的信任程度较高,另一种则是接受信息者对发信息人的专业水平信任程度较高,以此两者作为横纵坐标,则处于坐标系右上方位置的信息传播者信息有效权重更大,想要进行微博营销时在选择信息投放目标时要注意到这一点。
考虑完微博营销的有效性问题后,还要考虑进行营销时付出的相应成本,一般来说,那些粉丝众多的微博大V们的要价不菲,而由于他们的名人性质,对很多专业的购买者来说,他们的消息不能给他们提供足够专业的信息,对于微博营销来说,专业信息发布者更加值得重视,一方面,他们的要价不会太过离谱,另一方面,他们的信息投放有效程度更高,他们的粉丝中实际的潜在购买者的比例往往远高于普通的大V们,而通过这些购买者实际购买的信息二次传播,往往能收到更加良好的效果。
六度空间理论
12、葱蒜定律:太拿自己当根葱的人,往往特别善于装蒜。
13、流言定律:流言是写在水上的字,注定不持久,但是又传得飞快。
14、害怕定律:生手怕熟手,熟手怕高手,高手怕失手。
15、傻瓜定律:把人家都当傻瓜,那一定是自己傻到了家。
16、吃亏定律:只要你不认为自己吃了亏,别人也就一定没占着便宜。
不怕被人利用,就怕你没用。
5、成就定律:
如果你没有成就,你就会因平庸而没有朋友;如果你有了很大成就,你就会因卓越而失去朋友。
6、馅饼定律:当天上掉下馅饼的时候,小心地上也有个陷阱在等着你。
7、错误定律:别人都不对,那就是自己的错。
8、效果定律:在伤口上落泪和在的往往不是陌生人的飞黄腾达,而是身边的人飞黄腾达。10、难过定律:为你的难过而快乐的,是敌人;为你的快乐而快乐的,是朋友;为你的难过而难过的,就是那些该放进心里深处的人。
六度空间理论,你可以通过最多六个人认识世界的任何人。
1、方圆定律:人不能太方,也不能太圆,一个是会伤人,一个是会让人远离你,因此人要椭圆。
2、错误定律:人们日常所犯的最大错误,是对陌生人太客气,而对亲密的人太苛刻。
3、口水定律:
当你红得让人流口水时,关于你的口水就会多起来。
4、利用定律:
17、风雨定律:事实证明,感情经得起风雨,却经不起平淡;友情经得起平淡,却经不起风雨!
精选-什么是六度空间理论-范文资料
什么是六度空间理论“六度空间”理论又称作六度分隔SixDegreesofSeparation理论。
这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”该理论产生于20世纪60年代,由美国心理学家米尔格伦提出。
六度分隔/六度空间理论你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
社会网络其实并不高深,它的理论基础正是“六度分隔”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
你也许认为这只是一个特例,但是1967年哈佛大学心理学教授StanleyMilgram做过的一次连锁信实验,也得出这一结论。
现代版本则是哥伦比亚大学今天用E-mail进行的同样实验。
有科学家甚至从这个现象推演出一个可以评估的数学模型。
你也许不认识克林顿,但是在优化的情况下,你只需要通过六个人就可以结识他。
“六度分隔”说明了社会中普遍存在一些“弱链接”关系,但是却发挥着非常强大的作用。
有很多人在找工作时会体会到这种弱链接的效果。
这个理论用另一种方式阐述就更加惊人:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”这个玄妙理论引来了数学家、物理学家和电脑科学家纷纷投入研究,结果发现,世界上许多其他的网络也有极相似的结构。
比如,人际网络和WWW的架构几乎完全一样,通过超文本链接的网络、经济活动中的商业联系网络、生态系统中的食物链,甚至人类脑神经元、以及细胞内的分子交互作用网络,有着完全相同的组织结构。
6度空间理论
6度空间理论《6度空间理论》是将社交网络中人与人之间的联系称为“6度空间”,即一个人与全世界另外5个人之间的距离。
这一理论源自1967年美国作家雷弗拉明(Raymond Fraleigh)在《萨克雷内拉》(Sackville-Nalla)一书中的一段话:“我们生活在一个如此小的世界中,以至于每一个人都可以被连接到其他任何一个人,只要借助六个人之间的联系。
”美国前任总统奥巴马在他的国情咨文中也提到了“6度空间理论”,称其为联系一切的力量。
这一理论颇受人们关注,在网络社交技术发展迅猛的今天,这一理论在社会科学中也得到了广泛的应用。
如今,6度空间理论不仅仅是一个理论,它更多地表现为一种重要的人际关系科学,是认识社会结构的有力工具和方法。
社会网络分析就是一种应用6度空间理论的研究方法,它旨在探索社会网络中性别、地域、背景、关系距离等因素如何影响社会网络的结构,从而为组织决策、社会认知和沟通等提供重要的线索。
目前已有大量的研究表明,人与人之间的距离实际上很小,文化、距离、年龄都只是人际关系中比较小的因素。
研究表明,6度空间理论可以解释许多人际关系问题,可以改善社会层次结构,提高全球联系的效率,促进信息的流通以及改善组织的凝聚力等等。
当今社会,人与人之间的联系被社交网络技术所改变。
电子信息技术的发展迅速,贴心的电子服务,社交网络社区的出现,使得各种距离的人们可以瞬间取得联系,使6度空间理论得以实践。
比如,社交网络如Facebook,它拥有超过1亿用户,用户可以通过自己的社交网络来连接任何一个人,而这个连接通常只需要不超过6个步骤。
同时,现如今由于全球化的发展,越来越多的人喜欢利用社交网络的方式与外国的朋友们相互交流。
6度空间理论帮助我们更好地理解当今世界社交社会的复杂性和人际关系的多样性,提高了世界各国之间的联系。
它也为社会科学提供了强有力的研究手段,指导人们正确识别和使用社会网络,改善社会关系,促进全球沟通、交流和信息共享,以实现更好的全球治理效果。
六度空间理论
六度空间理论是作者莱曼在20世纪60年代初期创立的,也叫六度分隔理论。
莱曼将整个地球上的所有人和物划分成为六类:可以面对面谈话的人;可以通过电话谈话的人;可以在电报中谈话的人;可以在互联网上谈话的人;可以通过面对面、电话或电报谈话的人;可以通过电话、电报、电话谈话的人。
六种人之间的距离大约都是60英里(约合96。
4公里),如果两个人要见面,只要穿过这六个人就可以实现。
2、直接交往的范围越广,彼此之间越容易了解;反之则越不容易。
例如:两个外语学习班的学员,他们每天都能见面,而且对对方的国籍、学历、语言、爱好等各方面都非常熟悉,但他们不太可能成为朋友。
因为虽然每天见面,但他们很难了解对方,更谈不上成为朋友。
因为双方交往的范围仅限于双方所处的地区,而没有超出这一区域。
这正像古代希腊学者所说的:两个人生活在两个村子里,却不能成为朋友。
而“地球村”一词,就是由六度分隔理论衍生出来的。
一个人要想在一个企业立足生存下去,首先必须赢得自己直接部属的尊重与信任,因为再好的制度、措施,若得不到贯彻执行,仍是一纸空文。
同样,企业总裁要想增加收益,也必须获得自己直接部属的拥护和支持。
其次要赢得与你合作伙伴的支持,否则,你的事业很难成功。
合作伙伴包括技术供应商、顾客、银行、政府部门等,这些人的共同特点是与你存在着利益关系,因而也会有自身的利益需求,你们之间经常会出现矛盾冲突。
所以企业领导者必须设法消除他们的疑虑,沟通思想,消除隔阂,使之成为一个坚强的战斗集体。
否则,你的事业便难以顺利发展。
最后,还要争取你的亲朋好友对你的信任、支持与帮助。
3、产品或服务涉及到不同国家、民族、文化之间的关系。
例如:假如我们向美国人出售葡萄酒,欧洲人喜欢喝葡萄酒,日本人喜欢喝清酒。
你如何向他们推销?或许他们根本不想尝试新的口味。
所以,就需要对这三个市场进行细分。
你可以根据消费者的地理位置,对他们的饮食、习惯进行描述,并针对每一个市场进行营销,采取不同的方式方法,从而有效地推广产品,实现营销目标。
六度空间理论的原理及应用
六度空间理论的原理及应用1. 六度空间理论的原理六度空间理论是一种社交网络理论,它认为地球上的任何两个人之间,只需要经过六个层次的联系,就能够建立起联系。
这个理论最早由哈佛大学的心理学家斯坦利·米尔格兰姆提出,在社交学和心理学领域引起了广泛关注和研究。
根据六度空间理论,每个人都可以通过自己的社交网络,与其他人进行联系。
一个人的社交网络包括他的朋友、家人、同事等,而这些人又有自己的社交网络,以此类推。
通过这种方式,人们可以建立起“六度”关系,也就是通过六个层次就能够连接到其他人。
2. 六度空间理论的应用2.1 社交网络分析六度空间理论在社交网络分析中起到了重要的作用。
通过研究社交网络中的连接关系,我们可以更好地了解人们之间的联系和相互影响。
例如,在研究信息传播和疾病传播过程中,社交网络分析可以帮助我们预测信息或疾病在社交网络中的传播路径和速度。
2.2 推荐系统六度空间理论也被广泛应用于推荐系统中。
推荐系统根据用户的兴趣和历史行为,为用户提供个性化推荐。
利用六度空间理论,推荐系统可以通过分析用户在社交网络中的连接关系,向用户推荐他的朋友们喜欢的内容,提高推荐的准确性和用户的满意度。
2.3 营销策略六度空间理论为营销策略的制定提供了新的思路。
通过分析社交网络中的连接关系,企业可以选择适当的关键人物进行营销活动,以便更好地传播信息和提高产品的知名度。
例如,在微信朋友圈中,一条好的推广信息可以通过用户的分享扩散到更多的人群,形成良好的传播效果。
2.4 犯罪侦破六度空间理论对于犯罪侦破也具有一定的指导意义。
在犯罪侦破过程中,警方可以通过分析嫌疑人和受害人的社交网络,找出两者之间的联系,进而追查犯罪嫌疑人。
例如,通过分析电话通话记录或社交媒体的关系网,警方可以追溯到犯罪嫌疑人与受害人之间的联系。
2.5 政府决策六度空间理论也能够为政府决策提供参考。
例如,在疫情防控中,政府可以通过分析社交网络中的传染路径,制定有针对性的防控措施。
六度空间
• 那么你和你要找的那个TA又有哪些关联? 是否远在天边,近在眼前 • 人海茫茫,该去那里找TA呢
我
TA
人 立 方
/
人立方
• 人立方关系搜索是微软亚洲研究院开发设 计的一款新型社会化搜索引擎,它能从超 过十亿的中文网页中自动的抽取出人名、 地名、机构名以及中文短语,并通过算法 自动的计算出它们之间存在关系的可能性 。人立方搜索的创建理念来自于“六度空 间”。
数学解释 若每个人平均认识260人,其六度就是2606 =308,915,776,000,000 • (约300万亿)。消除一些节点重复,那也几乎覆盖了整个地球人口 若干多多倍。 公式可以进一步抽象成: 其中n表示复杂度,N表示人的总数,W表示每个人的联系宽度
六度空间理论的运用(SNS)
• • • • • 人人网 开心网 若邻网 白社会 豆瓣 QQzone 六度分割 旅行器 新浪微博 FACEBOOK
李连杰如何找奥班马?
校长陆磊怎样找省长黄华华
人立方其他相关功能 1.关系百科 2.Q20读心机器人 3.微博关系图 4.六度搜索
• 人立方的一切找人方式仅供 参考 • 找人还是要靠自己。
•
相关作品
1.1990年,戏剧《六度分隔》 2.1993年,《六度分隔》(Six Degrees of Separation) • (影片主角的台词包括“我们之间,只需要5个人
内容简介
• 你我的世界,虽然在六度空间里看似 很小,然而世界确是很大很大,我们 不能生活在网络中,多出去走走,用 心感受世界,你会收获更多
•
THE END
谢谢观看
• 烤肉店老板——加州朋友——朋友同事——制作人的女儿— —制作人——马龙· 白兰度
六度空间法则
六度空间法则
六度空间法则是一个数学领域的猜想,名为Six Degrees of Separation,中文翻译包括以下几种:六度分割理论或小世界理论等。
理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过6个中间人你就能够认识任何一个陌生人。
这就是六度分割理论,也叫小世界理论。
这种现象,并不是说任何人与其他人之间的联系都必须通过六个层次才会产生联系,而是表达了这样一个重要的概念:任何两个素不相识的人,通过一定的方式,总能够产生必然联系或关系。
显然,随着联系方式和联系能力的不同。
社会网络其实并不高深,它的理论基础正是“六度分割”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
六度空间理论
六度空间理论根据六度空间理论,地球是圆的,世界又是无限的,任何两个人之间都可以通过连接其他五个人而联系起来。
这就是“六度空间”理论。
根据六度空间理论,它告诉了我们什么呢?我们班就有好几个事例。
想一想,你周围是否存在着六度空间?你的同桌、后桌、邻桌、旁边的女生……每个人都是你的六度空间,也许我们对六度空间的了解还非常少。
我相信随着社会的发展,六度空间会越来越普及,成为大家共有的知识!1、我们都不会忘记上周五早上的情景吧!老师像往常一样拿着一些礼品来到教室里,分给了我们每一个同学,而我和老师之间的关系,仅限于送送礼物,说句话,那就更别提了。
有时我真觉得自己好失败呀!为什么我总感觉自己与老师之间缺乏沟通?为什么与老师交流的机会那么少?我很想与老师之间建立深厚的感情。
因此,我就暗暗下定决心:我要好好与老师相处,让老师喜欢我、信任我,做一个让老师放心的学生。
2、老师讲课太枯燥,同学们昏昏欲睡,这样下去可怎么行啊!下面请听一个小故事吧!古代有一个皇帝,他非常怕老师,如果看见老师就要跪拜。
但是不久皇帝死了,新皇帝即位,他不再惧怕老师了。
但是不幸的事情发生了,新皇帝变得残暴无比,终日与妃子寻欢作乐,根本不管百姓的疾苦。
皇帝驾崩了,留下了一大堆的烂摊子。
所有的官员都把目光投向了新皇帝的儿子身上。
这个国家就毁在这个贪图享乐的皇帝手里。
这个故事就是现代著名科学家——爱因斯坦的故事。
3、我们不能让今天的遗憾,成为明天的后悔。
我想,读书会是个好办法。
有一次,一位高三同学想考上北京大学,从这所大学出来,将来可以干一番轰轰烈烈的事业。
所以他拼命读书。
但她没有爸妈的帮助,全靠自己刻苦勤奋,坚持努力,才使他考上了北大。
如果她不努力学习,最终只会落个大专的文凭。
由此可见,人只要坚持不懈,刻苦学习,学业必有所成!六度空间理论与实践活动六度空间理论与实践活动实践目的:体验交际中的相互理解,交流信息的重要性,促进我们与父母之间的沟通。
实践地点:体验家庭聚餐,调查对方父母的职业。
六度空间
相连”,“不管是美国总统还是威尼斯的船夫,只 要找到正确的5个人,我们就能联系起来”,“我们 之间联系如此紧密,这让我感到十分安慰” )
3.邓肯· 华兹,《六个人的小世界》,大块文化 4.Thomas Blass ,《电醒世界的人》,远流文 化
《六度人脉》
作 者:李维文
20世纪60年代,“六度人脉”概 念由美国心理学家Stanley Milgram提出并 加以验证。所谓六度人脉是指:地球上所有 的人都可以通过六层以内的熟人链和任何其 他人联系起来。通俗地说:“你和任何一个 陌生人之间所间隔的人不会超过六个,也就 是说,只要你愿意,最多通过六个人你就能 够认识世界上的任何一个陌生人。” 最 初“六度人脉”是政治圈与财经圈里高端人 士必用的成功法则。政客用它获得竞选资本, 商人用它获取资源。到了后来,它以强大的 趋势流行到到美、加、英、法、德、意、葡、 日、韩、丹麦、荷兰、巴西、爱尔兰、西班 牙、澳大利亚、马来西亚等160多个国家, 并开始进入我们每个人的生活。它小到改变 我们每个人的命运,大到改变这个世界。
• 烤肉店老板——加州朋友——朋友同事——制作人的女儿— —软的研究人员Jure Leskovec 和 Eric Horvitz过滤2006年某 个单一月份的MSN短信,利用二点四亿使用者的三百亿通 讯息进行比对,结果发现任何使用者只要透过平均6.6人 就可以和全数据库的一千八百亿组配对产生关连。48%的 使用者在6次以内可以产生关连,而高达78%的使用者在7 次以内可以产生关连
李连杰如何找奥班马?
校长陆磊怎样找省长黄华华
人立方其他相关功能 1.关系百科 2.Q20读心机器人 3.微博关系图 4.六度搜索
• 人立方的一切找人方式仅供 参考 • 找人还是要靠自己。
最新什么是六度空间理论-范文文档
什么是六度空间理论“六度空间”理论又称作六度分隔SixDegreesofSeparation理论。
这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”该理论产生于20世纪60年代,由美国心理学家米尔格伦提出。
六度分隔/六度空间理论你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
社会网络其实并不高深,它的理论基础正是“六度分隔”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
你也许认为这只是一个特例,但是1967年哈佛大学心理学教授StanleyMilgram做过的一次连锁信实验,也得出这一结论。
现代版本则是哥伦比亚大学今天用E-mail进行的同样实验。
有科学家甚至从这个现象推演出一个可以评估的数学模型。
你也许不认识克林顿,但是在优化的情况下,你只需要通过六个人就可以结识他。
“六度分隔”说明了社会中普遍存在一些“弱链接”关系,但是却发挥着非常强大的作用。
有很多人在找工作时会体会到这种弱链接的效果。
这个理论用另一种方式阐述就更加惊人:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过六个人你就能够认识任何一个陌生人。
”这个玄妙理论引来了数学家、物理学家和电脑科学家纷纷投入研究,结果发现,世界上许多其他的网络也有极相似的结构。
比如,人际网络和WWW的架构几乎完全一样,通过超文本链接的网络、经济活动中的商业联系网络、生态系统中的食物链,甚至人类脑神经元、以及细胞内的分子交互作用网络,有着完全相同的组织结构。
SixDegreeofSeparation
SixDegreeofSeparation本博客的代码的思想和图⽚参考:好⼤学慕课浙江⼤学陈越⽼师、何钦铭⽼师的《数据结构》题⽬:六度空间”理论⼜称作“六度分隔(Six Degrees of Separation)”理论。
这个理论可以通俗地阐述为:“你和任何⼀个陌⽣⼈之间所间隔的⼈不会超过六个,也就是说,最多通过五个⼈你就能够认识任何⼀个陌⽣⼈。
”如图1所⽰。
图1 六度空间⽰意图“六度空间”理论虽然得到⼴泛的认同,并且正在得到越来越多的应⽤。
但是数⼗年来,试图验证这个理论始终是许多社会学家努⼒追求的⽬标。
然⽽由于历史的原因,这样的研究具有太⼤的局限性和困难。
随着当代⼈的联络主要依赖于电话、短信、微信以及因特⽹上即时通信等⼯具,能够体现社交⽹络关系的⼀⼿数据已经逐渐使得“六度空间”理论的验证成为可能。
假如给你⼀个社交⽹络图,请你对每个节点计算符合“六度空间”理论的结点占结点总数的百分⽐。
输⼊格式:输⼊第1⾏给出两个正整数,分别表⽰社交⽹络图的结点数NNN(1<N≤1041<N\le 10^41<N≤10输出格式:对每个结点输出与该结点距离不超过6的结点数占结点总数的百分⽐,精确到⼩数点后2位。
每个结节点输出⼀⾏,格式为“结点编号:(空格)百分⽐%”。
输⼊样例:10 91 22 33 44 55 66 77 88 99 10输出样例:1: 70.00%2: 80.00%3: 90.00%4: 100.00%5: 100.00%6: 100.00%7: 100.00%8: 90.00%9: 80.00%10: 70.00%We use two kinds of method to store the graph:adjacnet matrix and adjacnet tableThe code is followed:1/*2 * sixDigreeSeparation.c3 *4 * Created on: 2017年5⽉8⽇5 * Author: ygh6*/7 #include <stdio.h>8 #include <stdlib.h>910/*11 * Algorithm thought:12 * We easily know this question is BFS.13 * we access the first level nodes, then access second level nodes14 * until we reach the sixth level.15 * We let every node to BFS until it reach the sixth level,then we record the total nodes M16 * it can reach, calculate the M/N(The total point the test data gives) .17*/19#define MAX_VERTEX_MUM 1000120 typedef int vertex; /*vertex is the index of point in the graph*/21 typedef int dataType; /*dataType is the data type of vertex */22 typedef int weightType; /*The data type of weight */2324/*25 * Define a data structure to edge26*/27 typedef struct eNode *ptrToENode;28 typedef struct eNode {29 vertex v1, v2;30 weightType wight;31 };32 typedef ptrToENode edge;3334/*35 * Define a data structure for adjacent table node36*/37 typedef struct adjNode *ptrToAdjNode;38 typedef struct adjNode {39 vertex adjVertex; /*The index of vertex in the graph*/40 weightType weight; /*the value of the weight*/41 ptrToAdjNode next; /*A point to point next node*/42 };4344/*45 * Define a data structure for adjacent table head point46*/47 typedef struct vNode *ptrToVNode;48 typedef struct vNode {49 dataType data; /*The value of every vertex,some times it will be ignore*/50 ptrToAdjNode head;/*The point to point the adjacent table first element*/51 } adjList[MAX_VERTEX_MUM];5253/*Define a data structure for graph*/54 typedef struct gNode *ptrToGNode;55 typedef struct gNode {56int vertex_num;57int edge_num;58 adjList g;59 };60 typedef ptrToGNode adjacentTableGraph; /*a graph show by adjacent table*/ 6162/*63 create a graph given the vertex number.64 @param vertexNum The verter number of the graph65 @return a graph with vertex but no any egdgs66*/67 ptrToGNode createGraph(int vertexNum) {68 vertex v;69 adjacentTableGraph graph = (adjacentTableGraph) malloc(70sizeof(struct gNode));71 graph->vertex_num = vertexNum;72 graph->edge_num = 0;73for (v = 1; v <= graph->vertex_num; v++) {74 graph->g[v].head = NULL;75 }76return graph;77 }7879/*80 insert a edge to graph.We will distinct oriented graph and undirected graph81 The e->v1 and e->v2 are the vertexs' indexs in the adjacent table82 @param graph The graph you want to insert edge83 @param e The edge you want to insert the graph84 @param isOriented Whether the graph is oriented graph.If the graph is oriented85 we will set adjacent table graph[v1]->head=v2 and set graph[v1].head=v286 otherwise we only set graph[v1].head=v287*/88void insertEdge(adjacentTableGraph graph, edge e, int isOriented) {89 ptrToAdjNode newNode;90 newNode = (ptrToAdjNode) malloc(sizeof(struct adjNode));91 newNode->adjVertex = e->v2;92 newNode->weight = e->wight;93 newNode->next = graph->g[e->v1].head;94 graph->g[e->v1].head = newNode;95if (!isOriented) {96 newNode = (ptrToAdjNode) malloc(sizeof(struct adjNode));97 newNode->adjVertex = e->v1;98 newNode->weight = e->wight;99 newNode->next = graph->g[e->v2].head;100 graph->g[e->v2].head = newNode;101 }103104 adjacentTableGraph buildGraph() {105 adjacentTableGraph graph;106 edge e;107 vertex v;108int vertex_num;109 scanf("%d", &vertex_num);110 graph = createGraph(vertex_num);111 scanf("%d", &(graph->edge_num));112if (graph->edge_num) {113 e = (edge) malloc(sizeof(struct eNode));114for (v = 0; v < graph->edge_num; v++) {115 scanf("%d %d", &e->v1, &e->v2);116 e->wight = 1;117 insertEdge(graph, e, 0);118 }119 }120return graph;121 }122123/*==============================define a queue=====================================================*/ 124/*define a list to store the element in the queue*/125 typedef vertex elementType;126 typedef struct node *pList;127 typedef struct node {128 elementType element;129struct node *next;130 };131132/*define a queue to point the list*/133 typedef struct node2 *pQueue;134 typedef struct node2 {135 pList front; /*the front point to point the head of the list*/136 pList rear; /*the rear point to point the rear of of the list*/137 };138139/*create a empty list to store the queue element*/140 pList createEmptyList() {141 pList list;142 list = (pList) malloc(sizeof(struct node));143 list->next = NULL;144return list;145 }146/*create a empty queye*/147 pQueue createEmptyQueue() {148 pQueue queue = (pQueue) malloc(sizeof(struct node2));149 queue->front = NULL;150 queue->rear = NULL;151return queue;152 }153154/*155 Wether the queue is empty156 @param queue The queue need to adjust157 @return If the queue is null,return 1 otherwise return 0158*/159int isQueueEmpty(pQueue queue) {160return (queue->front == NULL);161 }162163/*164 Add a element to a queue,If the queue is null,we will create a new queue165 @parama queue The queue we will add elememt to166 @prama element The element we will add to queue167*/168void addQueue(pQueue queue, elementType element) {169if (isQueueEmpty(queue)) {170 pList list = createEmptyList();171 list->element = element;172 queue->front = queue->rear = list;173 } else {174 pList newNode = (pList) malloc(sizeof(struct node));175 newNode->element = element;176 newNode->next = queue->rear->next;177 queue->rear->next = newNode;178 queue->rear = newNode;179 }180 }181182/*183 delete a element from a queue184 @param queue The queue will be deleted a element185 @return The element has been deleted187 elementType deleteEleFromQueue(pQueue queue) {188if (isQueueEmpty(queue)) {189 printf("the queue is empty,don't allow to delete elemet from it!"); 190 } else {191 pList oldNode = queue->front;192 elementType element = oldNode->element;193if (queue->front == queue->rear) {194 queue->rear = queue->front = NULL;195 } else {196 queue->front = queue->front->next;197 }198free(oldNode);199return element;200 }201 }202203/*204 * Initialize a visited array that make them all to zero205*/206void initVisited(adjacentTableGraph graph, int *visited) {207int i;208for (i = 0; i <= graph->vertex_num; i++) {209 visited[i] = 0;210 }211 }212213/*214 Breadth first search215 @param graph The graph stored by the adjacent table216 @param startPoint The point we start search217 @param visited A array to tag the elemeent whether has been visited 218*/219int BFS(adjacentTableGraph graph, vertex startPoint, int *visited) { 220 ptrToAdjNode p;221int count = 0;222int level = 0;223int last = startPoint, tail;224 visited[startPoint] = 1;225 count++;226 pQueue queue = createEmptyQueue();227 addQueue(queue, startPoint);228while (!isQueueEmpty(queue)) {229 elementType element = deleteEleFromQueue(queue);230for (p = graph->g[element].head; p; p = p->next) {231if (visited[p->adjVertex] == 0) {232 visited[p->adjVertex] = 1;233 addQueue(queue, p->adjVertex);234 count++;235 tail = p->adjVertex;236 }237 }238if (last == element) {239 level++;240 last = tail;241 }242if (level == 6) {243return count;244 }245 }246return count;247 }248249/*250 *Prove the six degree of separation251*/252void SDS(adjacentTableGraph graph) {253 vertex v;254int count;255int visited[graph->vertex_num+1];256float result;257for (v = 1; v <= graph->vertex_num; v++) {258 initVisited(graph, visited);259 count = BFS(graph, v, visited);260 result = (float)((float)count / graph->vertex_num)*100;261 printf("%d: %0.2f", v, result);262 printf("%%");263 printf("\n");264 }265 }266267int main() {268 adjacentTableGraph graph = buildGraph();269 SDS(graph);Adjacnet Table1/*2 * sixDigreeSeparation.c3 *4 * Created on: 2017年5⽉9⽇5 * Author: ygh6*/7 #include <stdio.h>8 #include <stdlib.h>910/*11 * Algorithm thought:12 * We easily know this question is BFS.13 * we access the first level nodes, then access second level nodes14 * until we reach the sixth level.15 * We let every node to BFS until it reach the sixth level,then we record the total nodes M16 * it can reach, calculate the M/N(The total point the test data gives) .17*/1819#define MAX_VERTEX_NUM 10001 /*define the max number of the vertex*/20#define INFINITY 65535 /*define double byte no negitive integer max number is 65535*/2122 typedef int vertex; /*define the data type of the vertex*/23 typedef int weightType; /*define the data type of the weight*/24 typedef char dataType; /*define the data type of the vertex value*/2526/*define the data structure of the Edge*/27 typedef struct eNode *ptrToENode;28 typedef struct eNode {29 vertex v1, v2; /*two vertex between the edge <v1,v2>*/30 weightType weight; /*the value of the edge's weigth */31 };32 typedef ptrToENode edge;3334/*define the data structure of the graph*/35 typedef struct gNode *ptrToGNode;36 typedef struct gNode {37int vertex_number; /*the number of the vertex*/38int edge_nunber; /*the number of the edge*/39 weightType g[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; /*define the adjacent matrix of graph*/40 dataType data[MAX_VERTEX_NUM]; /*define the dataType array to store the value of vertex*/41 };42 typedef ptrToGNode adjacentMatrixGraph; /*a graph show by adjacent matrix*/4344/*45 create a graph given the vertex number.46 @param vertexNum The verter number of the graph47 @return a graph with vertex but no any egdgs48*/49 adjacentMatrixGraph createGraph(int vertexNum) {50 vertex v, w;51 adjacentMatrixGraph graph;52 graph = (adjacentMatrixGraph) malloc(sizeof(struct gNode));53 graph->vertex_number = vertexNum;54 graph->edge_nunber = 0;55/*initialize the adjacent matrix*/56for (v = 1; v <= graph->vertex_number; v++) {57for (w = 1; w <= graph->vertex_number; w++) {58 graph->g[v][w] = 0;59 }60 }6162return graph;63 }6465/*66 insert a edge to graph.We will distinct oriented graph and undirected graph67 @param graph The graph you want to insert edge68 @param e The edge you want to insert the graph69 @param isOriented Whether the graph is oriented graph.If the graph is oriented70 we will set adjacent matrix [n][m]=[m][n]=edge's weight,else we only set71 the adjacent matrix [n][m]=edge's weight72*/73void inserEdge(adjacentMatrixGraph graph, edge e, int isOriented) {74 graph->g[e->v1][e->v2] = e->weight;75if (!isOriented) {76 graph->g[e->v2][e->v1] = e->weight;7980/*81 construct a graph according user's input8283 @return a graph has been filled good84*/85 adjacentMatrixGraph buildGraph() {86 adjacentMatrixGraph graph;87 edge e;88int vertex_num, i;89 scanf("%d", &vertex_num);90 graph = createGraph(vertex_num);91 scanf("%d", &(graph->edge_nunber));92if (graph->edge_nunber) {93 e = (edge) malloc(sizeof(struct eNode));94for (i = 0; i < graph->edge_nunber; i++) {95 scanf("%d %d", &e->v1, &e->v2);96 e->weight = 1;97 inserEdge(graph, e, 0);98 }99 }100101return graph;102103 }104105/*=====================define a queue used BFS================================*/ 106/*107 * The elementType is element which the following list store.108*/109 typedef int elementType;110111/*112 * Define a list to store the queue elements113*/114 typedef struct node1 *pList;115 typedef struct node1 {116 elementType element;117struct node1 *next;118 };119120/*121 * Define a queue used to BFS122*/123 typedef struct node2 *pQueue;124 typedef struct node2 {125 pList font;126 pList rear;127 };128129/*130 * Create a empty list131*/132 pList createEmptyList() {133 pList list = (pList) malloc(sizeof(struct node1));134 list->next = NULL;135return list;136 }137138/*139 * Create a empty queue140*/141 pQueue createEmptyQueue() {142 pQueue queue = (pQueue) malloc(sizeof(struct node2));143 queue->font = queue->rear = NULL;144return queue;145 }146147/*148 * Whether the queue is empty149*/150int isQueueEmpty(pQueue queue) {151return (queue->font == NULL);152 }153154/*155 * Insert a element to a queue156*/157void insertQueue(pQueue queue, elementType element) {158159if (isQueueEmpty(queue)) {160 pList list = createEmptyList();162 queue->font = queue->rear = list;163 } else {164 pList newNode = (pList) malloc(sizeof(struct node1));165 newNode->element = element;166//newNode->next = queue->rear->next;167 queue->rear->next = newNode;168 queue->rear = newNode;169 }170 }171172 elementType deleteElementQueue(pQueue queue) {173if (isQueueEmpty(queue)) {174return -1;175 } else {176if (queue->font == queue->rear) {177 pList temp = queue->font;178 elementType elememt = temp->element;179free(temp);180 queue->font = queue->rear = NULL;181return elememt;182 } else {183 pList temp = queue->font;184 elementType elememt = temp->element;185free(temp);186 queue->font = queue->font->next;187return elememt;188 }189190 }191192 }193194/*195 *Breath first search a graph which store in form of adjacent matrix 196 *@param graph The graph stored with adjacent matrix197 *@param startPoint The start point we start search198 *@param visited A array to tag whether element has been accessed 199*/200int BFS(adjacentMatrixGraph graph, vertex startPoint, int *visited) { 201 vertex v, w;202/*203 * count:to record the total nodes the start point can access204 * level:to record the level the current node accessed205 * tail:to record the every node's index, every access it will be flush 206 * last:to record last lever latest accessed node,we can use it to 207 * let level add.208*/209int count = 0;210int level = 0, last = startPoint;211int tail = last;212 pQueue queue = createEmptyQueue();213 count++;214 visited[startPoint] = 1;215 insertQueue(queue, startPoint);216while (!isQueueEmpty(queue)) {217 w = deleteElementQueue(queue);218for (v = 1; v <= graph->vertex_number; v++) {219if (graph->g[w][v] != 0 && visited[v] == 0) {220 visited[v] = 1;221 insertQueue(queue, v);222 tail = v;223 count++;224 }225 }226if (w == last) {227 level++;228 last = tail;229 }230231if (level == 6) {232return count;233 }234 }235return count;236237 }238239/*240 * Initialize a visited array that make them all to zero241*/242void initVisited(adjacentMatrixGraph graph, int *visited) {243int i;244for (i = 1; i <= graph->vertex_number; i++) {246 }247 }248249/*250 *Prove the six degree of separation251 *@param graph A graph prepared252*/253void SDS(adjacentMatrixGraph graph) {254int visited[graph->vertex_number + 1];255 vertex v;256int count;257float result;258for (v = 1; v <= graph->vertex_number; v++) {259 initVisited(graph, visited);260 count = BFS(graph, v, visited);261 result = (float) ((float) count / graph->vertex_number * 100);262 printf("%d: %0.2f", v, result);263 printf("%%");264 printf("\n");265 }266 }267268int main() {269 adjacentMatrixGraph graph = buildGraph();270 SDS(graph);271return0;272 }Adjacnet MatrixFrom PTA test result,we find the adjacent matrix effective is more high than adjacent table.But the adjacent matrix take more memory.Is it use spaceto swap the timethe test result is follow。
六度空间理论及其应用 PDF
1 六度空间理论及其应用一、六度空间理论的背景以及基本定义 1.六度空间理论简述六度空间理论Six Degrees of Separation是一个数学领域的猜想中文翻译包括以下几种六度分割理论、六度空间理论或小世界理论等。
六度空间理论的实质即为你和任何一个陌生人之间所间隔的人不会超过六个也就是说最多通过六个人你就能够认识任何一个陌生人。
这就是六度空间理论也叫小世界理论。
二、六度分割的提出上世纪60年代美国哈佛大学的社会心理学家米尔格伦提出了“六度分割”的理论。
简单来说“六度分割”就是在这个社会里任何两个人之间建立一种联系最多需要六个人不包括这两个人在内无论这两个人是否认识生活在地球上任何偏僻的地方他们之间只有六度分割。
三、六度空间理论应用 1. 六度空间理论的实验基础 1寻找马龙?白兰度的过程有这么一个故事几年前一家德国报纸接受了一项挑战要帮法兰克福的一位土耳其烤肉店老板找到他和他最喜欢的影星马龙?白兰度的关联。
结果经过几个月报社的员工发现这两个人只经过不超过六个人的私交就建立了人脉关系。
原来烤肉店老板是伊拉克移民有个朋友住在加州刚好这个朋友的同事是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友而马龙?白兰度主演了这部片子。
2耶鲁大学教授设计的连锁信件实验2 20世纪60年代耶鲁大学的社会心理学家米尔格兰姆就设计了一个连锁信件实验。
他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人信中放了一个波士顿股票经纪人的名字信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。
朋友收信后照此办理。
最终大部分信在经过五、六个步骤后都抵达了该股票经纪人。
六度空间的概念由此而来。
这个连锁实验体现了一个似乎很普遍的客观规律社会化的现代人类社会成员之间都可能通过“六度空间” 而联系起来绝对没有联系的A与B是不存在的。
这是一个更典型、深刻而且普遍的自然现象。
那么怎样用数学理论揭示“六度分割现象”这是现代数学领域又一个重大的数学猜想。
六度空间模式详解
六度空间模式详解六度空间模式是一种网络结构的理论模型,它最早由斯坦利·米洛尔曼和菲利普·波尔曼在1998年提出。
其基本假设是,在社交网络中任意两个人之间最多只需要经过六个人,就可以将它们联系起来。
由此引申出的“六度分隔理论”(Six Degrees of Separation)在人类关系、社交媒体、谣言传播等研究领域中被广泛应用。
六度空间模式在现代社会的发展中,也具有重要的作用。
它可以指导我们如何有效地构建社交网络,如何更好地推广产品和服务。
具体来说,六度空间模式可以帮助我们理解以下几个方面:一、网络的构建在六度空间模式中,每个人都有若干个邻居,这些邻居彼此之间又有联系。
这种联系可以是家庭、亲友、同事、老师、学生、邻居、同乡、同学等等。
这些联系可以在社交网络中进行衡量和分析。
社交网络的构建应该考虑人们的兴趣、背景、职业等多种因素,并加以分类、分层,使得人群可以按照自己的需求找到与之联系的对象。
二、信息传播根据六度空间模式,人与人之间的联系构成了庞大的社交网络,这个社交网络非常有利于信息的传播。
例如,在社交网络平台上,如果一篇文章能被关注的人看到,那么这篇文章就有可能在短时间内像病毒一样传播开来。
六度空间模式提醒我们,如果想把一则消息快速传播,那么只需要找到几个“关键节点”,把消息发给他们,就有可能迅速扩散开来。
三、病毒营销病毒营销是指利用社交网络等方式制造有趣或有震撼力的信息或产品广告,让人传播这个信息或产品的营销策略。
如果这个信息或产品的创意有足够的吸引力,就能让人们分享,转发,从而形成传播的病毒效应。
根据六度空间模式,只需要通过很少的人,就可以将这种病毒式的传播在社交网络中不断扩大。
四、谣言传播在社交网络中,谣言也可以像病毒一样迅速传播。
ただし,谣言传播可能会对社会造成不良影响。
通过六度空间模式,我们可以预测和研究谣言的传播规律,更好地防止谣言的传播,维护社会稳定。
总结来说,六度空间模型是一个优秀的社会学理论,它可以帮助我们更好地理解人和人之间的联系,构建更加有效的社交网络。
产品需求-六度空间理论在社交中的蛛丝马迹
六度空间理论在社交中的蛛丝马迹社交是人与人之间的交际来往,六度空间理论作为一个数学领域的猜想,由于其本质是围绕人与人的来进行实验的,在我们所见到的社交产品中也能看到它的蛛丝马迹。
六度内部空间理论简单地说,就是你和任何一个陌生人之间所间隔的人不会六个。
最知会经典的一个故事是一家德国报纸接受了一项革新,要帮法兰克福的几位一位土耳其烤肉店老板,寻到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了关系网。
原来烤肉店老板是伊拉克移民,有个朋友住在加州,刚好这个老朋友的同事,是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友,而马龙·白兰度主演了这部片子。
当然这样的故事并不能六度空间理论的科学性,但在上世纪60年代,哈佛大学的社会心理学家米尔格兰姆设计了一个连锁实验。
他将一套连锁信件随机发送给电邮居住在内布拉斯加州奥马哈的160个人,信中放了一个波士顿股票经纪人的名字,信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。
朋友收信后照此办理。
最终,大部分信在经过五、六个步骤后都抵达了该股票经纪人。
这是第一次用实验的方法证明了六度空间理论的科学性,这表明任何两个素不相识的人,通过一定的方式,必然当产生某种必然的联系或关系,当然,这只是实验,松散在日常生活中谁又愿意花费这么复杂麻烦的方式来寻找与他人之间的连接关系呢?直到互联网社交网络的来临,关系开始变得密切,相接方式也看上去变得相对开放而简单,六度空间理论在方法论社交中开始应用起来。
对六度空间理论打主意最早的是商家,在他们眼里,这种人际关系链就是传播者传播链,当然借助六度空间理论进行传播最成功的还是谷歌Gmail的邀请注册。
在邀请码刚出现明显时,Gmail的邀请码甚至都可以卖到60美金,自然而然,Gmail邀请在六度空间网络当中中疯狂传播,家家都以拥有一个Gmail账号而为荣,这让Gmail的普及打下基础。
六度空间理论、六度分隔理论
六度空间理论、六度分隔理论一个数学领域的猜想,名为Six Degrees of Separation,中文翻译包括以下几种:六度分割理论或小世界理论等。
理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个中间人你就能够认识任何一个陌生人,见图所示。
这就是六度分割理论,也叫小世界理论。
中文名六度空间理论外文名Six Degrees of Separation别称六度分割理论,小世界理论提出者斯坦利·米尔格兰姆(Stanley Milgram, 1933-1984应用学科社会科学,心理学适用领域范围社交,网络目录1. 1基本知识2. ▪涵义3. ▪价值4. ▪总结1. 2分析应用2. ▪关系强弱3. ▪联系区别4. ▪传递成本1. ▪假设2. ▪电影应用3. ▪网站应用基本知识编辑涵义小世界现象(又称小世界效应),也称六度空间理论、六度分隔理论(英文:Six Degrees of Separation)。
假设世界上所有互不相识的人只需要很少中间人就能建立起联系。
后来1967年哈佛大学的心理学教授斯坦利·米尔格拉姆根据这概念做过一次连锁信件实验,尝试证明平均只需要五个中间人就可以联系任何两个互不相识的美国人。
这种现象,并不是说任何人与其他人之间的联系都必须通过六个层六度空间理论示意图次才会产生联系,而是表达了这样一个重要的概念:任何两个素不相识的人,通过一定的方式,总能够产生必然联系或关系。
显然,随着联系方式和联系能力的不同,实现个人期望的机遇将产生明显的区别。
社会网络其实并不高深,它的理论基础正是“六度分割”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
有这么一个故事,几年前一家德国报纸接受了一项挑战,要帮法兰克福的一位土耳其烤肉店老板,找到他和他最喜欢的影星马龙·白兰度的关联。
结果经过几个月,报社的员工发现,这两个人只经过不超过六个人的私交,就建立了人脉关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 六度空间理论及其应用一、六度空间理论的背景以及基本定义 1.六度空间理论简述六度空间理论Six Degrees of Separation是一个数学领域的猜想中文翻译包括以下几种六度分割理论、六度空间理论或小世界理论等。
六度空间理论的实质即为你和任何一个陌生人之间所间隔的人不会超过六个也就是说最多通过六个人你就能够认识任何一个陌生人。
这就是六度空间理论也叫小世界理论。
二、六度分割的提出上世纪60年代美国哈佛大学的社会心理学家米尔格伦提出了“六度分割”的理论。
简单来说“六度分割”就是在这个社会里任何两个人之间建立一种联系最多需要六个人不包括这两个人在内无论这两个人是否认识生活在地球上任何偏僻的地方他们之间只有六度分割。
三、六度空间理论应用 1. 六度空间理论的实验基础 1寻找马龙?白兰度的过程有这么一个故事几年前一家德国报纸接受了一项挑战要帮法兰克福的一位土耳其烤肉店老板找到他和他最喜欢的影星马龙?白兰度的关联。
结果经过几个月报社的员工发现这两个人只经过不超过六个人的私交就建立了人脉关系。
原来烤肉店老板是伊拉克移民有个朋友住在加州刚好这个朋友的同事是电影《这个男人有点色》的制作人的女儿在女生联谊会的结拜姐妹的男朋友而马龙?白兰度主演了这部片子。
2耶鲁大学教授设计的连锁信件实验
2 20世纪60年代耶鲁大学的社会心理学家米尔格兰姆就设计了一个连锁信件实验。
他将一套连锁信件随机发送给居住在内布拉斯加州奥马哈的160个人信中放了一个波士顿股票经纪人的名字信中要求每个收信人将这套信寄给自己认为是比较接近那个股票经纪人的朋友。
朋友收信后照此办理。
最终大部分信在经过五、六个步骤后都抵达了该股票经纪人。
六度空间的概念由此而来。
这个连锁实验体现了一个似乎很普遍的客观规律社会化的现代人类社会成员之间都可能通过“六度空间” 而联系起来绝对没有联系的A与B是不存在的。
这是一个更典型、深刻而且普遍的自然现象。
那么怎样用数学理论揭示“六度分割现象”这是现代数学领域又一个重大的数学猜想。
2.六度空间理论在社会学中的应用社会网络其实并不高深它的理论
基础正是“六度分隔”。
而社会性软件则是建立在真实的社会网络上的增值性软件和服务。
六度分隔的现象并不是说任何人与人之间的联系都必须要通过六个层次才会产生联系而是表达了这样一个重要的概念任何两位素不相识的人之间通过一定的联系方式总能够产生必然联系或关系。
显然随着联系方式和联系能力的不同实现个人期望的机遇将产生明显的区别。
不管理论如何深奥“六度分隔”和互联网的亲密结合已经开始显露出商业价值。
让我们来看看以下几个实例吧 1关系的强弱——权值问题首先六度肯定了人与人之间的普遍联系但是没有对这种联系作定量分析。
我们一生可能会认识千百人他们有的对我极其重要有的对我无足轻重我们联系的建立的原因和方法也是千差万别有父母亲属这类生而固有的联系也有因为地理位置接近发展出来的如邻里关系还有因为共同学习生活而发展出来的同学、同事关系。
六度理论中只把他们统统归结于联系没有强弱之分。
在网状结构里面人与人的关系需要加权处理在这里六度是残缺的。
2传递的成本和激励——阻尼问题在米尔格兰姆的实验和火炬的实验里面都没有任何的花费或者说看起来成本为0。
但是是不是真的成本为0呢每个人传递一下信件花费极低改下msn名字更是没有成本然而那些人肯这么做其实是看着朋友的面子上所以这里花费的成本实际是什么呢是中国人说的人情债所谓的关系成本。
没有人喜欢一个整天都要人帮忙这帮忙那的人人情债和金钱债一样背了就一定要还这就是传递中的成本问题。
火炬的火车实验后我们一直在想这个问题今天我们急需车票可以请朋友们改他们的
名字但是我们能不能天天都用这种方法来找人帮忙呢今天买车票明天买球票也许一次两次可以次数多了朋友们肯定会觉得厌烦甚至放弃你这个朋友。
Email的邀请方式直至今日仍被很多人称颂刚刚出现的时候一个邀请甚至可以卖到60美金。
很多人惊呼这是最伟大的营销。
然而到了今天很多人的邀请已经变得无法送出去。
为什么呢因为一开始的时候Email是稀缺物品所以价值高昂加上Email带有Google的强势品牌和高度用户认同感所以就更加被追捧拥有Email成了荣誉的象
征。
这是这种荣誉成为了Email邀请在六度网络中疯狂传播的激励。
然而随着Email的高度普及这种荣誉感逐步下降最终降低了激励从来使传播陷入了停滞状态。
阻尼是好还是坏没有阻尼我们可以给任何人发送信息每个SNS网站都在宣扬你只需要六度就可以认识克林顿可以认识盖茨但是有几个人真的去认识他们了是因为他们不值得认识么不是是因为联系虽然看起来只有六度然而每度的阻尼都有可能都是无法跨越 3 的。
但是你不要悲观如果没有阻尼也许你会更加不爽LLF算过“举例来说吧。
假设每个人有30个朋友信息经过六度是30的6次方 729000000数量足够到达一个能够覆盖所有可能的人的级别。
”如果六度的连接没有任何的阻尼估计我们每天收到的来自六度好友的各种各样的信息就会让我们的脑袋爆炸。
在我们的生活里面一个身份越高的人越有名的人他就会有越多的好友于是他也就越不想随便拓展自己的关系圈子因为他们往往不胜其扰。
前些日子的600演艺名人联系方式泄露事件就是一个例子本来我们作为社会一分子都和这600名人有着六度的联系然而某天因为他们的联系方式被公开他们和我们的联系立刻被扁平化变成了一度。
一瞬间阻尼消失了你可以随便打电话给那英、田震了你不是想跟冯小刚聊电影吗你现在可以打电话了。
但是我们只能说结果这成了一场灾难很多名人诉苦说很多人打电话到他们的家里说了句“你是XXX么我很喜欢你”然后就挂了电话。
很多人不堪其扰停了机甚至换了号。
这场灾难对我们这些局外人来说是一个很有意思的故事很有趣的一点在于此一旦这些名人和大众的关系扁平化后六度变成一度他们对大众的价值也开始流失大众们只能打电话过去问一声然后炫耀自己给明星打过电话仅此而已。
这个巨大的扁平化工程并没有扩展追星族们的朋友圈子他们仍旧离那些明星很远???? 3朋友的朋友是朋友的假设——关系的方向和传递问题 SNS网站最爱说的一句话也许就是“朋友的朋友是朋友”然而那天我跟LLF在Msn聊天的时候就说过这个问题我认识的某A的朋友某B是我非常反感的一个家伙而且我的朋友里面还有个人某C对那个家伙某B更加痛恨。
所以在现在的SNS服务里面我是不敢把
某A和某C同时引入的因为他们同时引入后很可能的结果是某B和某C建立联系后开始吵架。
四、六度空间理论总结六度空间理论虽然是个社会学的理论但是实际上它更像一个数学理论很多人说六度和四色问题有异曲同工之妙。
在我看来六度空间理论很好的阐述了在一个网状结构下不同节点之间的联系和连接关系然而它并不完整并不足以指导我们的实践。