当前位置: 首页 > news >正文

C++和Python通信引文道路社评电商大规模行为图结构数据模型

🎯要点

  1. 🎯图论数学逻辑和计算:🖊定向网络节点和边 | 🖊节点的入度 | 🖊出度和度 | 🖊源节点 | 🖊汇节点 | 🖊 孤立节点 | 🖊入度分布和出度分布 | 🖊平均度 | 🖊平均入读和平均出度 | 🖊随机节点距离 | 🖊最短路径长度分布 | 🖊节点聚类系数及分布和平均聚类系数。
  2. 🎯图结构和算法:🖊计算入度和出度分布并绘制每个分布的幂律 | 🖊广度优先搜索算法遍历节点 | 🖊绘制算法遍历节点的累积分布 | 🖊创建前向后向度优先搜索算法图 | 🖊计算出入分量的节点 | 🖊计算两节点存在的路径的概率 | 🖊计算两网络弱连通分量算法下,连接的节点对概率。
  3. 🎯图模型和概率:🖊生成埃尔多什-雷尼随机图 | 🖊生成配置模型随机图 | 🖊计算上述图度分布 | 🖊计算最短路径长度分布 | 🖊聚类系数分布 | 🖊弱连通分量算法大小分布。
  4. 🎯小世界图 | 🎯社交软件图结构 | 🎯点评网络 | 🎯影响力

🍇Python图节点和度

a
b
d
e
c
f

数学和计算机科学中的“图” 由“节点”(也称为“顶点”)组成。节点之间可能连接也可能不连接。

节点“a”与节点“c”连接,但“a”不与“b”连接。 两个节点之间的连接线称为边。 如果节点之间的边是无向的,则该图称为无向图。 如果一条边从一个顶点(节点)指向另一个顶点(节点),则图称为有向图。 有向边称为弧。 尽管图表看起来非常理论化,但许多实际问题都可以用图表来表示。 它们通常用于对物理、生物学、心理学,尤其是计算机科学中的问题或情况进行建模。 在计算机科学中,图用于表示通信网络、数据组织、计算设备、计算流程、在后一种情况下,它们用于表示数据组织,例如操作系统的文件系统或通信网络。 网站的链接结构也可以看作是图,即有向图,因为链接是有向边或弧。 Python 没有内置的图形数据类型或类,但在 Python 中很容易实现它们。 一种数据类型非常适合在 Python 中表示图形,即字典。 我们图中的图表可以通过以下方式实现:

graph = { "a" : {"c"},"b" : {"c", "e"},"c" : {"a", "b", "d", "e"},"d" : {"c"},"e" : {"c", "b"},"f" : {}}

上面字典的键是我们图的节点。 相应的值是用节点设置的,节点通过边连接。 集合比列表或元组更好,因为这样,两个节点之间只能有一条边。 没有比这更简单、更优雅的方式来表示图表了。边也可以理想地实现为具有两个元素(即端节点)的集合。这对于无向图来说是理想的。对于有向图,我们更喜欢使用列表或元组来实现边。

生成所有边列表的函数:

def generate_edges(graph):edges = []for node in graph:for neighbour in graph[node]:edges.append({node, neighbour})return edgesprint(generate_edges(graph))

输出:

[{'c', 'a'}, {'c', 'b'}, {'b', 'e'}, {'c', 'd'}, {'c', 'b'}, {'c', 'e'}, {'c', 'a'}, {'c', 'd'}, {'c', 'e'}, {'b', 'e'}]

正如我们所看到的,没有包含节点“f”的边。 “f”是我们图中的一个孤立节点。以下 Python 函数计算给定图的孤立节点:

def find_isolated_nodes(graph):isolated = set()for node in graph:if not graph[node]:isolated.add(node)return isolated
a
d
c
b
e
f

如果您查看我们类的以下清单,您可以在 init 方法中看到我们使用字典“self._graph_dict”来存储顶点及其相应的相邻顶点。

