(源码版)2023全国大学生数学建模竞赛E题黄河水沙监测数据分析详解+Python代码源码SARIMA模型
前言
比赛结束了不知道大家情况如何,就我个人而言的话,由于工作任务比较繁重仅完成了对D题和E题的思路解答和建模,还是比较遗憾的。一个人要完成多题的建模和分析确实不是一件容易的事情,当然我向大家做出承诺历年的建模比赛我都会写出详解和建模过程,只要大家需要我的帮助,我会尽我最大的能力完成。本次大赛中个人认为E题是一道比较好上手的题目,题意简洁,建模思路清晰明了。但是由于是时间序列数据,数据处理方面可能会比较麻烦,虽然建模思路比较清晰,但是时序预测分析算法还是有一定难度的,细节很多。相对于D题来说,对建模手能力要求要高。
对于时间序列数据本人有过较多行业内分析经验,故做此题还是比较轻松的,时间序列数据在领域行业方面是要经常打交道的,以后想要从事数据分析或者数据挖掘应该要对此类数据建模过程熟悉。对此方面感兴趣的同学或是想要学习这方面建模的知识推荐订阅博主的专栏,关于时序数据处理和建模我已经整理好了十来篇以及关于此类模型建模运用的案例:
博主专注建模四年,参与过大大小小数十来次数学建模,理解各类模型原理以及每种模型的建模流程和各类题目分析方法。此专栏的目的就是为了让零基础快速使用各类数学模型、机器学习和深度学习以及代码,每一篇文章都包含实战项目以及可运行代码。博主紧跟各类数模比赛,每场数模竞赛博主都会将最新的思路和代码写进此专栏以及详细思路和完全代码。希望有需求的小伙伴不要错过笔者精心打造的专栏。
一、问题重述
赛题背景
研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响,以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。
建模需求
根据该水文站水沙通量的变化规律,预测分析该水文站未来两年水沙通量的变化趋势。
建模分析
本题最重要的关键在于第三问,第一问和第二问我都有源码详解解答,大部分是数据处理和统计的工作,并没有深度的建模需求,但是第三问就很明确的给出了需求:需要建立时序预测模型来分析预测该水文站未来两年水沙通量的变化趋势。那么经过了问题一和问题二的铺垫,我们对数据也有了较为清晰的认识,也将数据转化为我们想要的格式,如果对第一问和第二问有疑问的同学去看我之前的文章:
(源码版)2023 年高教社杯全国大学生数学建模竞赛-E 题 黄河水沙监测题一数据分析详解+Python代码
数据处理完的数据格式为:
这里数据需要注意一下,一天仅记录一次数据且记录时间不是固定的,不过由于时间预测范围是两年,因此建模过程中我们设定的时间维度最好大一点,也就是采取维度为日最好,不然如果设置为小时的话数据十分稀疏,而且填充数据误差也太大了,因此直接默认该天数据以一次小时记录为准即可,题意也是让你这么做的。最终处理结果:
数据预览
进行建模之前我们最好还是预览一下数据的变化,辅助我们判断:
水位:
水流量:
含沙量:
很明显该数据呈现一定的周期性波动,且在年终的时候数据起伏要比其他时间段多很多。描述这类序列的模型称作季节时间序列模型(seasonal ARIMA model),用SARIMA表示。季节时间序列模型也称作乘积季节模型(Multiplicative seasonal model)。那么我们现在可以开始建模了。
SARIMA模型建模
SARIMA(Seasonal Autoregressive Integrated Moving Average)是一种基于 ARIMA 模型的季节时间序列预测模型。ARIMA 模型是一种广泛应用于时间序列预测的经典模型,它考虑了时间序列的趋势性和周期性。SARIMA 模型在 ARIMA 模型的基础上增加了季节性,因此可以更好地应对具有季节性变化的时间序列数据。
SARIMA 模型通常包含以下几个参数:
- 季节周期 (Seasonal period):时间序列数据呈现季节性变化的周期,例如一年、一周、一天等。
- 差分次数 (Order of differencing):对时间序列数据进行差分的次数,以消除数据的非平稳性。
- 自回归项 (Autoregressive terms):用于建立时间序列与其过去值的关系,表示时间序列数据的趋势性。
- 移动平均项 (Moving average terms):用于建立时间序列的随机波动性与过去的误差的关系,表示时间序列数据的随机性。
SARIMA 模型可以用来预测具有季节性变化的时间序列数据,例如销售额、气温、股票价格等。它需要基于历史数据来拟合模型,然后使用模型来预测未来一段时间内的数据。在使用 SARIMA 模型时,需要选择合适的参数和模型结构,并进行模型诊断和调优,以获得更准确的预测结果。
数据填充
这里需要注意的是,从2016年1月1日开始计算到2021年12月31天总共有2192天才对,而数据仅有2159条,一天内有重复数据且纯在天数空缺没有记录,我们需要进行数据填充。
先将数据时间范围补齐:
# 创建完整日期范围的日期索引
date_range = pd.date_range(start='2016-01-01', end='2021-12-31', freq='D')
# 创建包含完整日期范围的 DataFrame
date_df = pd.DataFrame(index=date_range)
# 将原始数据与日期索引合并
merged_df = date_df.merge(df_with_sediment, left_index=True, right_on='日期时间', how='left')
# 将缺失值填充为特定的值(这里是NaN)
merged_df['水位(m)'].fillna('NaN', inplace=True)
merged_df=merged_df.set_index(merged_df['日期时间'])
# 删除原始的日期时间列
merged_df.drop(columns=['日期时间'], inplace=True)
merged_df
此时保留相同日期的第一个时间索引的数据:
进行指数平滑法填充:
merged_df['水位(m)'].fillna(merged_df['水位(m)'].ewm(span=3).mean(), inplace=True)
merged_df['流量(m3/s)'].fillna(merged_df['流量(m3/s)'].ewm(span=3).mean(), inplace=True)
merged_df['含沙量(kg/m3) '].fillna(merged_df['含沙量(kg/m3) '].ewm(span=3).mean(), inplace=True)
merged_df
数据填充完成之后可以开始进行季节性分析了。
季节性分析
可以使用seasonal_decompose()进行分析,将时间序列分解成长期趋势项(Trend)、季节性周期项(Seansonal)和残差项(Resid)这三部分。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('fivethirtyeight')
from matplotlib.pylab import rcParams
import pmdarima as pm
import statsmodels.api as sm
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf # 画图定阶
from statsmodels.tsa.stattools import adfuller # ADF检验
from statsmodels.stats.diagnostic import acorr_ljungbox # 白噪声检验
import warnings
import itertools
warnings.filterwarnings("ignore") # 选择过滤警告
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
from statsmodels.tsa.seasonal import seasonal_decompose
# 分解数据查看季节性 freq为周期
# 推断频率参数
ts_decomposition = seasonal_decompose(merged_df['水位(m)'], period=52)
ts_decomposition.plot()
plt.show()
方框为负号。
ADF检验
ARIMA模型要求时间序列是平稳的。所谓平稳性,其基本思想是:决定过程特性的统计规律不随着时间的变化而变化。由平稳性的定义:对于一切t,s,和的协方差对于时间的依赖之和时间间隔有关,而与实际的时刻t和s无关。因此,平稳过程可以简化符号,其中为自协方差函数,为自相关函数,记为:
关于严宽平稳我之前写自回归模型(AR)已经写的很清楚了。如果通过时间序列图来用肉眼观看的话可能会存在一些主观性。ADF检验(又称单位根检验)是一种比较常用的严格的统计检验方法。
ADF检验主要是通过判断时间序列中是否含有单位根:如果序列平稳,就不存在单位根;否则,就会存在单位根。
from statsmodels.tsa.stattools import adfuller # ADF检验def stableCheck(timeseries):# 移动60期的均值和方差rol_mean = timeseries.rolling(window=60).mean()rol_std = timeseries.rolling(window=60).std()# 绘图fig = plt.figure(figsize=(12, 8))orig = plt.plot(timeseries, color='blue', label='Original')mean = plt.plot(rol_mean, color='red', label='Rolling Mean')std = plt.plot(rol_std, color='black', label='Rolling Std')plt.legend(loc='best')plt.title('Rolling Mean & Standard Deviation')plt.show()# 进行ADF检验print('Results of Dickey-Fuller Test:')dftest = adfuller(timeseries, autolag='AIC')# 对检验结果进行语义描述dfoutput = pd.Series(dftest[0:4], index=['Test Statistic', 'p-value', '#Lags Used', 'Number of Observations Used'])for key, value in dftest[4].items():dfoutput['Critical Value (%s)' % key] = valueprint('ADF检验结果:')print(dfoutput)
Results of Dickey-Fuller Test: ADF检验结果: Test Statistic -5.503970 p-value 0.000002 #Lags Used 7.000000 Number of Observations Used 2184.000000 Critical Value (1%) -3.433348 Critical Value (5%) -2.862864 Critical Value (10%) -2.567475
根据所提供的ADF检验结果,可以得到以下结论:
Test Statistic(测试统计量): -5.503970
- 测试统计量是ADF检验的一个关键输出。它比较了实际数据与随机漫步(即没有趋势)之间的差异。这个值越低,表示数据中可能存在趋势。
p-value(p值): 0.000002
- p值是假设检验的一个关键输出,它表示在原假设为真的情况下,观察到测试统计量或更极端情况的概率。在这里,p值非常接近于零,远小于通常使用的显著性水平(例如0.05),这表明我们可以拒绝原假设。
#Lags Used(使用的滞后阶数): 7
- 这是在单位根检验中使用的滞后阶数。它可以帮助确定是否存在自相关性。
Number of Observations Used(使用的观测样本数): 2184
- 这表示在检验中使用的观测样本数。
Critical Values(临界值):
- 临界值是用于比较测试统计量的阈值。在不同的显著性水平下(1%,5%,10%等),它们确定了拒绝原假设的临界值。
根据p值小于通常的显著性水平(例如0.05),我们可以拒绝原假设,即时间序列数据是稳定的。因此,根据此ADF检验的结果,可以得出结论:该时间序列数据是稳定的,没有单位根,具有趋势性。
白噪声检验
如果平稳序列是非白噪声序列,那么说明它不是由随机噪声组成的。这意味着序列中存在一些内在的结构或模式,这些结构或模式可以被进一步分析和建模,以便进行预测或其他目的。我们可以通过Ljung-Box检验,是时间序列分析中检验序列自相关性的方法
def whiteNoiseCheck(data):result = acorr_ljungbox(data, lags=1)temp = result.iloc[:,1].values[0]#print(result.iloc[:,1].values[0])print('白噪声检验结果:', result)# 如果temp小于0.05,则可以以95%的概率拒绝原假设,认为该序列为非白噪声序列;否则,为白噪声序列,认为没有分析意义print(temp)return result
ifwhiteNoise = whiteNoiseCheck(df_evel_timese_diff2)
LB统计量用于评估序列中是否存在自相关性,p-value则用于判断序列是否为白噪声。一般来说,如果序列是白噪声,那么LB统计量的值会接近0,p-value会很大,说明序列中不存在自相关性。但是如果p-value小于显著性水平(通常是0.05),那么就可以拒绝原假设,即序列不是白噪声。在这个检验结果中,LB统计量为2122,p-value接近0,p-value远小于0.05,因此可以拒绝原假设,即序列不是白噪声。
模型拟合
拟合SARIMA模型需要确定其参数。SARIMA模型有三个重要的参数:p、d和q,分别代表自回归阶数、差分阶数和移动平均阶数;另外还有季节性参数P、D和Q,分别代表季节性自回归阶数、季节性差分阶数和季节性移动平均阶数。根据经验和统计方法,可以通过观察样本自相关函数ACF和偏自相关函数PACF,选取最佳的p、d、q和P、D、Q参数,使得残差序列的自相关函数和偏自相关函数均值为0。
时间序列定阶
from matplotlib.ticker import MultipleLocator
def draw_acf(data):# 利用ACF判断模型阶数plot_acf(data)plt.title("序列自相关图(ACF)")plt.show()def draw_pacf(data):# 利用PACF判断模型阶数plot_pacf(data)plt.title("序列偏自相关图(PACF)")plt.show()def draw_acf_pacf(data):f = plt.figure(facecolor='white')# 构建第一个图ax1 = f.add_subplot(211)# 把x轴的刻度间隔设置为1,并存在变量里x_major_locator = MultipleLocator(1)plot_acf(data, ax=ax1)# 构建第二个图ax2 = f.add_subplot(212)plot_pacf(data, ax=ax2)plt.subplots_adjust(hspace=0.5)# 把x轴的主刻度设置为1的倍数ax1.xaxis.set_major_locator(x_major_locator)ax2.xaxis.set_major_locator(x_major_locator)plt.show()
(1)确定和的阶数:当对原序列进行了阶差分和为的阶差分后序列为平稳序列,则可以确定,,的值。
(2)确定和的阶数:
- 首先对平稳化后的时间序列绘制ACF和PACF图;
- 通过观察季节性处的拖尾/截尾情况来确定的值
- 观察短期非季节性处的拖尾/截尾情况来确定的值
之前已经在步骤三处确定了。对于剩下的参数,将依据如下的ACF和PACF图确定。下图的横坐标是以月份为单位。
非季节性部分:
对于,在后,图拖尾,图截尾。同样地,对于,在后,图截尾,图截尾。同样地,对于,在,ACF图截尾,PACF图拖尾。
季节性部分:
,的确定和非季节性一样,不过需要记得滞后的间隔为60。
AR模型:自相关系数拖尾,偏自相关系数截尾;
MA模型:自相关系数截尾,偏自相关函数拖尾;
ARMA模型:自相关函数和偏自相关函数均拖尾。
pmdarima.auto_arima()方法可以帮助我们自动确定的参数,直接输入数据,设置auto_arima()中的参数则可。
模型训练
import pmdarima as pm
split_point = int(len(time_series) * 0.85)
# 确定训练集/测试集
data_train, data_test = time_series[0:split_point], time_series[split_point:len(time_series)]
# 使用训练集的数据来拟合模型
built_arimamodel = pm.auto_arima(data_train,start_p=0, # p最小值start_q=0, # q最小值test='adf', # ADF检验确认差分阶数dmax_p=5, # p最大值max_q=5, # q最大值m=12, # 季节性周期长度,当m=1时则不考虑季节性d=None, # 通过函数来计算dseasonal=True, start_P=0, D=1, trace=True,error_action='ignore', suppress_warnings=True,stepwise=False # stepwise为False则不进行完全组合遍历)
print(built_arimamodel.summary())
这样一来我们就得到了最佳参数,auto_arima直接建立好了模型,当然如果想要根据ADF图片自己选择参数也可以:
from statsmodels.tsa.arima.model import ARIMA
from sklearn.metrics import mean_squared_error# 拟合ARIMA模型
model_water = ARIMA(merged_df['水位(m)'], order=(2, 0, 1))
results_water = model_water.fit()# 评估模型
mse_water = mean_squared_error(merged_df['水位(m)'], results_water.fittedvalues)print(f'Mean Squared Error (Water Level): {mse_water}')
Mean Squared Error (Water Level): 0.02088585362915174
均方误差才0.02,这个结果已经是比较满意了接下里我们可以来试试预测未来两年的水位了:
# 定义要预测的时间范围
forecast_range = pd.date_range(start='2021-12-31', periods=730, freq='D') # 预测未来两年,共730天# 使用模型进行预测
forecast = results_water.get_forecast(steps=730)
至此建模就结束了,以上就是整个赛题从数据分析、数据处理到数据建模的整体过程,不得不说还是比较复杂的,一般来说有丰富的数据建模经验才能在两天之内完成整个模型的搭建,对学生的能力要求还是比较大的。
相关文章:
(源码版)2023全国大学生数学建模竞赛E题黄河水沙监测数据分析详解+Python代码源码SARIMA模型
前言 比赛结束了不知道大家情况如何,就我个人而言的话,由于工作任务比较繁重仅完成了对D题和E题的思路解答和建模,还是比较遗憾的。一个人要完成多题的建模和分析确实不是一件容易的事情,当然我向大家做出承诺历年的建模比赛我都…...
2023-09-11 C语言popen( )函数调用其他进程返回值 ( C知道辅助编写 )
老林的C语言新课, 想快速入门点此 <C 语言编程核心突破> C语言popen函数调用其他进程返回值 前言一、popen( ) 函数原型二、使用示例 (C 知道提供)总结 前言 当我们想用C语言调用一个现有程序, 并且想获取程序返回值而不是在终端输出, 那么就必须调用popen( )函数了. …...
SSTables和LSM-Tree
SSTables 可以类比Kafka:将数据按键排序写入磁盘,并分为多个段,组织段的稀疏索引,并定期合并段文件(kafka因为不存在重复数据,所以不需要合并) LSM-Tree是基于SSTables的:在内存中维…...
深圳神秘顾客(SMS)公司开展湖南长沙湘菜神秘顾客调查
民以食为天,随着国人收入提高,餐饮行业蓬勃发展,餐饮收入规模持续扩大,涌现了一批知名餐饮企业。深圳神秘顾客(SMS)公司专业专注神秘顾客15年,是中国知名神秘顾客公司,以“先服务&am…...
Logback日志记录只在控制台输出sql,未写入日志文件【解决】
原因:持久层框架对于Log接口实现方式不一样,日记记录的位置及展示方式也也不一样 mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # sql只会打印到控制台不会输出到日志文件种mybatis-plus:configuration:log-impl…...
神仙院校!评级A+,每年招生1000+!
一、学校及专业介绍 西安电子科技大学(Xidian University),简称“西电” ,位于陕西省西安市,是中央部属高校,直属于教育部,为全国重点大学,位列国家“双一流”,“211工程…...
OpenHarmony:如何使用HDF驱动控制LED灯
一、程序简介 该程序是基于OpenHarmony标准系统编写的基础外设类:RGB LED。 目前已在凌蒙派-RK3568开发板跑通。详细资料请参考官网:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony/tree/master/samples/b02_hdf_rgb_led。 …...
怎么在图片上编辑文字?这几种图片编辑工具了解下
在图片上编辑文字可以带来许多好处。首先,它可以更好地说明图片的内容和意义。有时候,一张图片可能不够清晰地传达想要表达的信息,但是通过在图片上添加文字说明,可以更好地让观众理解图片的意义。其次,编辑文字可以使…...
直播进入新风口:XR虚拟直播市场火爆,未来发展势不可挡
 近年来,直播行业随着技术的不断发展,呈现出了蓬勃的发展态势。在这个竞争日益激烈的直播行业中,XR虚拟直播成为了最新的风口。XR虚拟直播是一种新型的直播形式,通过虚拟现实技术,让用户置身于直播现场&a…...
安装 paddlepaddle paddleocr库,避坑指南
看到这个库我就头疼,因为换了电脑,不得不再来一遍,又是到处踩坑!拼了好几个小时,总结出来的最终解决方法!详细的傻瓜式解决! - import paddle 报错!illegal hardware instruction py…...
Java调用ChatGPT的API接口实现对话与图片生成
文章目录 步骤1:配置代理步骤2:添加依赖步骤3:编写Constants类步骤4:实现问答交互步骤5:实现图片生成 步骤1:配置代理 有些魔法是需要做配置的。否则无法正确实现代码测试。这里以我使用的工具为例说明。 …...
h5开发网站-css实现页面的背景固定定位
一、需求: 在页面滚动时,背景图片保持不变,而不是跟随滚动。 二、解决方式: 使用背景固定定位,只需要在CSS中增加一个background-attachment: fixed;属性即可。 具体代码: <div class"item_right…...
SpringBoot整合Redis完整篇
SpringBoot整合Redis完整篇 1、在springboot项目的pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schem…...
花见Live Wallpaper Themes 4K Pro for mac(4k视频壁纸)
如果你希望让自己的Mac桌面焕发活力,那么Live Wallpaper & Themes 4K Pro正是一款值得尝试的软件。它提供了丰富的超高清4K动态壁纸和主题,可以让你轻松打造出个性化的桌面环境。 这款软件拥有众多令人惊叹的功能。其中最值得一提的是,它…...
FastJson 漏洞复现
文章目录 FastJson 漏洞复现1. FastJson 1.2.24 反序列化导致任意命令执行漏洞1.1 漏洞描述1.2 漏洞原理1.3 漏洞复现1.3.1 环境启动1.3.2 漏洞检测1.3.3 漏洞验证 1.4 漏洞利用1.5 修复方案 2. Fastjson 1.2.47 远程命令执行漏洞2.1 漏洞描述2.2 漏洞复现2.2.1 环境启动2.2.2 …...
jeesite实现excel导入功能(保姆级图文教程)
文章目录 前言一、准备工作1.准备一个excel模板,放入static目录2.application.yml文件中设置文件存储路径3.使用easyexcel插件解析excel数据,pom文件导入easyexcel二、使用步骤1.列表页添加下载模板按钮2.表单页添加文件上传3. 创建excel解析对应实体4.后台完成文件上传代码,…...
【B树 B+树】B树、B+树理论
目录 引入B树B树定义和性质m阶B树核心特性 B树B树的查找 引入B树 满足上面两个策略就是B树: m 叉查找树中,规定除了根节点外,任何结点至少有 ⌈ m / 2 ⌉ \lceil m/2 \rceil ⌈m/2⌉ 个分叉,即至少含有 ⌈ m / 2 ⌉ \lceil m/2 \…...
CRM软件系统能否监控手机的使用
CRM可以监控手机吗?答案是不可以。CRM是一款帮助企业优化业务流程,提高销售效率的工具。例如Zoho CRM,最多也就是听一下销售的通话录音,却不可以监控手机,毕竟CRM不是一款监控软件。 CRM的主要作用有以下几点…...
hutool的HttpRequest.post的使用-包括上传文档等多个传参【总结版本】
首先hutool已经为我们封装好了远程调用的接口,我们只要将对应的传参和方式对应填写即可 hutool官方文档 1实际应用 post 常见的使用json传参,contend type为application/json RequestMapping("login") ResponseBody public static String s…...
VR数字工厂,为企业工厂打造竞争新优势
工业经济中大部分行业都是制造业,为了合力助推工业经济提质增效,谋划推进制造业数字化转型就显得尤为重要了。用VR赋能工厂数字升级,打造VR数字工厂,满足各行各业沉浸式营销展示需求。 VR数字工厂是一种全新的工业模式,…...
记一次线程堵塞(挂起)导致消息队列积压
1 背景 A服务作为生产者,每天发送上千万的mq消息,每一个消息包含500个用户ids数据。B服务作为消费者,接受MQ消息并通过http调用第三方请求进行业务处理,消费组启用了rabbitmq的多线程消费组,一个实例并发40个mq消费者…...
被问实习最大的收获是什么可以怎么回答?
最大的收获? 了解大型项目的运转过程:总工程师给开发和测试串讲需求->开发编写需求的特性说明书,完成需求方案设计和评审->编码完成后对各个场景进行自测,上库后给相关模块人进行代码检视后并修改检视意见->在每个迭代转…...
如何理解图神经网络的傅里叶变换和图卷积
图神经网络(GNN)代表了一类强大的深度神经网络架构。在一个日益互联的世界里,因为信息的联通性,大部分的信息可以被建模为图。例如,化合物中的原子是节点,它们之间的键是边。图神经网络的美妙之处在于它们能…...
国家网络安全周2023时间是什么时候?有什么特点?谁举办的?
国家网络安全周2023时间是什么时候? 2023年国家网络安全宣传周将于9月11日至17日在全国范围内统一开展。其中开幕式等重要活动将在福建省福州市举行。今年网安周期间,除开幕式外,还将举行网络安全博览会、网络安全技术高峰论坛、网络安全微视…...
windows编程之线程同步万字总结(创建线程,互斥对象,互斥事件,信号量,关键段,多线程群聊服务器)
文章目录 创建线程方法一_beginthreadex函数讲解使用示例: 方法二CreateThread函数讲解:使用示例: 互斥对象:创建互斥对象CreateMutex 互斥事件介绍创建或打开一个未命名的互斥事件对象 信号量介绍信号量的相关函数使用示例 关键段相关函数错误使用示例正确使用示例…...
Git在已有的项目中引入Submodule子模块管理:添加、更新、删除(实战示例代码)
前言 在进行Git版本控制的过程中,有时候我们需要在已有的项目中引入子模块,以便复用其他独立的Git存储库的代码或文件。本文将详细介绍如何在已有项目下添加、更新和删除Git的Submodule子模块,并提供相关的示例代码。 实战场景 假设我们已…...
内网穿透实现Windows远程桌面访问Ubuntu,简单高效的远程桌面解决方案
文章目录 前言1. ubuntu安装XRDP2.局域网测试连接3.安装cpolar内网穿透4.cpolar公网地址测试访问5.固定域名公网地址 前言 XRDP是一种开源工具,它允许用户通过Windows RDP访问Linux远程桌面。 除了Windows RDP外,xrdp工具还接受来自其他RDP客户端(如Fre…...
如何学习运营管理
运营管理(Operations Management)是一门管理学科,它关注如何高效地组织和管理企业的生产、服务、供应链和业务过程以达到组织的目标。运营管理是企业管理的一个重要领域,它包含了多个内容和职能: 生产管理:…...
腾讯云centos7.6安装部署备忘
1.Mysql 1.1 安装mysql wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm rpm -ivh mysql-community-release-el7-5.noarch.rpm yum install mysql-community-server 1.1.1 安装后重启 service mysqld restart 1.1.2 初次安装mysql,root账…...
【赠书活动】考研备考书单推荐
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...
ios wordpress/免费企业网站建设流程
目录 一,排他网关 1.1 流程定义 1.3 测试 二,并行网关 2.1 什么是并行网关 2.2 流程定义 2.3 测试 三,包含网关 3.1 流程定义 3.2 测试 四,课程总结 什么是工作流? 什么 activiti? 如何使用 act…...
服务器可以做网站吗/网站收录入口申请查询
P1896 [SCOI2005]互不侵犯 题目描述 在NN的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子。 注:数据有加强(2…...
西安响应式网站开发/郑州手机网站建设
【实例简介】使用了SSM框架,并且分别结合html和jsp实现简单查询功能,并且也写入了增删改查的sql。非常简洁,适合新手入门学习【实例截图】【核心代码】SSMTest最终版└── SSMTest├── pom.xml├── src│ └── main│ ├── java…...
浙江省建设培训中心网站/网站建设营销型
1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21(2分)$a date("Y-m-d H:i:s", strtotime("-1 day"));print_r($a);2、echo(),print(),print_r()的区别(3分)echo 和print不是一个函数,是一个语言结构int print(string $arg), 只有一个参数…...
WordPress进/兰州网站seo诊断
DevExpress广泛应用于ECM企业内容管理、 成本管控、进程监督、生产调度,在企业/政务信息化管理中占据一席重要之地。通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新…...
正规代加工项目招商/seo关键词排名点击工具
区块如何连接成区块链之前的文章里又说到区块链,想要知道区块链上的信息首先需要了解一下什么是区块链,区块链其实是一串使用密码学算法产生的区块连接而成。每一个区块上写满了交易记录,区块按顺序相连形成链状结构,就像世界上的…...