有关友谊悖论的计算机测试实验
创作时间:
作者:
@小白创作中心
有关友谊悖论的计算机测试实验
引用
1
来源
1.
http://eastcloud.email/index.php/archives/9/
友谊悖论是社会学中的一个有趣现象,它描述的是为什么人们往往会觉得自己不如朋友活跃或受欢迎。本文通过建立一个简单的社交网络模型,并使用Python进行计算机模拟实验,验证了这一现象的普遍性。
我们在日常生活中,总是遇到有关自己的朋友永远在social,身边总是有一大堆朋友,但是自己却没有几个朋友。虽然我们很容易想到一个名叫幸存者偏差的东西(也就是我们更容易注意到朋友更多,更加引人注目的人,而并非那些朋友更少的人),但事实真的如此吗?
我们将朋友的模型简化,把一个个的个体抽象成一个独立的节点,并且用相对随机的方式给每个节点间进行连接。很显然这是一个无向图,我们采用临接矩阵在python中实现这个社交网络。而对于这个社交网络中的每一个节点,求其相连节点的连接数平均值,与该节点本身的连接数比较,若相连节点的平均值大于自身的,则认为其满足友谊悖论,否则不满足。对于该社交网络中友谊悖论是否具有普遍性,我们用 满足友谊悖论的人数占总人数的比率 来测定。
首先,我们生成随机的临接矩阵。
import numpy as np
import matplotlib.pyplot as plt
def generate_random_adjacency_matrix(n):
# 生成一个零矩阵
adjacency_matrix = np.zeros((n, n), dtype=int)
# 随机填充矩阵,使其转变为无向图
for i in range(n):
for j in range(i + 1, n):
value = np.random.randint(0, 2)
adjacency_matrix[i, j] = value
adjacency_matrix[j, i] = value
# 这里赋值两个位置,是因为无向图需要满足对称性
return adjacency_matrix
随后我们需要判断节点是否满足友谊悖论,
def average_degree_of_node(adjacency_matrix, node_index, n):
if node_index < 0 or node_index >= len(adjacency_matrix):
return None
neighbors = np.where(adjacency_matrix[node_index] == 1)[0]
if len(neighbors) == 0:
return 0 # 这个节点没有连接任何一个节点,没有朋友
# 计算该节点相连节点的平均值
degree_sum = 0
for i in neighbors:
degree_sum += np.sum(adjacency_matrix[i])
average_degree = degree_sum / len(neighbors)
if average_degree < len(neighbors):
return 0
else:
return 1
计算多个图并输出结果:
def main():
num_ratio_average = []
num_list = []
for num in []:
print(f"num : {num}")
num_list.append(num)
list_ratio = []
for i in range(0, 5):
this_matrix = generate_random_adjacency_matrix(num)
fit = 0
for index in range(0, num):
if average_degree_of_node(this_matrix, index, num) == 1:
fit += 1
list_ratio.append(fit / num)
average = sum(list_ratio) / len(list_ratio)
num_ratio_average.append(average)
print(num_ratio_average)
print(num_list)
plt.plot(num_list, num_ratio_average, marker='o', linestyle='-')
plt.title('Certification of Friendship Paradox')
plt.xlabel('Number of Friends')
plt.ylabel('Ratio of Paradox')
plt.title('Friendship Paradox')
plt.show()
使用这个方式,我们得到了250人到2000人情况下,每个人与其他人交朋友概率为0.5,如图:
以下是在0.2交朋友概率和0.8交朋友概率下的结果(1~100样本量):
结果非常amazing啊,我们发现在大多数情况下,友谊悖论都是成立的。也就是说,可能我的朋友所有的朋友可能比我的更多。哎~
热门推荐
监控摄像头怎么维护
旅客找网约车走冤枉路,广州白云机场已增设指引标牌
国内第一款服务器级CPU问世,阿里玄铁开源RISC-V架构芯片将加速AGI目标
歼20极速翻倍4马赫?港媒首曝黑科技,增幅100%,六代机提前预热
监控摄像机电源系统维护指南:11个实用措施延长设备寿命
基于种植活动培养幼儿的综合能力
秋气通于肺,每天拍打“护肺经”,养成“黄金肺”
理想的蛋白源——大豆分离蛋白
《穿普拉达的女王》:你是丑小鸭还是白天鹅
甲状腺结节细针穿刺活检,做还是不做?
揭秘心率过快:原因、评估与应对策略
考研失利不气馁!奥克兰大学和奥塔哥大学,如何抉择开启新征程?
盐酸丁螺环酮片用量是怎样的 盐酸丁螺环酮片注意事项是什么
商王朝“殷”与“商”之争终于破解 周原甲骨文给出了明确答案
先求婚后登记结婚:的故事新方式
驾驶员心理训练:如何提高应对压力和焦虑的能力
查空腹血糖前应注意哪些事项
梦见墓地和棺材是什么预兆
“哪吒”奇迹的背后,是改变世界的想象力
“开禧北伐”:杨万里与陆游的政见分歧
连接西班牙与非洲的海峡,最窄只有14公里,为何不建跨海大桥?
火币比特币交易合法吗?深入探讨数字货币交易的法律边界
英语动画片配音片段经典:为孩子打造语言学习的魔法世界
蒙乃尔合金和哈氏合金的区别
一针一线 在屯堡刺绣中传承屯堡文化
汽车生产管理系统:重塑汽车制造业的未来
戒除孩子网瘾问题,家长如何从理解到行动开始实施!
INFP × ENFJ:为什么理想组是官方CP?
怎么戒烟比较好?一次戒断还是慢慢减少?医生:戒烟有新方法
混动与增程谁更划算?从购车到养车的全方位对比