class Graph(object):def __init__(self, graph_dict=None):if graph_dict == None:graph_dict = {}self._graph_dict = graph_dictdef edges(self, vertice):return self._graph_dict[vertice]def all_vertices(self):return set(self._graph_dict.keys())def all_edges(self):return self.__generate_edges()def add_vertex(self, vertex):if vertex not in self._graph_dict:self._graph_dict[vertex] = []def add_edge(self, edge):edge = set(edge)vertex1, vertex2 = tuple(edge)for x, y in [(vertex1, vertex2), (vertex2, vertex1)]:if x in self._graph_dict:self._graph_dict[x].add(y)else:self._graph_dict[x] = [y]def __generate_edges(self):edges = []for vertex in self._graph_dict:for neighbour in self._graph_dict[vertex]:if {neighbour, vertex} not in edges:edges.append({vertex, neighbour})return edgesdef __iter__(self):self._iter_obj = iter(self._graph_dict)return self._iter_objdef __next__(self):return next(self._iter_obj)def __str__(self):res = "vertices: "for k in self._graph_dict:res += str(k) + " "res += "\nedges: "for edge in self.__generate_edges():res += str(edge) + " "return res

我们想玩一下我们的图表。我们从迭代图表开始。迭代意味着迭代顶点。

g = { "a" : {"d"},"b" : {"c"},"c" : {"b", "c", "d", "e"},"d" : {"a", "c"},"e" : {"c"},"f" : {}}graph = Graph(g)for vertice in graph:print(f"Edges of vertice {vertice}: ", graph.edges(vertice))

输出:

Edges of vertice a:  {'d'}
Edges of vertice b:  {'c'}
Edges of vertice c:  {'c', 'd', 'b', 'e'}
Edges of vertice d:  {'c', 'a'}
Edges of vertice e:  {'c'}
Edges of vertice f:  {}

参阅一:计算思维

参阅二:亚图跨际

相关文章:

C++和Python通信引文道路社评电商大规模行为图结构数据模型

🎯要点 🎯图论数学逻辑和计算:🖊定向网络节点和边 | 🖊节点的入度 | 🖊出度和度 | 🖊源节点 | 🖊汇节点 | 🖊 孤立节点 | 🖊入度分布和出度分布 | &#x1f…...

单片机-点亮第一盏灯

原理图 需求:点亮或是熄灭LED 通过控制 P5.3引脚输出高电平时,LED灯就点亮,输出低电平时LED灯就熄灭 1.项目创建 新建项目 配置开发板信息 当前位STC芯片的开发板,选择STC MCU Database 搜素具体芯片型号,进行配置…...

C++组合类

类的数据成员不但可以是基本类型,也可以是其它类的对象。 组合类就是指一个类包含其他类的对象作为该类的数据成员。 当组合类创建对象时,其中包含的各个数据成员对象应首先被创建。因此,在创建类的对象时,既要对本类的基本…...

Linux学习笔记3

建立最小linux系统【续】 书接上文,上一篇我们分析了rcS和ifconfig-eth0文件,接下来我们继续讲下去 passwd文件 之后在init.d的上一级目录etc下建立passwd文件,内容如下 root::0:0:root:/:/bin/sh bin:*:1:1:bin:/bin:daemon:*:2:2:daemo…...

免费证件照一键换底色

最近星期天在家搞了一个小工具,在这里分享下! 废话不多说看看效果: 效果还不错,需要的可以联系我!!!!!!!!! 别的网上可都是一次五块钱这种。太贵了。。!!...

使用 FFmpeg 从音视频中提取音频

有时候我们需要从视频文件中提取音频,并保存为一个单独的音频文件,我们可以借助 FFmpeg 来完成这个工作。 一、提取音频,保存为 mp3 文件: 要使用 FFmpeg 从音视频文件中提取音频,并将 ACC 编码的音频转换为 MP3 格式&#xff0…...

GraphQL在现代Web应用中的应用与优势

GraphQL是一种现代的API查询语言,它在现代Web应用中得到了广泛的应用,因为它提供了一种高效、灵活且强大的方式来获取数据 GraphQL基础快速应用示例: 1. 后端设置(使用graphql-yoga) 首先,我们需要创建一…...

socket编程 学习笔记 理解

在使用socket(也就是套接字)编程的时候,其实是工作于应用层和传输层之间 如果使用的是基于TCP的socket,那每个数据包的发送的过程大致为: 数据通过socket套接字构造符合TCP协议的数据包在屏蔽底层协议的情况下&#…...

SC-Lego-LOAM建图与ndt_localization的实车实现

参考:https://blog.csdn.net/weixin_44303829/article/details/121524380 https://github.com/AbangLZU/SC-LeGO-LOAM.git https://github.com/AbangLZU/ndt_localizer.git 将建图和定位分别使用lego-loam和ndt来进行,实车上的效果非常不错,…...

