2020年国赛高教杯数学建模E题校园供水系统智能管理解题全过程文档及程序
2020年国赛高教杯数学建模
E题 校园供水系统智能管理
原题再现
校园供水系统是校园公用设施的重要组成部分,学校为了保障校园供水系统的正常运行需要投入大量的人力、物力和财力。随着科学技术的发展,校园内已经普遍使用了智能水表,从而可以获得大量的实时供水系统运行数据。后勤部门希望基于这些数据,通过数学建模和数据挖掘及时发现和解决供水系统中存在的问题,提高校园服务和管理水平。
附件是某校区水表层级关系以及所有水表四个季度的读数(以一定时间为间隔,如15分钟)与相应的用水数据。请利用这些信息和数据,建立数学模型,讨论以下问题:
1. 统计、分析各个水表数据的变化规律,并给出校园内不同功能区(宿舍、教学楼、办公楼、食堂等)的用水特征。
2. 结合校区水表层级关系,建立水表数据之间的关系模型,并利用已有数据分析模型误差。
3. 输水管网的漏损是一个严重问题。资料显示,在维护良好的公共供水网络中,平均失水在5%左右;而在比较老旧的管网中,失水则会更多。请利用附件提供的数据,建立数学模型,分析该校园供水管网的漏损情况。
4. 地下水管暗漏不容易被发现,需要花费大量人力对供水管道的漏损进行检测及定位,如果能够从水表的实时数据及时发现并确定发生漏损的位置,将极为有益。请帮助学校解决这个问题。
5. 管网维修需要一定的人工费和材料费,但同时可以降低管网漏损程度。请根据以上结果和你了解的水价及维修成本确定管网漏损的最优维修决策方案。
整体求解过程概述(摘要)
智能水表的使用伴随着人工智能与科技的发展,变得越来越广泛,它的使用极大的方便了管理人员对用水情况的管理,它产生的数据也可以帮助其进行合理的数据估计,从而合理规划维修,本文基于某校园智能水表产生的数据,进行了挖掘和分析,具体如下:
对问题一,首先借助Python中的pandas库对大规模、多种数据类型共存数据处理的优势进行数据的操作和处理,描述分析了宿舍、教学楼、办公楼、食堂的用水特征:
对问题二,在问题一的基础上,首先利用水表层级关系附件,建立各级表的数据关系拓扑图,结合实际情况分析得出,一级水表中 401X、403X、405X 处的数据与二级水表相比误差率分别为 11%、11%、4%: 其他一级水表按照优质水表+0.5%-+3%:二级以上水表按照普通水表-5%-3%来标记误差;
对于问题三,首先利用时间点左右各5个点对其本身进行样条插值平滑预测,利用预测值与原始值的差值估计漏损量,总漏损量为 32215,总漏损率为9.8%,该校园漏损率低于全国的平均漏损率,此外还分析评估了各水表漏损情况;
对于问题四,根据上一问的估计结果,以 9.8%为闽值,漏损率超出闽值则标记一次漏损事故,结合各水表处的漏水量情况,按照漏损次数对水表进行漏损等级评定,得到40118T/40121T/40331T 等水表点的漏水可能性较高:
对于问题五,通过查看相关文献资料,获得平均水价范围5.5元/吨-6.5元/吨,单次维修费用500元/次-1500元/次,建立了每天是否维修的0-1规划模型,并取平均水价6元/吨以及单次维修成本均价1000元/次分析维修次数、损失金额与水价和维修成本的关系,最终的漏水维修33 次,总损失金额为 174630 元。
本文由数据驱动,建立模型挖掘校园用水的特性,对于供热网、高速路网等问题都具有良好的推广应用价值。
模型假设:
1.假设一级水表采用测量精度较高的电磁水表:
2.假设二级至四级采用均已广泛使用机械速度式水表,并有 2%-5%的相对误差
3.无人蓄意破坏供水管道:
4.各水表工作在理想状态下,不受强磁等外界因素干扰;
5.水质良好,无明显杂质,不对机械速度式水表产生过大影响:
问题分析:
问题一分析
问题需要根据已有季度用水表(附件)、水表层次(附件)的数据分析宿舍、教学楼、办公楼、食堂的用水情况特性。为此需要有以下几个分析步骤。
1. 对数据进行描述性统计,获得缺失值、异常值,以及校园用水的总体特征。
2. 需要对数据进行缺失值、异常值的处理,并对水表进行功能区划分,建立用水情况的水表层级关系表。
3. 对宿舍功能区、教学楼功能区、办公楼功能区、食堂功能区进行用水分析。
问题二分析
问题需要根据附件中提供的水表层级关系,建立不同层级间水表的关系模型,利用已知数据分析模型误差。
水表的合理使用:
由资料可知电磁水表的误差率较小,而机械速度式水表可检测的最小水流量与管道直径成正比,在直径较大的骨干管道中,采用机械速度式水表难以检测弱水流,误差较大,因此:
1一级水表采用精度更高的电磁水表;
2二级至四级均采用已广泛使用的机械速度式水表,
我们采用拓扑图将水表间的层级关系可视化;
计算上级水表表显读数和下属水表表显读数之和的差值,将误差分为三类;一级水表误差按电磁水表统计, 二级至四级水表按照机械速度式水表统计,二级水表按照实际误差来计算,利用其表显数据与一级表数据做差得出误差;
问题三分析
问题需要根据各级水表的显示数据分析出校园水网的具体漏损情况,文献2采用时间序列神经网络 (NAR神经网络) 的预测方法,基于当前各水表读数时间序列,对每个读数进行预测,表显读数与预测值波动超过一定闯值的则视为该时刻发生漏水,为解决本问题提供了思路,但是根据附件的数据,各水表的年用水情况各不相同,如若进行时间序列分析,需分水表、分时间段进行稳定性、白噪声以及参数预置的讨论,所有情况过于繁琐复杂,本问题并不合适。
有鉴于此,我们参考其预测方法,对时间序列 t 时刻的值进行样条插值平滑预测,从而进行漏损估计,具体的步骤如下:
1.首先对数据进行预处理工作。对一级水表按照超过一定误差的阙值的异常数据进行置均值的平滑处理:
2.其次对一级水表的时间序列数据进行样条插值平滑预测:
3.利用表显数据与预测值之差进行漏损量的估计.
问题四分析
问题需要从水表的实时数据中发现供水管网的漏损位置:
我们基于问题三的样条插值平滑预测模型:
1.对二级水表及下属水表进行漏损偏差统计:
2.计算漏损率
漏损率=(原始值-预测值)/预测值
3.对漏损率超过总体漏损率的时间点和地点判定其发生漏损现象,根据偏差统计划分风险等级,给出供水管网中,可能出现漏损的位置及概率。
问题五分析
问题五需要根据查询资料,结合前面所得到的漏水数据,做出最佳维修策略,为此应首先查阅国家相关水务数据 3,劳务数据以及材料费用数据 4,从而确定水价范围和单次维修价格的范围。以总损失金额最小作为规则目标函数,以每天是否维修作为决策变量,建立 0-1 规划模型,从而得到维修决策。
模型的建立与求解整体论文缩略图
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
程序代码:
import pandas as pd
shuju1=pd.read_excel('一季度.xlsx')
shuju2=pd.read_excel('二季度.xlsx')
shuju3=pd.read_excel('三季度.xlsx')
shuju4=pd.read_excel('四季度.xlsx')
print(shuju1)#==查看一季度的统计描述:====
#可以得到一季度的最大值、最小值、平均值等信息
print(shuju1.describe())#==为了快速浏览数据集,我们使用dataframe.info()功能===
print(shuju1.info())#===查看缺失值======
print(shuju1.isnull().sum())'''2 读取水表层:'''
shui_biao = pd.read_excel("水表层级.xlsx")
print(shui_biao)#查看水表有哪些不同类型:
print(shui_biao['水表名'].unique())#查看四个季度水表名数量:
print(len(shuju1['水表名'].unique()))
print(len(shuju2['水表名'].unique()))
print(len(shuju3['水表名'].unique()))
print(len(shuju4['水表名'].unique()))#给数据表添加上具体季度更方便观察:
import numpy as np
# 合并数据
shuju1['季度'] = pd.Series(["一季度" for i in range(len(shuju1.index))])
shuju2['季度'] = pd.Series(["二季度" for i in range(len(shuju2.index))])
shuju3['季度'] = pd.Series(["三季度" for i in range(len(shuju3.index))])
shuju4['季度'] = pd.Series(["四季度" for i in range(len(shuju4.index))])
print(shuju1)#添加合并:
shuju = shuju1.append([shuju2,shuju3,shuju4],ignore_index=True) # 添加合并
print(shuju)#再查看表数量:
print(len(shuju['水表名'].unique()))
print(len(shui_biao['水表名'].unique()))'''3 按照水表名分类,统计总用量'''
use_water = shuju.groupby(by='水表名')['用量'].sum() # 按照水表名分类,统计总用量
print(use_water)#从高到低排序下:
use_water.sort_values(ascending=False)import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
#mpl.rcParams['font.sans-serif'] = ['Times New Roman'] #Times New Roman字体
mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
import matplotlib; matplotlib.use('TkAgg')
#====根据使用绘制直方图:=====
use_water.plot.hist(histtype='bar', rwidth=0.5)
plt.savefig('可视化/0.1.png', dpi=300, bbox_inches="tight")
plt.show()'''4 对这些功能区的类型进行分析:'''# 全部水表list_table_name = list(shuju['水表名'].unique()) #合并后的数据'''4.1 功能区分类'''#======4.1.1 找到所有宿舍的水表==========
list_home = [] #宿舍
list_teaching_build = [] #教学楼
list_teacher_build = [] #活动地方
for name in list_table_name.copy():if name.find("学生宿舍") != -1 or name.find("留学生楼") != -1:list_home.append(name)list_table_name.remove(name)
print(list_home)#=======4.1.2 同理,找到教学楼=========
for name in list_table_name.copy():if name.find("XX") != -1 and name.find("楼") != -1:print(name)list_teaching_build.append(name)list_table_name.remove(name)
print(list_teaching_build)#======4.1.3 农业区=================
list_agritural = []
for name in list_table_name.copy():if name.find("养殖") != -1 or name.find("养鱼") != -1 or name.find("大棚")!=-1 or name.find("花")!=-1:list_agritural.append(name)list_table_name.remove(name)
print(list_agritural)#=======4.1.4 后勤===============
for name in list_table_name.copy():if name.find("楼")!= -1:list_teaching_build.append(name)list_table_name.remove(name)
print(list_table_name)#========类型添加上去·:================list_backup = list_table_name
name_list = shuju['水表名'].tolist() #.tolist:将数组转化为列表
type_list = []
for name in name_list:if name in list_backup:type_list.append("后勤")elif name in list_agritural:type_list.append("农业")elif name in list_home:type_list.append('宿舍')elif name in list_teaching_build:type_list.append("活动地方")else:type_list.append('教学楼')shuju['类型'] = pd.Series(type_list)
print(shuju)'''4.2 不同类型的用量:'''
type_sum = shuju.groupby(by='类型')['用量'].sum()
print(type_sum)#===对不同类型可视化:=====type_sum.plot.barh(alpha=0.7)
df_group_two = shuju.groupby(by=['类型'])
i = 0
colors=['r','g','b','m','c']
plt.figure(figsize=(35, 35), dpi=100)
for types ,group in df_group_two:i += 1plt.subplot(3,2,i)group.groupby(by='水表名').sum()["用量"].plot.barh(title=types,color=colors[i-1],alpha=.5)
plt.savefig('可视化/1不同类型可视化.png', dpi=300, bbox_inches="tight")
plt.show()#分析完把合并后的数据保存起来:
shuju.to_csv('data1.txt',index=False) #data1.csv容易数据缺失,所以考虑txt
#shuju.to_xlsx('total.xlsx',index=False)#按照时间聚合:
shuju['timeStamp'] = pd.to_datetime(shuju['采集时间'])
shuju.set_index("timeStamp", inplace=True)
data_quarter = shuju.resample("Q") # 时间聚合采样。.resample:重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率转换的便捷的方法。'''4.3 接下来分析每个季度、月份、天数、24小时变化:'''#===4.3.1 季度变化规律:===================
data_quarter.sum()["用量"].plot.line(style="m>-.",alpha=0.5,title="用水量随着季度变化趋势") #Q:季度
plt.savefig('可视化/0.2用水量随着季度变化趋势.png', dpi=300, bbox_inches="tight")
plt.show()#===4.3.2 月份变化规律:===================
data_month = shuju.resample('M').sum()["用量"].plot.line(style="c*-.",alpha=0.5,title="用水量随着月份变化趋势") #M:月份
plt.savefig('可视化/0.3用水量随着月份变化趋势.png', dpi=300, bbox_inches="tight")
plt.show()'''添加具体时间:'''
shuju['hour'] = pd.to_datetime(shuju['采集时间']).dt.hour
shuju['day'] = pd.to_datetime(shuju['采集时间']).dt.day
print(shuju)#====4.3.3 用水量一天随着小时变化规律:=============
shuju.groupby(by='hour').sum()['用量'].plot.line(style="gh-.",alpha=0.5,title="用水量随着时间变化趋势")
plt.grid()
plt.savefig('可视化/0.4用水量一天随着小时变化规律.png', dpi=300, bbox_inches="tight")
plt.show()#=====4.3.4 一个月内用水量随着天数变化:=======
shuju.groupby(by='day').sum()['用量'].plot.line(style="rd-.",alpha=0.5,title="用水量随着天变化趋势")
plt.grid()
plt.savefig('可视化/0.5一个月内用水量随着天数变化.png', dpi=300, bbox_inches="tight")
plt.show()'''4.4 不同区域的特征:'''
# 不同区域用水特征#=======4.4.1 不同区域随着季度用水变化=======================
i = 0
styles=['*-.','-.','1-.','2-.','3-.']
plt.figure(figsize=(20, 20), dpi=100)
for index,group in shuju.groupby(by='类型'):i += 1plt.subplot(3,2,i)group.resample("Q").sum()['用量'].plot.line(style=styles[i-1],color=colors[i-1],alpha=0.5,title="{}用水量随着季度变化趋势".format(index)) #四个季度
plt.savefig('可视化/2 不同区域随着季度用水变化.png', dpi=300, bbox_inches="tight")
plt.show()#======4.4.2 不同区域随着月份用水变化===============
i = 0
plt.figure(figsize=(20, 20), dpi=100)
for index,group in shuju.groupby(by='类型'):i += 1plt.subplot(3,2,i)group.resample("M").sum()['用量'].plot.line(style=styles[i-1],color=colors[i-1],alpha=0.5,title="{}用水量随着月份变化趋势".format(index))
plt.savefig('可视化/3不同区域随月份变化.png', dpi=300, bbox_inches="tight")
plt.show()#=====4.4.3 不同区域随着每月的天数用水变化==============
i = 0
plt.figure(figsize=(20, 20), dpi=100)
for index,group in shuju.groupby(by='类型'):i += 1plt.subplot(3,2,i)group.groupby(by='day').sum()['用量'].plot.line(style=styles[i-1],color=colors[i-1],alpha=0.5,title="{}用水量随着天数变化趋势".format(index))plt.grid()
plt.savefig('可视化/4不同区域随着每月的天数用水变化.png', dpi=300, bbox_inches="tight")
plt.show()#=====4.4.4 不同区域随着每天的时辰用水变化==============
i = 0plt.figure(figsize=(20, 20), dpi=100)
for index,group in shuju.groupby(by='类型'):i += 1plt.subplot(3,2,i)group.groupby(by='hour').sum()['用量'].plot.line(style="r*-.",alpha=0.5,title="{}用水量随着时辰变化趋势".format(index))plt.grid()
plt.savefig('5.png', dpi=300, bbox_inches="tight")
plt.show()
#分析完毕~把数据保存起来:
shuju.to_csv('data2.txt',index=False) #data2.csv容易装不下数据,照成数据缺失
#shuju.to_xlsx('all.xlsx',index=False)
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:
2020年国赛高教杯数学建模E题校园供水系统智能管理解题全过程文档及程序
2020年国赛高教杯数学建模 E题 校园供水系统智能管理 原题再现 校园供水系统是校园公用设施的重要组成部分,学校为了保障校园供水系统的正常运行需要投入大量的人力、物力和财力。随着科学技术的发展,校园内已经普遍使用了智能水表,从而可以…...
《C++与 OpenCV 机器学习模块:目标检测的强大融合》
在当今科技飞速发展的时代,目标检测技术已经成为计算机视觉领域的一颗璀璨明珠,广泛应用于安防监控、自动驾驶、智能图像分析等众多领域。而 C语言凭借其高效性和强大的性能,与 OpenCV 的机器学习模块相结合,为实现精准且高效的目…...
函数与模块
目录 1.函数 1.1.函数概念 1.2.函数定义 1.3.函数分类 1.4.函数参数类型 1.4.1.位置参数 1.4.2.关键字参数 1.4.3.默认值参数 1.4.4.可变参数 1.5.匿名函数 1.6.参数传递问题 2.冒泡排序 2.1.冒泡排序规则 2.2.冒泡排序实现 3.math 模块 4.random 模块 5.date…...
SQL面试题——滴滴SQL面试题 取出累计值与1000差值最小的记录
滴滴SQL面试题 取出累计值与1000差值最小的记录 今天的题目来自滴滴出行 已知有表cost_detail包含id和money两列,id为自增,请累加计算money值,并求出累加值与1000差值最小的记录。 +-----+--------+ | id | money | +-----+--------+ | 1 | 200 | | 2 | 300 …...
使用 Elastic 和 Amazon Bedrock 制作混合地理空间 RAG 应用程序
作者:来自 Elastic Udayasimha Theepireddy (Uday), Srinivas Pendyala, Ayan Ray 借助 Elasticsearch 及其向量数据库,你可以构建可配置的搜索和可信的生成式 AI (GenAI) 体验,这些体验可快速从原型扩展到生产。主要功能包括: 内…...
计算机软著个人申请指南
笔者最近申请了两本软著证书,结合自己的经历介绍一下。 软著登记网址:中国版权业务登记平台 准备工作 你的项目源码源代码统计工具 source-codes-trim:笔者开发自用的源码处理工具vscode插件其他的可以自己在网上搜资源 Word 申请流程 注…...
OmniParser一种用于增强视觉语言模型与用户界面交互效果的技术
OmniParser一种用于增强视觉语言模型与用户界面交互效果的技术 OmniParser的核心功能是将用户界面截图转换为结构化元素,这一过程涉及几个关键步骤和技术要素,解决了视觉语言模型(VLMs)在与用户界面交互时所面临的多种挑战。 1.…...
HBU深度学习作业10-BPTT
1、推导BPTT 2、推导梯度 3、分析其可能存在梯度爆炸的原因并给出解决方法 为了改善循环神经网络的长程依赖问题,一种非常好的解决方案是在公 式(6.50)的基础上引入门控机制来控制信息的累积速度,包括有选择地加入新 的信息,并有选择地遗忘之…...
L2G6000 - MindSearch部署实践
文章目录 MindSearch部署实践部署MindSearch到 hugging face Spaces上启动MindSearch启动后端启动前端 部署到自己的 HuggingFace Spaces上 部署MindSearch streamlit版本到Hugging Face上 MindSearch部署实践 部署MindSearch到 hugging face Spaces上 在Codespaces上选择Bla…...
CentOS 7 上安装 MySQL 8.0.40 (二进制安装)
要在 CentOS 7 上安装 MySQL 8.0.40,按照以下步骤操作: 下载安装包。 https://dev.mysql.com/downloads/mysql/ 下载之前查看系统c版本 解压安装包 首先,解压下载的 .tar.xz 安装包。 cd /path/to/your/downloads tar -xvf mysql-8.0…...
应用案例 | 船舶海洋: 水下无人航行器数字样机功能模型构建
水下无人航行器数字样机功能模型构建 一、项目背景 为响应水下装备系统研制数字化转型及装备系统数字样机建设的需要,以某型号水下无人航行器(Underwater Unmanned Vehicle,UUV)为例,构建UUV数字样机1.0功能模型。针对…...
Chromium CDP 开发(六):注册自己的指令(下)
引言 在这一章节中,我们将详细讲解如何将新定义的 TimerSend 指令和 TimerLog 事件添加到项目 的 inspector_protocol_config.json 文件中,从而使这些功能能够在 CDP(Chrome DevTools Protocol)中被识别并正常使用。 inspector_pr…...
【基础算法总结】哈希表/set/map篇
目录 一,哈希表简介二,算法原理和代码实现1.两数之和349.两个数组的交集面试题01.02.判断是否互为字符重排217.存在重复元素219.存在重复元素II692.前k个高频单词45.字母异位词分组 三,算法总结 一,哈希表简介 哈希思想是算法中一…...
数字逻辑理论题目+知识点复习
昨天考完的数字逻辑理论考试,啊啊啊还有实验,生活不易,且行且珍惜。 请以最大的善意对待生活(,,>᎑<,,)。...
证明网络中的流形成一个凸集
证明网络中的流形成一个凸集 步骤1:定义和符号步骤2:线性组合步骤3:验证容量限制步骤4:验证流量守恒结论示例代码(C语言) 在网络流理论中,一个流 f f f 是定义在网络图的边集上的一种函数&…...
SpringBoot3
1. 配置文件 1. 基本使用 使用 配置文件classpath:application.properties spring.jdbc.drivercom.mysql.cj.jdbc.Driver spring.jdbc.urljdbc:mysql://localhost:3306/batis spring.jdbc.usernameroot spring.jdbc.password123456使用配置文件的值:Value("…...
Linux之线程概念,理解和控制
Linux之线程概念,理解和控制 一.线程1.1线程的概念1.2线程的理解1.3线程的优缺点,异常和用途1.4线程和进程1.5线程的控制1.4.1线程的创建1.4.2线程的终止1.4.3线程的等待1.4.4线程的分离 一.线程 1.1线程的概念 在我们了解了进程的同时我们在学校上课时…...
系统监控——分布式链路追踪系统
摘要 本文深入探讨了分布式链路追踪系统的必要性与实施细节。随着软件架构的复杂化,传统的日志分析方法已不足以应对问题定位的需求。文章首先解释了链路追踪的基本概念,如Trace和Span,并讨论了其基本原理。接着,文章介绍了SkyWa…...
【Leetcode Top 100】146. LRU 缓存
问题背景 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 c a p a c i t y capacity capacity 初始化 LRU 缓存int get(int key) 如果关键字 k e y key key 存在于缓存中&…...
Ubuntu Server 22.04.5 LTS重启后IP被重置问题
Ubuntu Server 22.04.5 LTS重启后IP被重置问题 最近在使用Ubuntu Server 22.04做项目开发测试时发现每次重启和关机后,所设置的静态IP地址都会回复到安装系统时所设置的ip Ubuntu Server 22.04 官网下载地址:Ubuntu官方下载地址 对虚拟机下安装Ubuntu感…...
电机功率、电压与电流的换算方法
在电气工程和相关行业中,电机的功率、电压和电流是三个重要的基本参数。它们之间有着密切的关系,而理解这些关系对于电机的选型、设计和应用至关重要。本文将详细阐述这三者之间的换算关系,以及相关公式的应用。 一、电机功率的定义 电机功…...
【Java】反射简介
框架的核心和架构师的核心 反射和代理是重中之重 反射 反射的作用 在运行的时候由代码获取类的信息 三种获取类信息的方式: 对象.getClass()Class.forName("类的路径")类.class Class :一个用来存储类信息的类 获取类信息是获取的整体的…...
【JAVA】Java第十三节:String类(String相关方法,以及StrinBuftrer , StringBulder相关方法)
本文详细介绍了String类以及常用的String相关方法,以及StrinBuftrer , StringBulder相关方法的使用,建议有印象即可,不需要都记住,使用时去查取即可 一、创建一个String类型的变量 我们平时创建String类型的变量一般是第一种形式…...
电子信息工程自动化 基于单片机的出租车计价器设计
摘 要 出租车作为一种城市中非常重要的公共交通工具,他与人们的生活息息相关。所以我也设计了一款出租车计价器,它采用模块化设计,包含里程测量模块、数据存储模块、按键模块、时钟模块、显示模块、语音播报模块六大主要模块。本设计的出租车…...
CentOS 二进制安装部署MongoDB 4.0
一、安装MongoDB 1. 下载 MongoDB 二进制文件 前往 MongoDB 官方下载页面(https://www.mongodb.com/try/download/community) 选择对应版本的 tar 包。 wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.28.tgz 2. 解压并移动至目标目录 解压文件ÿ…...
SQL面试题——京东SQL面试题 合并数据
京东 合并数据 几天的题目来自知名电商平台京东 已知有数据A如下,请分别根据A生成B和C。 数据A +-----+-------+ | id | name | +-----+-------+ | 1 | aa | | 2 | aa | | 3 | aa | | 4 | d | | 5 | c | | 6 | aa | | 7 | aa | | …...
windows安装使用conda
在Windows系统上安装和使用Conda的详细步骤如下: 一、下载Conda安装包 访问Conda的官方网站Anaconda | The Operating System for AI,点击“Downloads”按钮。在下载页面,选择适合您系统的安装包。通常,对于Windows系统…...
C++知识整理day4内存管理——new和delete详解
文章目录 1.C/C内存分布2.C语言中动态内存管理:malloc/realloc/calloc3.C内存管理方式3.1 new/delete操作内置类型3.2 new和delete操作自定义类型 4.malloc/free和new/delete到底什么区别?4.1 对于自定义类型4.2 对于自定义类型4.3 总结:它们…...
STM32 自学笔记
摘抄于大学期间记录在QQ空间的一篇自学笔记,当前清理空间,本来想直接删除掉的,但是感觉有些舍不得,因此先搬移过来。 RAM vs ROM vs FLASH 2013-09-05记录,ROM和RAM指的都是半导体存储器,ROM是Read Only …...
spring通过RequestContextHolder获取HttpServletRequest对象
1.获取HttpServletRequest对象方法: public static HttpServletRequest getRequest() {ServletRequestAttributes attributes ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());assert attributes ! null;return attributes.getRequest(…...
【特殊子序列 DP】力扣1137. 第 N 个泰波那契数
泰波那契序列 Tn 定义如下: T0 0, T1 1, T2 1, 且在 n > 0 的条件下 Tn3 Tn Tn1 Tn2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入:n 4 输出:4 解释: T_3 0 1 1 2 T_4 1 …...
tcp连接设置一个超时时间(没在操作系统层面设置)
await asyncio.open_connection(ip, port, limit1024)代码是使用了操作系统的TCP连接,正常TCP连接的时候会有重试机制,当第一个SYN没有回复的时候,会再重试4次,每次间隔1s, 2s,4s, 8s,我觉得太慢了…...
03、Node.js安装及环境配置
1.下载node.js 下载地址:Node.js 2.安装 2.1 自定义安装路径(可以选择默认) 下图根据本身的需要进行,我选择了默认Node.js runtime,然后Next: Node.js runtime :表示运行环境 npm package mana…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Remote Communication Kit
1.问题描述: DynamicDnsRule有没有示例?这个地址是怎么解析出来 https://developer.huawei.com/consumer/cn/doc/harmonyos-references/remote-communication-rcp-0000001770911890#section8160554134811 解决方案: ‘DynamicDnsRule’&a…...
WebStorm快捷键保持跟Idea一致
修改连续行局部多选 在WebStorm中同时按下ctrl alt s; 选择KeyMap 输入Column Selection Mode选择快捷键, 右键选择Add Mouse Shortcut 按下alt 鼠标左键 如果出现占用的情况,直接删除其他使用该快捷键的地方即可; 修改跨行局部多选 在…...
14、鸿蒙学习——管理通知角标
针对未读的通知,系统提供了角标设置接口,将未读通知个数显示在桌面图标的右上角角标上。 通知增加时,角标上显示的未读通知个数需要增加。 通知被查看后,角标上显示的未读通知个数需要减少,没有未读通知时࿰…...
【词向量表示】Word2Vec原理及实现
文章目录 Word2VecHow achieveLookup tableCodingPre-dataingModelNegative sameple Word2Vec 单词与单词之间的向量往往不在同一个向量空间,例如,传统的编码方式:one-hot编码,不同单词[1, 0, 0]和[0, 1, 0]之间的余弦相似度为0。…...
【C++】位图
Ⅰ、bitset的介绍 位图: 就是用 比特位 来标识某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。 位图的接口: 成员函数 功能 set 设置指定位或所有位 reset 清空指定位或所有位 flip …...
性能测试需求分析(超详细总结)
🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 1、客户方提出 客户方能提出明确的性能需求,说明对方很重视性能测试,这样的企业一般是金融、电信、银行、医疗器械等;他们…...
React开发 - 技术总结系列二
HOC 初体验 高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。 简单点说,就是组件作为参数,返回值也是组件的函数&#x…...
Spring事务实现原理
我们一般将Spring事务使用在数据库操作上面,用来保证数据的一致性和完整性 实现原理: 通过AOP和事务管理器实现的 1.AOP拦截: 拦截Transactional注解的方法调用 2.事务管理器: 负责事务的开启,提交和回滚 3.事务…...
云服务器部署upload-labs-docker(文件上传靶场)环境 以及相关报错问题
环境的搭建 准备:云服务器(本地的linux服务器(版本最好不要是老的不然不兼容docker)) f8x配置docker环境: https://github.com/ffffffff0x/f8x 一键配置 docker拉取file-labs靶场 https://github.com…...
Python进阶编程总结
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...
【第 1 章 初识 C 语言】1.8 使用 C 语言的 7 个步骤
目录 1.8 使用 C 语言的 7 个步骤 1.8.1 第 1 步:定义程序的目标 1.8.2 第 2 步:设计程序 1.8.3 第 3 步:编写代码 1.8.4 第 4 步:编译 1.8.5 第 5 步:运行程序 1.8.6 第 6 步:测试和调试程序 1.8.…...
vue3 实现音频转文字组件
使用recorder-core第三方插件实现音频转纯文本的功能。 工具类文件 recoder.ts import Recorder from recorder-core import recorder-core/src/engine/wav import recorder-core/src/extensions/lib.fft.js import recorder-core/src/extensions/frequency.histogram.view i…...
MySQL各种锁详解
什么是锁? 1.1 锁的解释 计算机协调多个进程或线程并发访问某一资源的机制。 1.2 锁的重要性 在数据库中,除传统计算资源(CPU、RAM、I/O等)的争抢,数据也是一种供多用户共享的资源。 如何保证数据并发访问的一致性&…...
前端工程 Node 版本如何选择
1. Node 与 Npm 版本对应 这是一个必知必会的问题,尤其是对于维护那些老掉牙、一坨坨、非常大的有着长期历史的老破大工程。 1.1. package-lock.json 版本 首先你要会看项目的 package-lock.json 文件中的 lockfileVersion 版本号,这对于 NPM 安装来说…...
新增白名单赋予应用安装权限
目录 相关问题 具体实现 相关问题 安装app到/data/分区时,如何在安装阶段就赋予权限,无需请求权限 具体实现 frameworks/base/core/res/res/values/config.xml <!-- For whitelis apk --><string-array translatable"false" nam…...
学习Python的笔记14--迭代器和生成器
1.迭代器(Iterator) 概念: 迭代意味着重复多次,就像循环一样。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退。 1.iter…...
【Golang】Golang基础语法之面向对象:结构体和方法
面向对象——结构 Go 仅支持封装,不支持继承和多态;继承和多态要做的事情交给接口来完成,即——面向接口编程。Go 只有 struct,没有 class。 定义一个最简单的树节点(treeNode)结构,方法如下&…...