LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异
LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异。以下是对两者的比较:
一、效果比较
-
LCE模型:
- 优势:LCE结合了随机森林和XGBoost的优势,并采用互补的多样化方法来获得更好的泛化预测器。它增强了预测性能,尤其适用于处理具有复杂关系的数据集。此外,LCE模型对缺失值具有一定的鲁棒性,能够排除预测干扰因素,提高预测值的精确度。
- 应用实例:在电力交易领域,LCE算法被用于短期电价预测,结合CNN-LSTM模型和其他神经网络模型,能够获取更准确的电价预测值。
-
LSTM模型:
- 优势:LSTM是一种特殊的循环神经网络,能够记住长期依赖关系,擅长处理长时序列数据中的复杂依赖关系。它支持非线性关系,适合处理复杂的非线性数据关系。在时间序列预测方面,LSTM表现出色,尤其适用于股票价格、长期能源消耗等复杂的长周期预测。
- 局限性:LSTM模型结构复杂,训练时间较长,且参数调优较为困难。此外,LSTM模型需要较大的数据集支持,在小数据集上容易出现过拟合问题。同时,其预测稳定性相对一般,可能在验证集和预测集上表现差异较大。
二、区别与优劣
-
模型结构:
- LCE模型结合了随机森林和XGBoost的方法,通过改变训练数据分布和学习训练数据的不同部分来生成不同的预测变量。
- LSTM模型则通过引入门控机制(遗忘门、输入门、输出门)来解决传统RNN中的梯度消失和梯度爆炸问题。
-
适用场景:
- LCE模型更适用于处理具有复杂关系的数据集,尤其是当数据集中存在缺失值或异常值时,LCE模型能够表现出更强的鲁棒性。
- LSTM模型则更适用于复杂的长时序列预测场景,如股票价格预测、长期能源消耗预测等。在这些场景中,LSTM模型能够捕捉到长时间序列中的复杂依赖关系,提供准确的预测结果。
-
计算资源需求:
- LCE模型在计算资源需求上相对适中,因为它结合了两种已有的机器学习算法。
- LSTM模型则需要更多的计算资源,因为其模型结构复杂,训练和预测时计算开销较大。
综上所述,LCE预测模型和LSTM模型在效果和特点上各有千秋。在实际应用中,应根据具体的数据特性和预测需求选择合适的模型。对于具有复杂关系的数据集,可以考虑使用LCE模型;而对于复杂的长时序列预测场景,LSTM模型则是一个更好的选择。
由于LCE(Local Cascade Ensemble)并不是一个标准的、广泛认可的模型名称,且在我所了解的知识库中并未直接对应到一个具体的、广泛使用的机器学习模型,因此我将提供一个基于LSTM(Long Short-Term Memory)网络的Python代码示例,并简要说明一个假设性的LCE方法的思路(尽管实际的LCE实现可能需要根据具体应用场景进行定制)。
LSTM Python代码示例
以下是一个使用Keras库(TensorFlow后端)实现的LSTM模型,用于时间序列预测的示例代码:
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense# 假设我们有一个时间序列数据集
# 这里我们使用一个简单的正弦波数据作为示例
time_steps = 100
data = np.sin(np.linspace(0, 10 * np.pi, time_steps)) # 生成正弦波数据# 数据预处理
scaler = MinMaxScaler(feature_range=(0, 1))
data_scaled = scaler.fit_transform(data.reshape(-1, 1)).flatten()# 创建训练和测试数据集
def create_dataset(dataset, time_step=1):X, Y = [], []for i in range(len(dataset) - time_step - 1):a = dataset[i:(i + time_step), 0]X.append(a)Y.append(dataset[i + time_step, 0])return np.array(X), np.array(Y)time_step = 10 # 使用最近10个时间点来预测下一个时间点
X, y = create_dataset(data_scaled.reshape(-1, 1), time_step)# 将数据集划分为训练集和测试集
train_size = int(len(X) * 0.8)
test_size = len(X) - train_size
trainX, testX = X[0:train_size], X[train_size:len(X)]
trainY, testY = y[0:train_size], y[train_size:len(y)]# 将数据重塑为LSTM所需的3D形状 [samples, time steps, features]
trainX = trainX.reshape(trainX.shape[0], trainX.shape[1], 1)
testX = testX.reshape(testX.shape[0], testX.shape[1], 1)# 创建LSTM模型
model = Sequential()
model.add(LSTM(50, return_sequences=True, input_shape=(time_step, 1)))
model.add(LSTM(50, return_sequences=False))
model.add(Dense(25))
model.add(Dense(1))model.compile(optimizer='adam', loss='mean_squared_error')# 训练模型
model.fit(trainX, trainY, batch_size=1, epochs=1)# 预测并逆归一化数据
train_predict = model.predict(trainX)
test_predict = model.predict(testX)
train_predict = scaler.inverse_transform(train_predict)
test_predict = scaler.inverse_transform(test_predict)
trainY = scaler.inverse_transform([trainY])
testY = scaler.inverse_transform([testY])# 可视化结果
import matplotlib.pyplot as pltplt.figure(figsize=(10, 6))
plt.plot(data, label='Original Data')
train_predict_plot = np.empty_like(data)
train_predict_plot[:, :] = np.nan
train_predict_plot[time_step:len(train_predict) + time_step, :] = train_predict
plt.plot(train_predict_plot, label='Train Predict')test_predict_plot = np.empty_like(data)
test_predict_plot[:, :] = np.nan
test_predict_plot[len(train_predict) + (time_step * 2) + 1:len(data) - 1, :] = test_predict
plt.plot(test_predict_plot, label='Test Predict')plt.legend()
plt.show()
假设性LCE方法思路
虽然没有一个标准的LCE模型,但基于“局部级联集成”的概念,我们可以设想一个方法,该方法结合多个局部模型(如决策树、随机森林等),并在每个局部区域内进行集成学习。以下是一个简化的思路:
- 数据划分:将数据划分为多个局部区域,每个区域包含连续的时间点。
- 局部模型训练:在每个局部区域内,训练一个或多个基模型(如决策树、随机森林)。
- 集成学习:使用某种集成策略(如投票、加权平均等)将局部模型的预测结果结合起来,形成最终的预测。
- 预测:对于新的时间点,首先确定其所属的局部区域,然后使用该区域内的集成模型进行预测。
请注意,实际的LCE实现将需要更多的细节设计和实验验证,以确保其有效性和鲁棒性。
以下是一个使用PyTorch实现的LSTM(Long Short-Term Memory)模型代码示例,该模型用于时间序列预测。这个示例代码包括数据预处理、模型定义、训练和预测等步骤。
import torch
import torch.nn as nn
import numpy as np
import pandas as pd
from sklearn.preprocessing import MinMaxScaler
from torch.utils.data import DataLoader, TensorDataset, random_split# 假设我们有一个时间序列数据集
# 这里我们使用一个简单的正弦波数据作为示例
time_steps = 100
data = np.sin(np.linspace(0, 10 * np.pi, time_steps)) # 生成正弦波数据# 数据预处理
scaler = MinMaxScaler(feature_range=(0, 1))
data_scaled = scaler.fit_transform(data.reshape(-1, 1)).flatten()# 创建训练和测试数据集
def create_dataset(dataset, time_step=1):X, Y = [], []for i in range(len(dataset) - time_step - 1):a = dataset[i:(i + time_step), np.newaxis] # 注意这里要添加一个新的维度X.append(a)Y.append(dataset[i + time_step, 0])return np.array(X), np.array(Y)time_step = 10 # 使用最近10个时间点来预测下一个时间点
X, y = create_dataset(data_scaled, time_step)# 将数据集划分为训练集和测试集
train_size = int(len(X) * 0.8)
test_size = len(X) - train_size
X_train, X_test = X[:train_size], X[train_size:]
y_train, y_test = y[:train_size], y[train_size:]# 转换为PyTorch张量
X_train = torch.tensor(X_train, dtype=torch.float32)
y_train = torch.tensor(y_train, dtype=torch.float32).view(-1, 1)
X_test = torch.tensor(X_test, dtype=torch.float32)
y_test = torch.tensor(y_test, dtype=torch.float32).view(-1, 1)# 创建数据加载器
train_dataset = TensorDataset(X_train, y_train)
test_dataset = TensorDataset(X_test, y_test)
train_size = int(0.8 * len(train_dataset))
val_size = len(train_dataset) - train_size
train_dataset, val_dataset = random_split(train_dataset, [train_size, val_size])
train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=16, shuffle=False)
test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)# 定义LSTM模型
class LSTMModel(nn.Module):def __init__(self, input_size=1, hidden_size=50, num_layers=1, output_size=1):super(LSTMModel, self).__init__()self.hidden_size = hidden_sizeself.num_layers = num_layersself.lstm = nn.LSTM(input_size, hidden_size, num_layers, batch_first=True)self.fc = nn.Linear(hidden_size, output_size)def forward(self, x):h0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)c0 = torch.zeros(self.num_layers, x.size(0), self.hidden_size).to(x.device)out, _ = self.lstm(x, (h0, c0))out = self.fc(out[:, -1, :])return out# 初始化模型、损失函数和优化器
model = LSTMModel()
criterion = nn.MSELoss()
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)# 训练模型
num_epochs = 100
for epoch in range(num_epochs):model.train()for i, (inputs, targets) in enumerate(train_loader):outputs = model(inputs)loss = criterion(outputs, targets)optimizer.zero_grad()loss.backward()optimizer.step()if (i + 1) % 10 == 0:print(f'Epoch [{epoch + 1}/{num_epochs}], Step [{i + 1}/{len(train_loader)}], Loss: {loss.item():.4f}')# 验证模型
model.eval()
with torch.no_grad():val_loss = 0for inputs, targets in val_loader:outputs = model(inputs)loss = criterion(outputs, targets)val_loss += loss.item()val_loss /= len(val_loader)print(f'Validation Loss: {val_loss:.4f}')# 测试模型
model.eval()
predictions = []
targets = []
with torch.no_grad():for inputs, target in test_loader:output = model(inputs)predictions.extend(output.numpy())targets.extend(target.numpy())# 逆归一化预测结果和目标值
predictions = scaler.inverse_transform(np.array(predictions).reshape(-1, 1))
targets = scaler.inverse_transform(np.array(targets).reshape(-1, 1))# 可视化结果
import matplotlib.pyplot as pltplt.figure(figsize=(10, 6))
plt.plot(data, label='Original Data')
test_predict_plot = np.empty_like(data)
test_predict_plot[:] = np.nan
test_predict_plot[time_step + (time_step * (train_size // len(X_train))):len(predictions) + time_step + (time_step * (train_size // len(X_train))), :] = predictions
plt.plot(test_predict_plot, label='Test Predict')plt.legend()
plt.show()
注意:
- 数据预处理部分将时间序列数据转换为模型所需的输入格式,并进行了归一化处理。
create_dataset
函数用于生成训练和测试数据集,其中time_step
参数指定了用于预测的时间步长。- 使用了
TensorDataset
和DataLoader
来加载数据,以便在训练过程中进行批量处理和打乱数据。 - LSTM模型定义在
LSTMModel
类中,包括LSTM层和全连接层。 - 训练过程包括前向传播、计算损失、反向传播和优化步骤。
- 在测试阶段,模型对测试数据集进行了预测,并逆归一化了预测结果和目标值。
- 最后,使用Matplotlib可视化了原始数据和预测结果。
请确保您的环境中已安装了PyTorch和其他必要的库,如NumPy、Pandas和Matplotlib。运行此代码将训练一个LSTM模型,并对测试数据集进行预测,然后可视化结果。
相关文章:
![](https://www.ngui.cc/images/no-images.jpg)
LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异
LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异。以下是对两者的比较: 一、效果比较 LCE模型: 优势:LCE结合了随机森林和XGBoost的优势&a…...
![](https://www.ngui.cc/images/no-images.jpg)
【mysql】约束的基本使用
文章目录 1. PRIMARY KEY 约束1.1 作用1.2 关键字1.3 特点1.4 添加主键约束1.5 关于复合主键1.6 删除主键约束 2. 自增列:AUTO_INCREMENT2.1 作用2.2 关键字2.3 特点和要求2.4 如何指定自增约束2.5 如何删除自增约束2.6 MySQL 8.0新特性—自增变量的持久化 3. FOREI…...
![](https://i-blog.csdnimg.cn/direct/00badb00d6bb4db59078f9baa534379c.png)
EasyExcel(二)导出Excel表自动换行和样式设置
EasyExcel(一)导出Excel表列宽自适应 背景 在上一篇文章中解决导出列宽自适应,然后也解决了导出列宽不可超过255的问题。但是实际应用场景中仍然会有导出数据的长度超过列宽255。这时导出效果就会出现如下现象: 多出列宽宽度的内容会浮出来,影响后边列数据的显示。 解决…...
![](https://i-blog.csdnimg.cn/direct/20c62c66f2de4481a6527ba4cf6230c1.png)
农产品直播带货方案拆解
作为一名经验丰富的营销策划人道叔,今天我来拆解一下咱们4A营销广告圈的这份《直播天府川农好物带货方案》,让你能学到很多实用的策略和技巧,直接应用到你的策划工作中去。 首先,咱们看看背景分析。 助农直播现在可是个大热门&a…...
![](https://www.ngui.cc/images/no-images.jpg)
“**H5**” 和 “**响应式**” 是前端开发中常见的术语,但它们的概念和使用场景有所不同
“H5” 和 “响应式” 是前端开发中常见的术语,但它们的概念和使用场景有所不同。以下是它们的区别以及为什么为移动端开发的页面通常被称为 “H5” 的解释: 1. 为什么为移动端开发的叫 “H5”? “H5” 是 HTML5 的简称,HTML5 是…...
![](https://i-blog.csdnimg.cn/direct/fbab29ed926b495c859e6a566605fc0e.png)
基于EasyExcel实现通用版一对一、一对多、多层嵌套结构数据导出并支持自动合并单元格
接口功能 通用 支持一对一数据结构导出 支持一对多数据结构导出 支持多层嵌套数据结构导出 支持单元格自动合并 原文来自:https://blog.csdn.net/qq_40980205/article/details/136564176 新增及修复 基于我自己的使用场景,新增并能修复一下功能&#x…...
![](https://www.ngui.cc/images/no-images.jpg)
Java堆内存分析
(一)、线上查看堆内存统计 # 命令用于打印堆内存中每个类的实例数量及其占用的内存,并且只包括活动对象(即存活的对象) jmap -histo:live <pid># 输出到文件方便查看 jmap -histo:live 12345 > aaa.txt(二)、下载dump文件࿰…...
![](https://i-blog.csdnimg.cn/direct/353021eda5514ce7ab78fc0c07de8d07.png)
maven高级(day15)
Maven 是一款构建和管理 Java 项目的工具 分模块设计与开发 所谓分模块设计,顾名思义指的就是我们在设计一个 Java 项目的时候,将一个 Java 项目拆分成多 个模块进行开发。 分模块设计我们在进行项目设计阶段,就可以将一个大的项目拆分成若干…...
![](https://www.ngui.cc/images/no-images.jpg)
计算机组成原理(九):乘法器
乘法器原理 乘法器的工作原理可以用二进制乘法来说明。二进制乘法和十进制乘法类似,通过部分积的累加得到结果。 部分积的生成 在二进制乘法中,每一位的乘积是两个二进制数位的 与运算(0 0 0,1 0 0,0 1 0&…...
![](https://www.ngui.cc/images/no-images.jpg)
python【输入和输出】
Python 有三种输出值的方式: 表达式语句print() 函数使用文件对象的 write() 方法,标准输出文件可以用 sys.stdout 引用。 ① 将输出的值转成字符串,可以使用 repr() 或 str() 函数来实现: str(): 函数返回一个用户易…...
![](https://www.ngui.cc/images/no-images.jpg)
2024年华为OD机试真题-判断一组不等式是否满足约束并输出最大差-Python-OD统一考试(E卷)
最新华为OD机试考点合集:华为OD机试2024年真题题库(E卷+D卷+C卷)_华为od机试题库-CSDN博客 每一题都含有详细的解题思路和代码注释,精编c++、JAVA、Python三种语言解法。帮助每一位考生轻松、高效刷题。订阅后永久可看,发现新题及时跟新。 题目描述: 给定一组不等式…...
![](https://i-blog.csdnimg.cn/direct/529690eec5024e9f87107a1bd15224ff.png)
【json】
JSON JSON是一种轻量级的,按照指定的格式去组织和封装数据的数据交互格式。 本质上是一个带有特定格式的字符串(py打印json时认定为str类型) 在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互,类似于计算机普通话 python与json关系及相互转换…...
![](https://i-blog.csdnimg.cn/direct/64dbab8250d54fd590d40dddafadb4f3.png)
基于单片机的无线智能窗帘控制器的设计
摘 要 : 本文以单片机为控制核心 , 基于 PT2262/ 2272 无线收发模块 , 实现了窗帘的无线远程智能控制 . 该控制器通过高频无线收发模块实现了遥控窗帘的开合控制; 根据外部光线强弱实现自动开关窗帘 ; 根据设定时间自动完成开关过程; 通过语音播报当前环境温湿度信息以…...
![](https://i-blog.csdnimg.cn/direct/5c20c0087e044f158852084917103308.png#pic_center)
磁盘满造成业务异常问题排查
最近遇到一个因为磁盘满导致的问题,分享一下,希望能够帮助到以后遇到同样问题的朋友。 早上突然收到业务老师反馈说:上传文件不能正常上传了。 想想之前都好好的,最近又没有更新,为什么突然不能使用了呢?…...
![](https://www.ngui.cc/images/no-images.jpg)
C++例程:使用I/O模拟IIC接口(6)
完整的STM32F405代码工程I2C驱动源代码跟踪 一)myiic.c #include "myiic.h" #include "delay.h" #include "stm32f4xx_rcc.h" //初始化IIC void IIC_Init(void) { GPIO_InitTypeDef GPIO_InitStructure;RCC_AHB1PeriphCl…...
![](https://i-blog.csdnimg.cn/direct/a3106a836b154e63b0bf98c0c98316e4.gif)
58.在 Vue 3 中使用 OpenLayers 绘制点、线、圆、多边形
前言 在现代 Web 开发中,地图功能已经成为许多应用的重要组成部分。OpenLayers 是一个强大的开源地图库,支持多种地图源和地图操作。结合 Vue 3 的响应式特性,我们可以轻松实现地图的交互功能。本文将详细介绍如何在 Vue 3 中使用 OpenLayer…...
![](https://i-blog.csdnimg.cn/direct/887bdec0d4ca49f28f9e336e15f93348.png)
如何快速上手一个鸿蒙工程
作为一名鸿蒙程序猿,当你换了一家公司,或者被交接了一个已有的业务。前辈在找你之前十分钟写了一个他都看不懂的交接文档,然后把一个鸿蒙工程交接给你了,说以后就是你负责了。之后几天你的状态大概就是下边这样的,一堆…...
![](https://i-blog.csdnimg.cn/direct/2eed605915e04c29b6fbc273cbbdeb4b.png)
c++入门之 命名空间与输入输出
1、命名空间 1.1使用命名空间的原因 先看一个例子: #include <iostream>int round 0;int main() {printf("%d", round);return 0; }请问,这个程序能跑起来吗? 答案是否定的 原因是,当我们想创建一个全局变量 …...
![](https://www.ngui.cc/images/no-images.jpg)
GRE技术的详细解释
GRE(Generic Routing Encapsulation,通用路由封装)是一种隧道协议,主要用于在不同网络之间封装和传输其他网络层协议的数据包。它最常用于在IP网络上建立虚拟点到点的隧道连接,是实现VPN的一项关键技术。 下面从原理、…...
![](https://i-blog.csdnimg.cn/direct/231d123ced79477980eb6005a5be547b.png)
Mysql--基础篇--多表查询(JOIN,笛卡尔积)
在MySQL中,多表查询(也称为联表查询或JOIN操作)是数据库操作中非常常见的需求。通过多表查询,你可以从多个表中获取相关数据,并根据一定的条件将它们组合在一起。MySQL支持多种类型的JOIN操作,每种JOIN都有…...
![](https://www.ngui.cc/images/no-images.jpg)
Java 泛型的用法
1. 泛型类 泛型类是指在类定义时使用类型参数来指定类的类型。这样可以在类的内部使用这些类型参数来定义字段、方法的返回类型和参数类型。 public class Box<T> {private T t;public void set(T t) {this.t t;}public T get() {return t;} }在这个例子中,…...
![](https://i-blog.csdnimg.cn/img_convert/22dd1df94f0d97ce299285c6d5c3e07c.jpeg)
人工智能与物联网:智慧城市的未来
引言 清晨6点,智能闹钟根据你的睡眠状态和天气情况,自动调整叫醒时间;窗帘缓缓打开,阳光洒满房间;厨房里的咖啡机已经为你准备好热饮,而无人驾驶公交车正按时抵达楼下站点。这不是科幻电影的场景ÿ…...
![](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5CADMINI~1%5CAppData%5CLocal%5CTemp%5Cksohtml%5Cwps960E.tmp.jpg&pos_id=OfbfEA8B)
Python标准库之SQLite3
包含了连接数据库、处理数据、控制数据、自定义输出格式及处理异常的各种方法。 官方文档:sqlite3 --- SQLite 数据库的 DB-API 2.0 接口 — Python 3.13.1 文档 官方文档SQLite对应版本:3.13.1 SQLite主页:SQLite Home Page SQL语法教程&a…...
![](https://i-blog.csdnimg.cn/direct/e2535c9fcaef4207b7569ce29a17bec6.jpeg)
力扣 二叉树的最大深度
树的遍历,dfs与bfs基础。 题目 注意这种题要看根节点的深度是0还是1。 深度优先遍历dfs,通过递归分别计算左子树和右子树的深度,然后返回左右子树深度的最大值再加上 1。递归会一直向下遍历树,直到达到叶子节点或空节点。在回溯…...
![](https://i-blog.csdnimg.cn/direct/668f84b822f34ec39ac2b63c62ae75ab.png)
Linux_进程间通信_共享内存
什么是共享内存? 对于两个进程,通过在内存开辟一块空间(操作系统开辟的),进程的虚拟地址通过页表映射到对应的共享内存空间中,进而实现通信;物理内存中的这块空间,就叫做共享内存。…...
![](https://www.ngui.cc/images/no-images.jpg)
ubuntu 下生成 core dump
在Ubuntu下,发现程序崩溃后不生成core dump文件, 即使设置了ulimit -c unlimited后仍然无效。 1.ulimit -c unlimited 输出的的含义是核心转储文件的大小限制,单位是blocks,默认是0,表示不生成core dump文件。 2. 重设core_pattern ulimit -c unlimited后,核心转储文件…...
![](https://i-blog.csdnimg.cn/direct/e91171a892aa4eb1aa22eca859b6171c.gif)
学习HLS.js
前言 HTTP 实时流(也称为HLS(.m3u8))是一种基于HTTP的自适应比特率流通信协议。HLS.js依靠HTML5视频和MediaSource Extensions进行播放,其特点:视频点播和直播播放列表、碎片化的 MP4 容器、加密媒体扩展 …...
![](https://i-blog.csdnimg.cn/direct/ae5635a473bc4a5bbc47301cb0c788cc.png)
2025年华为OD上机考试真题(Java)——判断输入考勤信息能否获得出勤奖
题目: 公司用一个字符串来表示员工的出勤信息: absent:缺勤late:迟到leaveearly:早退present:正常上班 现需根据员工出勤信息,判断本次是否能获得出勤奖,能获得出勤奖的条件如下&am…...
![](https://i-blog.csdnimg.cn/img_convert/826cd897910c79fbd57700444cd1d6ba.jpeg)
空对象模式
在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我…...
![](https://i-blog.csdnimg.cn/direct/89225aab6317414fbe5b4a8aabd12c6e.gif)
开启Excel导航仪,跨表跳转不迷路-Excel易用宝
都2025年了,汽车都有导航了,你的表格还没有导航仪吗?那也太OUT了。 面对着一个工作簿中有N多个工作表,工作表中又有超级表,数据透视表,图表等元素,如何快速的切换跳转到需要查看的数据呢&#…...
![](/images/no-images.jpg)
学校网站建设预算/游戏推广员是诈骗吗
记录下最近面试的算法题题目记得不是特别清楚了,大致描述。一 2021.04.17荣耀机试1 数组排序题目描述:输入多个数字,按数字从小到大排序。输入描述多个整数,保证都在int范围内,用空格隔开输出描述从小到大的值…...
![](https://img-blog.csdnimg.cn/img_convert/deacb5dbaf94906406ef77caae96d4fb.png)
扬州企业做网站/上海专业的seo推广咨询电话
一 面试问题 1.1 TCP为什么是安全可靠的传输协议 👨💻面试官:TCP为什么是安全的 🙋我:因为TCP在 数据传输之前会有三次握手来进行连接在数据传输时候,有确认、滑动窗口、超时重传、拥塞控制之类机制数…...
![](/images/no-images.jpg)
rails 开发的网站开发/怎么策划一个营销方案
转载于:https://www.cnblogs.com/changxs/p/3604056.html...
![](/images/no-images.jpg)
网站地址解析/品牌广告视频
【分享】iTOP4412开发板-Bluetooth移植文档 最近须要把Bluetooth移植到iTOP-4412 开发平台。查阅了相关资料,经过一段时间的研究、调试,最终成功的将蓝牙功能移植到了开发板上面。这里笔者记录移植过程及注意事项,方便以后工作须要。iTOP-4412开发板的Bl…...
![](https://img-blog.csdnimg.cn/img_convert/49a07c73b54cd865d67aa4b22d507353.png)
个人空间备案网站名称/网站增加外链的方法有哪些
关注公众号【秋叶 Excel】回复关键词【工具】获取 Excel 高效小工具合集,让你效率开挂!本文作者:竺兰本文来源:秋叶Excel(ID:Excel100)本文编辑:思雨、竺兰距离下班还有俩小时,我伸了伸懒腰,想着…...
![](/images/no-images.jpg)
武汉网站建设哪家好/网络推广软件有哪些
根据规划, 调试OsgEarth源码每周1800行源码抄写。 目前鬼火引擎8377行。正好从8月22日开始,到9月底,5周完成。 即:分配到周,应该达到下面的目标。 8月29日时,剩6577行(实际6438行,完…...