vs code中如何使用git

由于本地代码有了一些储备,所以想通过网址托管形式,之前一直使用了github,但是鉴于一直被墙,无法登录账号,所以选择了国内的gitee来作为托管网站。 gitee的网址:Gitee - 基于 Git 的代码托管和研发协作平台…...

Vue项目中如何通过配置修改项目名称

Vue项目中如何通过配置修改项目名称 前言 部分vue项目中为了不直接修改 index.html 文件而使用 config 配置文件进行修改&#xff0c;好处就是项目配置比较集中好管理、可实现动态化修改。 具体配置和使用 项目中 index.html 配置标题名&#xff0c;可以看到 <title>…...

ThinkPHP5.1 创建控制器类

在ThinkPHP中&#xff0c;控制器是MVC模式中的核心组件之一&#xff0c;负责接收用户请求并处理相应的业务逻辑。在本篇技术博客中&#xff0c;我们将深入探讨ThinkPHP5.1中的控制器操作&#xff0c;包括创建控制器、路由绑定、请求参数获取等方面的知识点。 1.创建控制器 在T…...

完全背包问题(c++)

完全背包问题 当前有 N 种物品&#xff0c;第 i 种物品的体积是 ci​&#xff0c;价值是 wi​。 每种物品的数量都是无限的&#xff0c;可以选择任意数量放入背包。 现有容量为 V 的背包&#xff0c;请你放入若干物品&#xff0c;使总体积不超过 V&#xff0c;并且总价值尽可…...

综合性练习(验证码案例)

目录 一、需求 二、准备工作 三、约定前后端交互接口 1、需求分析 2、接口定义 四、Hutool工具介绍 1、引入依赖 2、测试使用Hutool生成验证码 五、实现服务器端代码 代码解读&#xff1a; 六、调整前端页面代码 七、运行测试 随着安全性的要求越来越高&#xff0c…...

实用的Chrome命令 帮你打开Chrome浏览器的隐藏功能

前言 Chrome作为主力浏览器&#xff0c;支持相当丰富的第三方扩展&#xff0c;其实浏览器本身也内置了大量实用的命令。许多实用的功能并没有直接显示在Chrome的菜单上。在这篇文章中&#xff0c;我们将介绍几个实用的chrome:// commands。 通过下面整理的 Chrome 命令&#x…...

Linux提权--定时任务--打包配合 SUID(本地)文件权限配置不当(WEB+本地)

免责声明:本文仅做技术交流与学习... 目录 定时任务 打包配合 SUID-本地 原理: 背景: 操作演示: 分析: 实战发现: 定时任务 文件权限配置不当-WEB&本地 操作演示: 定时任务 打包配合 SUID-本地 原理: 提权通过获取计划任务执行文件信息进行提权 . 1、相对路径和…...

CSS-盒子模型

盒子模型的重要组成部分 内容区域content&#xff1a;width , height 内边距&#xff1a;内边框和内容区域的距离Padding边框线&#xff1a;Border外边距&#xff1a;Margin Border (边框线) 属性&#xff1a;Border 属性值&#xff1a;边框线粗细px 线条样式 颜色(不区分…...

WPF之页的使用

1,Page介绍。 Page直接从FrameworkElement中派生出来&#xff0c;WIndow从ContentControl中派生。 [Localizability(LocalizationCategory.Ignore)]public class Window : ContentControl, IWindowService{....} [ContentProperty("Content")]public class Page : Fr…...

【FFmpeg】Filter 过滤器 ② ( 裁剪过滤器 Crop Filter | 裁剪过滤器语法 | 裁剪过滤器内置变量 | 裁剪过滤器常用用法 )

文章目录 一、裁剪过滤器1、裁剪过滤器简介2、裁剪过滤器语法3、裁剪过滤器内置变量4、裁剪过滤器示例5、裁剪过滤器应用6、裁剪过滤器图示 二、裁剪过滤器常用用法1、裁剪指定像素的视频区域2、裁剪视频区域中心正方形 - 默认裁剪3、裁剪视频区域中心正方形 - 手动计算4、裁剪…...

thinkphp5 中控制器的创建和使用方法

在 ThinkPHP 5 中&#xff0c;控制器&#xff08;Controller&#xff09;是用于处理请求、执行逻辑操作并返回响应的类。以下是在 ThinkPHP 5 中创建和使用控制器的基本方法&#xff1a; 1. 创建控制器 在 ThinkPHP 5 中&#xff0c;控制器通常位于 application/index/contro…...

