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

【Pm4py第八讲】关于Statistics

本节用于介绍pm4py中的统计函数,包括统计轨迹变体、案例持续时间、案例到达时间等。

1.函数概述

 本次主要介绍Pm4py中一些常见的统计函数,总览如下表:

函数名说明
pm4py.stats.get_start_activities()从事件日志中获取开始活动。
pm4py.stats.get_end_activities()从事件日志中获取结束活动。
pm4py.stats.get_event_attributes()获取事件的事件级的属性
pm4py.stats.get_trace_attributes()获取事件轨迹级别的属性
pm4py.stats.get_event_attribute_values()获取事件中某个属性的值
pm4py.stats.get_trace_attribute_values()获取轨迹中的属性值
pm4py.stats.get_case_arrival_average()获取事件的案件到达时间列表
pm4py.stats.get_cycle_time()获取事件的周期时间
pm4py.stats.get_all_case_durations()获取事件的案件持续时间列表
pm4py.stats.get_case_duration()获取日志中特定案例的案例持续时间。
pm4py.stats.get_stochastic_language()获取事件日志的随机语言

2.函数方法介绍

2.1 统计开始活动

pm4py.stats.get_start_activities(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[str, int]
说明:返回日志对象的开始活动

输入参数:

      log–log对象
     activity_key(str)–要用于活动的属性
     timestamp_key(str)–用于时间戳的属性
      case_id_key(str)–要用作案例标识符的属性

输出参数:

        Dict[str, int]

示例代码:

import pm4pystart_activities = pm4py.get_start_activities(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.2 统计日志对象的结束活动

pm4py.stats.get_end_activities(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[str, int]

说明:返回日志对象的结束活动

输入参数:

      log–log对象
      activity_key(str)–要用于活动的属性
      timestamp_key(str)–用于时间戳的属性
       case_id_key(str)–要用作案例标识符的属性

输出参数:

        Dict[str, int]

示例代码:

import pm4pyend_activities = pm4py.get_end_activities(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.3 统计事件属性

pm4py.stats.get_event_attributes(log: EventLog | DataFrame) → List[str]
说明:统计事件属性

输入参数
   log–log对象现可视化效果)
输出参数:

   List[str]

示例代码:

import pm4pyevent_attributes = pm4py.get_event_attributes(dataframe)

2.4 统计轨迹属性

pm4py.stats.get_trace_attributes(log: EventLog | DataFrame) → List[str]
说明:统计轨迹属性

输入参数
   log–log对象现可视化效果)
输出参数:

   List[str]

示例代码:

import pm4pytrace_attributes = pm4py.get_trace_attributes(dataframe)

2.5 统计事件属性值

pm4py.stats.get_event_attribute_values(log: EventLog | DataFrameattribute: strcount_once_per_case=Falsecase_id_key: str = 'case:concept:name') → Dict[str, int]


说明:统计事件属性值

输入参数:
        log–log对象
        attribute(str)–attribute
        count_once_per_case(bool)–如果为True,则只考虑案例中给定属性值的一次出现(如果有多个事件共享同一属性值,则只计算一次出现)
        case_id_key(str)–要用作案例标识符的属性
输出类型:
    
    Dict[str,int]

示例代码:

import pm4pyactivities = pm4py.get_event_attribute_values(dataframe, 'concept:name', case_id_key='case:concept:name')

2.6 统计指定轨迹属性的值

pm4py.stats.get_trace_attribute_values(log: EventLog | DataFrame, attribute: str, case_id_key: str = 'case:concept:name') → Dict[str, int]

说明:返回指定跟踪属性的值
输入参数:
        log–log对象
        attribute(str)–属性
        case_id_key(str)–要用作案例标识符的属性
输出类型:
        Dict[str,int]

 示例代码:

import pm4pytr_attr_values = pm4py.get_trace_attribute_values(dataframe, 'case:attribute', case_id_key='case:concept:name')

2.7 统计日志变体

pm4py.stats.get_variants(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[Tuple[str], List[Trace]]

说明:从日志中获取变体
输入参数:

        log–事件日志
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
输出类型:
 
       Dict[Tuple[str],List[Trace]]

 示例代码:

import pm4pyvariants = pm4py.get_variants(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.8 统计日志变体2

pm4py.stats.get_variants_as_tuples(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[Tuple[str], List[Trace]]

说明:从日志中获取变体(其中键是元组而不是字符串)
输入参数:

      log–事件日志
      activity_key(str)–要用于活动的属性
      timestamp_key(str)–用于时间戳的属性
      case_id_key(str)–要用作案例标识符的属性
输出类型:
        Dict[Tuple[str],List[Trace]]

示例代码:

import pm4pyvariants = pm4py.get_variants_as_tuples(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

 2.9 统计活动的自距离

pm4py.stats.get_minimum_self_distances(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[str, int]

说明:该算法计算在事件日志中观察到的每个活动的最小自身距离。a在<a>中的自距离为无穷大,a在<a、a>中为0,在<a,b、a>为1,等等。最小自距离是事件日志中观察到的最小自距离值。
输入参数:
        log–事件日志(pandas.DataFrame、EventLog或EventStream)
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
输出类型:
        Dict[str,int]

示例代码:

import pm4pymsd = pm4py.get_minimum_self_distances(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')timestamp')

2.10 统计活动自距离见证人

pm4py.stats.get_minimum_self_distance_witnesses(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[str, Set[str]]

说明:此函数导出最小自距离见证人。a在<a>中的自距离为无穷大,a在<a、a>中为0,在<a,b、a>为1,等等。最小自距离是事件日志中观察到的最小自距离值。“见证人”是见证自我距离最小的活动。例如,如果某个日志L中活动a的最小自距离是2,那么,如果轨迹<a,b,c,a>在日志L中,b和c是a的见证
输入参数:

        log–要使用的事件日志
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
输出类型:
        Dict[str,Set[str]]

示例代码

import pm4pymsd_wit = pm4py.get_minimum_self_distance_witnesses(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.11 统计案例到达时间

pm4py.stats.get_case_arrival_average(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → float

说明:获取两个连续事例的开始时间之间的平均差值
输入参数:
        log–log对象
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
返回类型:
        float

示例代码:

import pm4pycase_arr_avg = pm4py.get_case_arrival_average(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.12  统计返工活动

pm4py.stats.get_rework_cases_per_activity(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[str, int]

说明:找出日志中哪些活动发生了返工(该活动的轨迹中出现了多个)。输出是一个字典,将发生返工的案例数量与上述每个活动相关联。
输入参数:
        log–log对象
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
返回类型:
        Dict[str,int]

示例代码:

import pm4pyrework = pm4py.get_rework_cases_per_activity(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.13 统计日志的周期时间

pm4py.stats.get_cycle_time(log: EventLog | DataFrame, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → float

说明:计算事件日志的周期时间。
所遵循的定义是在中提出的定义:https://www.presentationeze.com/presentations/lean-manufacturing-just-in-time/lean-manufacturing-just-in-time-full-details/process-cycle-time-analysis/calculate-cycle-time/#:~:text=Cycle%20time%20%3D%20Average%20time%20between,is%2024%20minutes%20on%20average。
因此:周期时间=单位完成之间的平均时间。
网站上的例子:考虑一个制造厂,它每40小时生产100个产品。平均吞吐率为每0.4小时1台,即每24分钟1台。因此,周期时间平均为24分钟。
输入参数:
        log–log对象
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
返回类型:
        float

示例代码:

import pm4pycycle_time = pm4py.get_cycle_time(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.14 统计案例的持续时间

pm4py.stats.get_all_case_durations(log: EventLog | DataFrame, business_hours: bool = False, business_hour_slots=[(25200, 61200), (111600, 147600), (198000, 234000), (284400, 320400), (370800, 406800)], activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → List[float]

说明:获取事件日志中事例的持续时间
输入参数:
        log–事件日志
        business_hours(bool)–启用/禁用基于营业时间的计算(默认值:False)
        business_hour_slots–公司的工作时间表,以元组列表的形式提供,其中每个元组表示一个工作时间段。一个槽,即一个元组,由一个开始时间和一个结束时间组成,以秒为单位,从周开始,例如[(7*60*60,17*60*60],((24+7)*60*60%,(24+12)*60=60),((24/13)*60*60,(24+17)*60*50],这意味着营业时间为周一07:00-17:00,周二07:00-12:00和13:00-17:00
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
返回类型:

        List[float]

示例代码:

import pm4pycase_durations = pm4py.get_all_case_durations(dataframe, activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.15 统计特定案例的持续时间

pm4py.stats.get_case_duration(log: EventLog | DataFrame, case_id: str, business_hours: bool = False, business_hour_slots=[(25200, 61200), (111600, 147600), (198000, 234000), (284400, 320400), (370800, 406800)], activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str | None = None) → float

说明:获取事件日志中特定事例的持续时间
输入参数:
        log–事件日志
        business_hours(bool)–启用/禁用基于营业时间的计算(默认值:False)
        business_hour_slots–公司的工作时间表,以元组列表的形式提供,其中每个元组表示一个工作时间段。一个槽,即一个元组,由一个开始时间和一个结束时间组成,以秒为单位,从周开始,例如[(7*60*60,17*60*60],((24+7)*60*60%,(24+12)*60=60),((24/13)*60*60,(24+17)*60*50],这意味着营业时间为周一07:00-17:00,周二07:00-12:00和13:00-17:00
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
返回类型:

        List[float]

示例代码:

import pm4pyduration = pm4py.get_case_duration(dataframe, 'case 1', activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.16 统计活动位置次数

pm4py.stats.get_activity_position_summary(log: EventLog | DataFrame, activity: str, activity_key: str = 'concept:name', timestamp_key: str = 'time:timestamp', case_id_key: str = 'case:concept:name') → Dict[int, int]

说明:给定一个事件日志,返回一个字典,其中总结了活动在事件日志的不同情况下的位置。例如,如果一个活动在位置1发生1000次(案例的第二个事件),在位置2发生500次(案件的第三个事件)时,则返回的字典为:{1/1000,2:500}
输入参数:
        log–事件日志对象/Pandas数据帧
        activity(str)–要考虑的活动
        activity_key(str)–要用于活动的属性
        timestamp_key(str)–用于时间戳的属性
        case_id_key(str)–要用作案例标识符的属性
返回类型:

        Dict[int, int]

示例代码:

import pm4pyact_pos = pm4py.get_activity_position_summary(dataframe, 'Act. A', activity_key='concept:name', case_id_key='case:concept:name', timestamp_key='time:timestamp')

2.17 获取随机语言

pm4py.stats.get_stochastic_language(*args, **kwargs) → Dict[List[str], float]

说明:从提供的日志对象中获取随机语言
输入参数:
        args–Pandas数据帧/事件日志/接受Petri网/过程树
        kwargs–关键字参数

返回类型:

        Dict[List[str], float]

示例代码:

import pm4pylog = pm4py.read_xes('tests/input_data/running-example.xes')
language_log = pm4py.get_stochastic_language(log)
print(language_log)
net, im, fm = pm4py.read_pnml('tests/input_data/running-example.pnml')
language_model = pm4py.get_stochastic_language(net, im, fm)
print(language_model)

如需了解更多,欢迎加入流程挖掘交流群QQ:671290481.

相关文章:

【Pm4py第八讲】关于Statistics

本节用于介绍pm4py中的统计函数&#xff0c;包括统计轨迹变体、案例持续时间、案例到达时间等。 1.函数概述 本次主要介绍Pm4py中一些常见的统计函数&#xff0c;总览如下表&#xff1a; 函数名说明pm4py.stats.get_start_activities()从事件日志中获取开始活动。pm4py.stats.…...

【Azure 架构师学习笔记】-Azure Data Factory (5) --Data Flow

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器 前言 Azure Data Factory&#xff0c; ADF 是微软Azure 的ETL 首选服务之一&#xff0c; 是Azure data platfor…...

uniapp之ios开发及支付整体流程爬坑记录

前言 在写这篇记录的时候&#xff0c;关于ios的支付已经对接的差不多了&#xff0c;下一步就是测试好了直接发版&#xff0c;总共花了好几周的时间&#xff0c;从0到1对于首次做ios支付来说&#xff0c;确实很多坑。 其实业务层面很简单&#xff0c;甚至比安卓支付还简单&…...

AutoDL百川大模型体验

文章目录 镜像克隆模型下载测试效果AutoDL自定义服务 感谢AutoDL和CodeWithGPU这两个平台&#xff0c;让我们能低成本&#xff0c;低门槛地部署体验这些大模型 镜像克隆 我是在CodeWithGPU上克隆的这个镜像 模型下载 codewithgpu有介绍 注意这三个文件都需要下载 把那个&quo…...

蓝桥杯每日一题2023.10.8

题目描述 七段码 - 蓝桥云课 (lanqiao.cn) 题目分析 所有的情况我们可以分析出来一共有2的7次方-1种&#xff0c;因为每一个二极管都有选择和不选择两种情况&#xff0c;有7个二极管&#xff0c;但是还有一种都不选的情况需要排除&#xff0c;故-1 枚举每个方案看是否符合要…...

jmeter,性能测试,Locust

一。性能测试的概念 1.性能&#xff1a;就是软件质量属性中的 “ 效率 ” 特性 2.效率特性&#xff1a; 时间特性&#xff1a;指系统处理用户请求的响应时间 资源特性&#xff1a;指系统在运行过程中&#xff0c;系统资源的消耗情况 CPU 内存 磁盘IO&#xff08;磁盘的写…...

opencv图像的直方图,二维直方图,直方图均衡化

文章目录 opencv图像的直方图&#xff0c;二维直方图&#xff0c;直方图均衡化一、图像的直方图1、什么是图像的直方图&#xff1a;2、直方图的作用&#xff1a;3、如何绘制图像的直方图&#xff1a;&#xff08;1&#xff09;cv::calcHist()函数原型&#xff1a;英文单词 calc…...

c++中的map和set

文章目录 1. 关联式容器2. 键值对3. 树形结构的关联式容器3.1 set3.1.1 set的介绍3.1.2 set的使用 3.2 map3.2.1 map的介绍3.2.2 map的使用 3.3 multiset3.3.1 multiset的介绍3.3.2 multiset的使用 3.4 multimap3.4.1 multimap的介绍3.4.2 multimap的使用 1. 关联式容器 在初阶…...

Swagger使用详解

目录 一、简介 二、SwaggerTest项目搭建 1. pom.xml 2. entity类 3. controller层 三、基本使用 1. 导入相关依赖 2. 编写配置文件 2.1 配置基本信息 2.2 配置接口信息 2.3 配置分组信息 2.3.1 分组名修改 2.3.2 设置多个分组 四、常用注解使用 1. ApiModel 2.A…...

ToBeWritten之车联网安全中常见的TOP 10漏洞

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…...

软考-密码学概述

本文为作者学习文章&#xff0c;按作者习惯写成&#xff0c;如有错误或需要追加内容请留言&#xff08;不喜勿喷&#xff09; 本文为追加文章&#xff0c;后期慢慢追加 by 2023年10月 密码学基本概念 密码学的主要目的是保持明文的秘密以防止攻击者获知&#xff0c;而密码分…...

windows 2003、2008远程直接关闭远程后设置自动注销会话

1、2003系统&#xff1a; 按开始—运行—输入“tscc.msc”&#xff0c;打开“终端服务配置”。 单击左边窗口的“连接”项&#xff0c;右边窗口中右击“RDP-TCP”&#xff0c;选择“属性”。 单击“会话”项&#xff0c;勾选“替代用户设置”&#xff0c;在“结束已断开的会话”…...

iOS BUG UIView转UIImage模糊失真

iOS BUG UIView转UIImage模糊失真 ##UIView转成Image - (UIImage *)capture {UIGraphicsBeginImageContextWithOptions(self.bounds.size, YES, 0.0);[self.layer renderInContext:UIGraphicsGetCurrentContext()];UIImage *img UIGraphicsGetImageFromCurrentImageContext(…...

如何在10分钟内让Android应用大小减少 60%?

一个APP的包之所以大&#xff0c;主要包括一下文件 代码libso本地库资源文件&#xff08;图片&#xff0c;音频&#xff0c;字体等&#xff09; 瘦身就主要瘦这些。 一、打包的時候刪除不用的代码 buildTypes {debug {...shrinkResources true // 是否去除无效的资源文件(如…...

网络代理技术:保障隐私与增强安全

在当今数字化的世界中&#xff0c;网络代理技术的重要性日益凸显。无论您是普通用户还是网络工程师&#xff0c;了解如何使用代理技术来保护隐私和增强网络安全都是至关重要的。本文将深入探讨Socks5代理、IP代理以及它们在网络安全和隐私保护中的关键作用。 1. Socks5代理&am…...

数据结构 | (二) List

什么是 List 在集合框架中&#xff0c; List 是一个接口&#xff0c;继承自 Collection 。 Collection 也是一个接口 &#xff0c;该接口中规范了后序容器中常用的一些方法&#xff0c;具体如下所示&#xff1a; Iterable 也是一个接口&#xff0c;表示实现该接口的类是可以逐个…...

[NewStarCTF 2023 公开赛道] week1 Crypto

brainfuck 题目描述&#xff1a; [>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<-]>>>>>>>.>----.<-----.>-----.>-----.<<<-.>>..…...

C语言中文网 - Shell脚本 - 0

教程目录如下&#xff1a; 第1章 Shell基础&#xff08;开胃菜&#xff09; 1. Shell是什么&#xff1f;1分钟理解Shell的概念&#xff01; 2. Shell是运维人员必须掌握的技能 3. 常用的Shell有哪些&#xff1f; 4. 进入Shell的两种方式 5. Linux Shell命令的基本格式 6.…...

Transformer预测 | Pytorch实现基于Transformer 的锂电池寿命预测(CALCE数据集)

文章目录 效果一览文章概述模型描述程序设计参考资料效果一览 文章概述 Pytorch实现基于Transformer 的锂电池寿命预测,环境为pytorch 1.8.0,pandas 0.24.2 随着充放电次数的增加,锂电池的性能逐渐下降。电池的性能可以用容量来表示,故寿命预测 (RUL) 可以定义如下: SOH(t…...

2023年【通信安全员ABC证】找解析及通信安全员ABC证考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 通信安全员ABC证找解析参考答案及通信安全员ABC证考试试题解析是安全生产模拟考试一点通题库老师及通信安全员ABC证操作证已考过的学员汇总&#xff0c;相对有效帮助通信安全员ABC证考试总结学员顺利通过考试。 1、【…...

小型电动助力播种机【设计说明书+CAD图纸+solidworks三维+STEP+IGS】

小型电动助力播种机是针对传统播种作业效率低、劳动强度大的问题设计的农业机械装置&#xff0c;其核心作用在于通过电动助力系统优化播种流程&#xff0c;实现均匀播种与精准控制。该装置采用模块化设计理念&#xff0c;将动力传输、播种控制与行走机构集成于一体&#xff0c;…...

收藏!非计算机专业也能转AI大模型?小白/程序员必看,打消转行所有顾虑

当下人工智能&#xff08;大模型&#xff09;领域发展势头迅猛&#xff0c;成为职场人眼中的“新风口”&#xff0c;不少就业者都想抓住这波新兴行业的红利&#xff0c;跻身AI赛道。但很多人卡在了起点——担心自己的专业不对口、过往经历不相关&#xff0c;纠结犹豫迟迟不敢迈…...

OpenClaw任务编排:GLM-4.7-Flash驱动复杂工作流

OpenClaw任务编排&#xff1a;GLM-4.7-Flash驱动复杂工作流 1. 为什么需要任务编排&#xff1f; 去年我接手了一个重复性极高的数据整理工作——每周需要从十几个不同来源收集数据&#xff0c;清洗后生成可视化报告。最初尝试用Python脚本自动化&#xff0c;但随着需求变化&a…...

5分钟搞定fastANI安装与基因组比对:从conda安装到结果解读全流程

5分钟搞定fastANI安装与基因组比对&#xff1a;从conda安装到结果解读全流程 第一次接触基因组比对时&#xff0c;我被各种复杂的参数和晦涩的结果文件搞得晕头转向。直到发现了fastANI这个神器——它不仅能快速计算基因组间的平均核苷酸相似性&#xff08;ANI&#xff09;&am…...

背包问题Ⅱ与二分问题

今天我对背包问题有了更深的理解&#xff0c;我一定要写下来&#xff0c;巩固自己的思路并且&#xff0c;遇到新的难题二分&#xff0c;不管了&#xff0c;干就完了&#xff01;&#xff01;&#xff01;完全背包以今天写的代码展开详细描述与解释,并附上题目#define N 1001 in…...

uniapp定位踩坑记:腾讯地图误差1km?高德地图精准配置全攻略

Uniapp定位精度优化实战&#xff1a;从腾讯地图1km误差到高德厘米级精准配置 最近在开发一款外卖配送类应用时&#xff0c;我被定位精度问题折磨得够呛。原本以为接入腾讯地图SDK就能轻松搞定&#xff0c;结果实测发现定位偏差经常达到800米以上——这对于需要精确到楼栋的外卖…...

5分钟搞定局域网IP扫描:OpUtils保姆级配置教程(附常见问题排查)

5分钟搞定局域网IP扫描&#xff1a;OpUtils保姆级配置教程&#xff08;附常见问题排查&#xff09; 办公室里突然断网了&#xff1f;打印机死活连不上&#xff1f;新同事的电脑无法接入内网&#xff1f;作为中小企业IT运维人员&#xff0c;这些场景你一定不陌生。别急着打电话求…...

农业IoT部署卡在MQTT连接失败?Python异步通信优化全链路解析(含田间实测吞吐量对比数据)

第一章&#xff1a;农业IoT部署卡在MQTT连接失败&#xff1f;Python异步通信优化全链路解析&#xff08;含田间实测吞吐量对比数据&#xff09;在华北平原某智慧农场的边缘网关部署中&#xff0c;23台土壤温湿度传感器频繁出现MQTT连接超时与会话重置现象&#xff0c;平均重连耗…...

springboot框架健康饮食营养管理信息系统

目录需求分析与系统设计技术栈选型与环境搭建核心功能实现数据可视化与报告生成测试与部署项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作需求分析与系统设计 明确健康饮食营养管理系统的核心需求&#xff0c;包括用户注册登录…...

临近起飞,在哪个平台更容易捡漏特价机票?2026年实测指南

“机票越临近起飞越便宜”——这个说法你一定听过。每逢假期临近&#xff0c;总有人在社交媒体上分享自己“起飞前两小时抢到白菜价机票”的神奇经历。但当你真的想在清明、五一出行前“赌一把”时&#xff0c;往往发现价格不仅没降&#xff0c;反而翻倍了。那么问题来了&#…...