CANN/cann-bench MHA算子API描述

MHA 算子 API 描述 【免费下载链接】cann-bench 评测AI在处理CANN领域代码任务的能力&#xff0c;涵盖算子生成、算子优化等领域&#xff0c;支撑模型选型、训练效果评估&#xff0c;统一量化评估标准&#xff0c;识别Agent能力短板&#xff0c;构建CANN领域评测平台&#xff0…...

杨立昆转推“Meta AI 已死”:一场大厂AI战略的自杀式摇摆

好家伙&#xff0c;杨立昆&#xff08;Yann LeCun&#xff09;亲自转发“讣告”了。 就昨天&#xff0c;这位 Meta 的首席 AI 科学家&#xff0c;在 X 上转了一条推&#xff0c;内容直指自家公司——Meta AI 部门“已死”。原文副标题更狠&#xff1a;“自研人才流失&#xff0…...

逆向实战:用WT-JS_DEBUG_V1.8.3快速定位并导出AES加密参数到Python

逆向工程实战&#xff1a;从浏览器到Python的AES加密参数高效迁移指南 在数据采集和接口分析领域&#xff0c;遇到前端加密是再常见不过的挑战。特别是当网站采用AES加密时&#xff0c;如何快速提取关键参数并复用到Python脚本中&#xff0c;成为许多开发者头疼的问题。本文将…...

深入MPSOC缓存一致性:从零配置HPC接口,让你的PL加速器告别Cache Flush

深入MPSOC缓存一致性&#xff1a;从零配置HPC接口&#xff0c;让你的PL加速器告别Cache Flush 在异构计算领域&#xff0c;MPSOC平台的缓存一致性配置一直是工程师面临的棘手问题。当PL端加速器通过HP接口与PS端交互时&#xff0c;频繁的手动缓存维护不仅增加了软件复杂度&…...

Windows 11终极优化指南:使用Win11Debloat实现专业级系统调校

Windows 11终极优化指南&#xff1a;使用Win11Debloat实现专业级系统调校 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter…...

2026年AI搜索优化服务商TOP10榜单发布:技术原生派领跑,垂直专精派各显神通

随着生成式AI全面重构用户信息获取与消费决策路径&#xff0c;AI搜索优化&#xff08;GEO&#xff09;已从概念验证迈入规模化落地阶段。企业面临的痛点高度集中&#xff1a;技术门槛高、效果难量化、服务商良莠不齐。为帮助企业精准选型&#xff0c;我们基于技术自研能力、实战…...

仿真流程专题——基于Workbench的随机振动工程实践与3σ准则应用

1. 随机振动分析入门&#xff1a;从理论到工程实践 第一次接触随机振动分析时&#xff0c;我和大多数工程师一样感到困惑——这种"不确定"的载荷到底该怎么分析&#xff1f;经过多个项目的实战&#xff0c;我发现用生活中的例子最容易理解&#xff1a;想象你在颠簸的…...

车间管理越管越乱?找准根源+避坑,跳出管理内耗

很多车间管理者都深陷这样的困境&#xff1a;每天忙得脚不沾地&#xff0c;盯进度、查卫生、处理各类现场异常&#xff0c;耗尽心力却收效甚微&#xff0c;车间反而越管越乱——物料堆放杂乱无章、工序衔接频频脱节、员工操作随心所欲、设备故障时有发生&#xff0c;产能上不去…...

深入解析RISC-V CLINT:多核中断与定时器编程实战

1. 项目概述&#xff1a;深入理解SiFive U54内核的CLINT如果你正在基于SiFive的Freedom U540 SoC或者类似的RISC-V多核平台进行嵌入式开发&#xff0c;特别是涉及到操作系统移植、多核启动或者中断管理&#xff0c;那么“CLINT”&#xff08;Core-Local Interruptor&#xff0c…...

AI Agent Harness Engineering 后端架构选型:微服务 vs 单体架构的取舍

AI Agent Harness Engineering 后端架构选型深度指南:微服务 vs 单体架构的取舍、落地与最佳实践 摘要/引言 你有没有过这样的经历:团队好不容易赶完了AI Agent的POC验证,正准备规模化落地,却卡在了后端架构选型上? 有人说“微服务是未来”,上来就拆了8个服务,结果3个后…...