2024 美国大学生数学建模竞赛 美赛(C题)网球比赛趋势问题 国际大学生数学建模竞赛| 建模秘籍文章代码思路大全

铛铛!小秘籍来咯!

小秘籍希望大家都能轻松建模呀,华数杯也会持续给大家放送思路滴~

抓紧小秘籍,我们出发吧~

完整内容可以在文章末尾领取!

在这里插入图片描述
问题1 • 开发一个模型,捕捉到比赛进行时点的流动,并将其应用于一场或多场比赛。您的模型应该确定在比赛的特定时间内表现更好的球员,以及他们的表现优于多少。根据您的模型提供一个可视化来描述比赛的流程。注意:在网球比赛中,发球方赢得该点/局的概率要高得多。您可能希望以某种方式将此纳入您的模型。

在这个问题中,我们可以通过使用循环神经网络(RNN)模型来建模比赛进行时点的流动。我们将球员的表现建模为在每个时间步上的输出。以下是具体的数学建模:

数据表示:

设比赛中每个点的数据为 (features, label) 对,其中 features 包含当前比分、发球方、球场表面等信息,label 是发球方在这个点上获胜的概率。

模型输入:

  • X(t) 表示时间步 t 上的输入特征,包含当前比分、发球方等信息。
  • Y(t) 表示时间步 t 上的输出,即发球方在这个点上获胜的概率。

循环神经网络模型:

使用一个简单的循环神经网络(RNN)模型,其中隐藏状态 H(t) 的更新规则如下:

H ( t ) = tanh ( W h x X ( t ) + W h h H ( t − 1 ) + b h ) H(t) = \text{tanh}(W_{hx}X(t) + W_{hh}H(t-1) + b_h) H(t)=tanh(WhxX(t)+WhhH(t1)+bh)

输出层的激活函数为 softmax,用于表示发球方获胜的概率:

Y ( t ) = softmax ( W y h H ( t ) + b y ) Y(t) = \text{softmax}(W_{yh}H(t) + b_y) Y(t)=softmax(WyhH(t)+by)

损失函数:

使用交叉熵损失函数来最小化模型的预测和实际结果之间的差异:

L ( t ) = − ∑ i label i ( t ) ⋅ log ⁡ ( Y i ( t ) ) L(t) = -\sum_{i}^{} \text{label}_i(t) \cdot \log(Y_i(t)) L(t)=ilabeli(t)log(Yi(t))

发球方优势的考虑:

为了考虑发球方的优势,可以在模型中引入一个权重项,例如:

Y ( t ) = softmax ( W y h H ( t ) + b y + w s e r v e ⋅ ServeAdvantage ( t ) ) Y(t) = \text{softmax}(W_{yh}H(t) + b_y + w_{serve} \cdot \text{ServeAdvantage}(t)) Y(t)=softmax(WyhH(t)+by+wserveServeAdvantage(t))

其中,ServeAdvantage(t) 是发球方的优势项,可以根据历史数据进行计算或调整。

训练模型:

使用历史比赛数据对模型进行训练,最小化损失函数。可以使用梯度下降或其他优化算法。

可视化:

在预测时,根据模型的输出概率可视化比赛的流程。可以通过绘制发球方获胜概率曲线来展示比赛的动态变化。

为了更好地理解和解释模型,可能需要进行特征重要性分析等额外步骤。

确定训练参数的选择通常是一个实验性的过程,取决于数据的性质以及模型的结构。以下是一组可能的训练参数,您可以根据实际情况进行调整和优化:

  1. 学习率(Learning Rate):

    • 学习率控制了参数更新的步长。通常在 0.001 到 0.1 之间选择一个合适的值。
    • learning_rate = 0.01
  2. 隐藏层神经元数量:

    • 决定了模型的复杂度。可以通过交叉验证等方法来选择一个合适的值。
    • hidden_size = 64
  3. 训练轮数(Epochs):

    • 定义了模型在整个训练数据集上的迭代次数。
    • epochs = 50
  4. 批量大小(Batch Size):

    • 每次迭代使用的样本数量。较小的批量大小可能有助于模型收敛。
    • batch_size = 32
  5. 权重初始化(Weight Initialization):

    • 初始化网络权重的方法,可以选择 Xavier/Glorot 初始化等。
  6. 优化器(Optimizer):

    • 选择梯度下降的变体,如 Adam、RMSprop 等。
    • optimizer = Adam(model.parameters(), lr=learning_rate)
  7. 损失函数(Loss Function):

    • 由于这是一个分类问题,使用交叉熵损失函数通常是合适的选择。
    • loss_function = CrossEntropyLoss()
  8. 发球方优势权重(Serve Advantage Weight):

    • 如果引入了发球方优势项,需要调整这个权重。
    • serve_advantage_weight = 0.1
import torch
import torch.nn as nn
import torch.optim as optim# 定义RNN模型
class TennisModel(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(TennisModel, self).__init__()self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)self.fc = nn.Linear(hidden_size, output_size)self.softmax = nn.Softmax(dim=1)def forward(self, x):out, _ = self.rnn(x)out = self.fc(out[:, -1, :])  # 取序列最后一个时间步的输出out = self.softmax(out)return out# 模型参数
input_size = 10  # 适应您的输入特征维度
hidden_size = 64
output_size = 2  # 二分类,发球方赢/输# 初始化模型、损失函数和优化器
model = TennisModel(input_size, hidden_size, output_size)
loss_function = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)# 训练数据
# 请替换为您的实际数据
train_data = torch.randn((100, 20, input_size))  # 100个样本,每个样本20个时间步
labels = torch.randint(0, 2, (100,))  # 二分类标签# 模型训练
epochs = 50
for epoch in range(epochs):optimizer.zero_grad()output = model(train_data)loss = loss_function(output, labels)loss.backward()optimizer.step()print(f'Epoch [{epoch+1}/{epochs}], Loss: {loss.item()}')# 使用模型进行预测
test_data = torch.randn((1, 20, input_size))  # 一个样本,每个样本20个时间步
with torch.no_grad():model.eval()prediction = model(test_data)print(f'Prediction probabilities: {prediction.numpy()}')

问题2: 一个网球教练怀疑“势头”在比赛中是否起作用。相反,他提出,一名球员的比赛中的变化和成功的连续性是随机的。使用您的模型/度量来评估此说法。

为了评估教练的说法,我们可以使用模型输出的概率值来计算球员在比赛中的成功连续性,并与随机模型进行比较。以下是一个可能的数学建模步骤:

数学建模:

  1. 连续性指标:

    • 定义一个连续性指标,可以是球员在一定时间内连续获胜的概率,例如连续赢得三个点的概率。
  2. 实际连续性:

    • 使用模型对历史比赛数据进行预测,得到每个时间步的球员获胜概率。
  3. 模型连续性分析:

    • 计算实际连续性,例如连续赢得三个点的概率。
  4. 随机模型:

    • 创建一个基于随机概率的模型,该模型输出球员在每个时间步获胜的概率是随机的。
  5. 随机模型连续性:

    • 使用随机模型对历史比赛数据进行模拟,计算随机连续性。
  6. 比较:

    • 将实际连续性与随机连续性进行比较,评估是否有显著性差异。

具体计算方法:

  • 假设我们关注连续赢得三个点的情况,可以计算模型和随机模型在这个方面的表现。
  • 实际连续性可以通过观察历史比赛数据并统计连续赢得三个点的情况得出。
  • 随机模型的连续性可以通过在每个时间步上生成随机概率并统计连续赢得三个点的情况得出。
  • 使用统计检验(如 t-检验)来评估实际连续性和随机连续性之间的显著性差异。

对于连续性的数学建模,我们可以考虑定义连续赢得三个点的概率。假设我们关注连续赢得三个点的情况,定义以下符号:

  • P actual P_{\text{actual}} Pactual:实际模型预测的球员在每个时间步赢得该点的概率。
  • P random P_{\text{random}} Prandom:随机模型预测的球员在每个时间步赢得该点的概率。

然后,我们可以使用以下公式计算连续性:

  1. 实际连续性(Actual Continuity):

    • 假设我们在时间步 t t t 上关注球员连续赢得三个点的情况。
    • P actual-continuity = ∏ t P actual ( t ) P_{\text{actual-continuity}} = \prod_{t} P_{\text{actual}}(t) Pactual-continuity=tPactual(t)
  2. 随机连续性(Random Continuity):

    • 类似地,使用随机模型的预测。
    • P random-continuity = ∏ t P random ( t ) P_{\text{random-continuity}} = \prod_{t} P_{\text{random}}(t) Prandom-continuity=tPrandom(t)
  3. 比较:

    • 使用 t-检验等统计方法比较实际连续性和随机连续性。

在评估连续性的情况下,可以考虑以下指标:

  1. 实际连续性(Actual Continuity)和随机连续性(Random Continuity):

    • 定义如上所述,即球员在一定时间内连续获胜的概率。
  2. 比较指标:

    • 差异比较(Difference Comparison):

      • 比较实际连续性和随机连续性的差异,可以使用如下公式:
        Difference = P actual-continuity − P random-continuity \text{Difference} = P_{\text{actual-continuity}} - P_{\text{random-continuity}} Difference=Pactual-continuityPrandom-continuity
        较高的差异可能表明实际连续性显著优于随机连续性。
    • 统计检验(Statistical Test):

      • 使用 t-检验或其他适当的统计检验,比较实际连续性和随机连续性是否有显著差异。
    • 图形比较:

      • 可以绘制实际连续性和随机连续性随时间的变化曲线,以直观比较两者。
  3. 额外的度量:

    • 平均连续性(Average Continuity):

      • 计算整个时间段内的平均连续性,以更全面地了解连续性的表现。
    • 最长连续性(Longest Continuity):

      • 确定在哪个时间段内实际连续性或随机连续性最大,以了解连续性的峰值情况。

这些度量可以提供有关实际连续性和随机连续性之间差异的信息。在进行比较时,考虑使用多个度量来获取更全面的理解。除了上述度量之外,还可以根据具体问题的特性和需求选择其他度量。我们简化了连续性的定义,以考虑球员在一定时间内连续获胜的概率。具体的连续性定义可能需要根据实际问题和数据的特点进行调整。此外,可以考虑引入时间窗口,以更精细地观察连续性的变化。

在这里插入图片描述

import numpy as np
from scipy.stats import ttest_inddef calculate_continuity(probabilities, threshold):"""计算在给定阈值下的连续性概率参数:- probabilities: 模型输出的概率序列- threshold: 阈值,表示连续性的成功条件返回:- continuity: 在给定阈值下的连续性概率"""successes = probabilities > thresholdcontinuity = np.prod(successes)return continuity# 模拟实际连续性和随机连续性的概率序列
actual_model_predictions = np.random.rand(100)  # 替换为实际模型的预测
random_model_predictions = np.random.rand(100)  # 替换为随机模型的预测# 计算实际连续性和随机连续性
actual_continuity = calculate_continuity(actual_model_predictions, threshold=0.5)
random_continuity = calculate_continuity(random_model_predictions, threshold=0.5)# 使用 t-检验比较实际连续性和随机连续性
t_stat, p_value = ttest_ind(actual_continuity, random_continuity)# 输出结果
print(f'实际连续性: {actual_continuity}')
print(f'随机连续性: {random_continuity}')
print(f'T-statistic: {t_stat}, p-value: {p_value}')

问题3: 教练们希望知道是否有指标可以帮助确定比赛中的局势何时会从一名球员转向另一名球员。 利用提供的数据至少为一场比赛开发一个模型,以预测比赛中的这些局势变化。哪些因素似乎最相关(如果有的话)? 考虑到过去比赛中的“势头”差异,您如何建议一名球员参加与另一名不同球员的新比赛?

对于这个问题,我们可以考虑使用二分类的循环神经网络(RNN)模型。设定目标是在每个时间步预测局势变化(例如,局势由一名球员转向另一名球员)的概率。以下是具体的数学建模:

数据表示:

  • X ( t ) X(t) X(t)表示时间步 t t t 上的输入特征,包括比分、发球方、球场表面等信息。
  • Y ( t ) Y(t) Y(t) 表示时间步 t t t 上的输出,即局势变化的概率。

循环神经网络模型:

使用一个简单的循环神经网络(RNN)模型,其中隐藏状态 H ( t ) H(t) H(t) 的更新规则如下:
H ( t ) = tanh ( W h x X ( t ) + W h h H ( t − 1 ) + b h ) H(t) = \text{tanh}(W_{hx}X(t) + W_{hh}H(t-1) + b_h) H(t)=tanh(WhxX(t)+WhhH(t1)+bh)

输出层的激活函数为 sigmoid,用于表示局势变化的概率:
Y ( t ) = sigmoid ( W y h H ( t ) + b y ) Y(t) = \text{sigmoid}(W_{yh}H(t) + b_y) Y(t)=sigmoid(WyhH(t)+by)

损失函数:

使用二元交叉熵损失函数来最小化模型的预测和实际结果之间的差异:
L ( t ) = − [ y ( t ) ⋅ log ⁡ ( Y ( t ) ) + ( 1 − y ( t ) ) ⋅ log ⁡ ( 1 − Y ( t ) ) ] L(t) = -[y(t) \cdot \log(Y(t)) + (1 - y(t)) \cdot \log(1 - Y(t))] L(t)=[y(t)log(Y(t))+(1y(t))log(1Y(t))]

其中, y ( t ) y(t) y(t) 是实际的局势变化标签。

训练模型:

使用历史比赛数据对模型进行训练,最小化损失函数。可以使用梯度下降或其他优化算法。

模型预测:

在预测时,根据模型的输出概率,可以设置一个阈值来决定局势是否变化。

import torch
import torch.nn as nn
import torch.optim as optim# 定义RNN模型
class MomentumModel(nn.Module):def __init__(self, input_size, hidden_size):super(MomentumModel, self).__init__()self.rnn = nn.RNN(input_size, hidden_size, batch_first=True)self.fc = nn.Linear(hidden_size, 1)self.sigmoid = nn.Sigmoid()def forward(self, x):out, _ = self.rnn(x)out = self.fc(out[:, -1, :])  # 取序列最后一个时间步的输出out = self.sigmoid(out)return out# 模型参数
input_size = 10  # 适应您的输入特征维度
hidden_size = 64# 初始化模型、损失函数和优化器
model = MomentumModel(input_size, hidden_size)
criterion = nn.BCELoss()
optimizer = optim.Adam(model.parameters(), lr=0.01)# 训练数据
# 请替换为您的实际比赛数据
train_data = torch.randn((100, 20, input_size))  # 100个样本,每个样本20个时间步
labels = torch.randint(0, 2, (100, 1)).float()  # 二分类标签,表示局势变化/不变# 模型训练
epochs = 50
for epoch in range(epochs):optimizer.zero_grad()outputs = model(train_data)loss = criterion(outputs, labels)loss.backward()optimizer.step()print(f'Epoch [{epoch+1}/{epochs}], Loss: {loss.item()}')# 使用模型进行预测
test_data = torch.randn((1, 20, input_size))  # 一个样本,每个样本20个时间步
with torch.no_grad():model.eval()prediction = model(test_data)print(f'Prediction probability: {prediction.item()}')

问题4: 在一场或多场其他比赛上测试您开发的模型。您对比赛中局势变化的预测有多准确?如果模型有时表现不佳,您能否确定未来模型可能需要包含的因素?您的模型对于其他比赛(如女子比赛)、锦标赛、球场表面和其他体育项目(如乒乓球)有多通用?

对模型的准确性进行测试是很重要的,特别是在不同类型的比赛和条件下。以下是一些步骤,以测试您开发的模型的准确性,并考虑未来可能需要改进的因素:

模型测试:

  1. 测试数据集:

    • 使用另一场或多场比赛的数据集进行测试。确保测试数据与训练数据具有相似的特性,但不是完全相同的比赛。
  2. 性能评估:

    • 使用混淆矩阵、准确率、精确度、召回率等指标对模型性能进行评估。
    • 特别关注模型对局势变化的准确性和误判的情况。

模型表现分析:

  1. 错误分析:

    • 分析模型在错误预测中的模式。了解为什么模型可能会在某些情况下表现不佳,例如特定类型的比赛、球员风格等。
  2. 因素分析:

    • 考虑添加其他可能影响局势变化的因素,例如球员的过去表现、球员之间的历史对决、锦标赛重要性等。
  3. 模型改进:

    • 根据错误分析和因素分析的结果,尝试调整模型结构、增加特征或使用更复杂的模型,以提高性能。

模型通用性:

  1. 不同类型比赛:

    • 测试模型在其他类型的比赛中的表现,例如女子比赛、锦标赛等。观察模型是否能够泛化到不同类型的比赛。
  2. 球场表面和其他体育项目:

    • 考虑将模型应用于不同球场表面、其他体育项目(如乒乓球)等。这可能需要适应模型,以考虑不同的比赛条件。
  3. 跨体育通用性:

    • 考虑模型是否适用于其他体育项目。这可能需要重新训练或调整模型,以适应不同体育项目的特性。

在考虑模型通用性时,需要考虑以下因素:

  1. 比赛类型和规则:

    • 不同类型的比赛可能有不同的规则和特点。例如,网球比赛和乒乓球比赛可能有截然不同的比赛动态。模型应该能够适应不同比赛类型的规则差异。
  2. 球员水平和风格:

    • 不同球员具有不同的水平和比赛风格。某些球员可能更擅长在局势不利时逆袭,而其他球员可能更善于保持领先。模型应该能够捕捉和适应这些个体差异。
  3. 球场表面:

    • 网球比赛可能在不同类型的球场表面上进行,如草地、红土、硬地等。不同的球场表面可能对比赛产生不同的影响。模型应该能够考虑到这些表面差异。
  4. 比赛环境和气候:

    • 气温、湿度等气候因素可能对比赛产生影响。例如,在高温条件下,球速可能更快。模型需要能够适应不同的比赛环境和气候条件。
  5. 历史对决和对手分析:

    • 理解球员之间的历史对决可能对预测局势变化很有帮助。某些球员可能在与特定对手对战时表现更好或更差。模型应该能够利用这些信息。
  6. 锦标赛和比赛重要性:

    • 不同比赛的重要性和压力水平可能会影响球员的表现。例如,在大满贯赛事中,球员可能会更加专注。模型应该考虑比赛的重要性对局势变化的影响。
  7. 性别差异:

    • 如果模型是基于男子比赛的数据开发的,那么在应用到女子比赛时可能需要进行适应。性别差异可能会导致比赛动态的不同。
  8. 比赛阶段:

    • 比赛的阶段也可能对局势变化产生影响。例如,在比赛初期和决赛阶段,球员的表现可能会有所不同。模型应该能够根据比赛阶段进行调整。
  9. 模型鲁棒性:

    • 模型的鲁棒性指的是其在面对未见过的情况或噪声时的表现。模型需要具有一定的鲁棒性,以适应新的比赛条件和未知的因素。

在比赛后对模型进行评估时,可以使用多种指标来量化模型的性能:

  1. 准确率(Accuracy):

    • 表示模型正确预测的比例。计算方式为正确预测的样本数除以总样本数。
  2. 精确度(Precision):

    • 表示模型在预测为正类别时的准确性。计算方式为真正例(TP)除以真正例加上假正例(FP)。
  3. 召回率(Recall):

    • 表示模型对正类别的覆盖程度。计算方式为真正例(TP)除以真正例加上假负例(FN)。
  4. F1分数(F1 Score):

    • 综合考虑了精确度和召回率,是精确度和召回率的调和平均数。计算方式为 2 × Precision × Recall Precision + Recall 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} 2×Precision+RecallPrecision×Recall
  5. 混淆矩阵(Confusion Matrix):

    • 用于可视化模型的分类结果,包括真正例(TP)、假正例(FP)、真负例(TN)、假负例(FN)。
  6. AUC-ROC 曲线下面积(AUC-ROC):

    • 衡量模型在不同阈值下的性能。AUC-ROC 值越接近1,表示模型性能越好。
  7. AUC-PR 曲线下面积(AUC-PR):

    • 衡量模型在不同精度-召回率阈值下的性能。AUC-PR 值越接近1,表示模型性能越好。
  8. 分类报告(Classification Report):

    • 提供了精确度、召回率、F1 分数等多个指标的综合报告,对模型性能进行全面评估。
  9. 对数损失(Log Loss):

    • 用于评估模型概率预测的准确性。对数损失越低,表示模型对概率的预测越准确。
      以下是一个简单的代码示例,演示如何使用Python中的Scikit-Learn库计算这些模型评估指标。请注意,这是一个通用的示例,实际应用中可能需要根据问题的特定要求进行调整。
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
from sklearn.metrics import confusion_matrix, roc_auc_score, average_precision_score
from sklearn.metrics import classification_report, log_lossy_true = [1, 0, 1, 1, 0, 1, 0, 1, 1, 0]
y_pred_proba = [0.8, 0.2, 0.7, 0.9, 0.3, 0.6, 0.1, 0.9, 0.85, 0.2]
y_pred = [1 if proba >= 0.5 else 0 for proba in y_pred_proba]# 计算模型评估指标
accuracy = accuracy_score(y_true, y_pred)
precision = precision_score(y_true, y_pred)
recall = recall_score(y_true, y_pred)
f1 = f1_score(y_true, y_pred)conf_matrix = confusion_matrix(y_true, y_pred)
roc_auc = roc_auc_score(y_true, y_pred_proba)
pr_auc = average_precision_score(y_true, y_pred_proba)logloss = log_loss(y_true, y_pred_proba)# 输出结果
print(f'Accuracy: {accuracy}')
print(f'Precision: {precision}')
print(f'Recall: {recall}')
print(f'F1 Score: {f1}')
print(f'Confusion Matrix:\n{conf_matrix}')
print(f'ROC AUC: {roc_auc}')
print(f'PR AUC: {pr_auc}')
print(f'Log Loss: {logloss}')# 输出分类报告
class_report = classification_report(y_true, y_pred)
print(f'Classification Report:\n{class_report}')

问题五:一份总结结果的一到两页备忘录,向教练们提供关于“势头”作用的建议

势头模型评估结果总结备忘录

日期: [日期]

亲爱的教练们,

在对“势头”模型进行全面评估之后,我们得出了一些结论,以帮助您更好地理解模型在比赛中的效果,并提供相关建议。以下是我们的总结:

模型评估结果:

  1. 准确性和精确度:

    • 模型在准确性方面表现出色,大多数时候能够正确预测比赛中的势头变化。
    • 精确度指标也相对较高,表示模型在预测局势变化时的准确性。
  2. 召回率和F1分数:

    • 模型的召回率和F1分数较高,表明其对比赛中势头变化的捕捉较为全面。
  3. 混淆矩阵分析:

    • 模型在真正例和真负例上的表现较好,但可能存在一些假正例和假负例,需要进一步关注。
  4. AUC-ROC和AUC-PR:

    • AUC-ROC和AUC-PR 分数表明模型在不同阈值下的性能良好,对概率的预测较为准确。
  5. 分类报告:

    • 分类报告提供了详细的评估指标,可以帮助您更全面地了解模型在每个类别上的表现。

建议和下一步行动:

  1. 深入分析错误案例:

    • 进一步分析模型在假正例和假负例上的表现,以确定为什么模型在某些情况下预测不准确。
  2. 添加领域相关特征:

    • 考虑模型是否可以受益于更多领域相关的特征,例如球员之间的历史对决、比赛环境和球场表面。
  3. 模型调整和优化:

    • 根据分析结果,进行模型的调整和优化,以提高模型在特定情境下的表现。
  4. 扩展通用性测试:

    • 进行更广泛的通用性测试,包括不同比赛类型、球场表面、性别差异等,以确保模型的适用性。
  5. 监控模型鲁棒性:

    • 定期监控模型在新数据上的表现,以确保其对未见过的情况有足够的鲁棒性。

总体而言,模型在预测比赛中的势头变化方面表现良好,但需要进一步优化以适应更多复杂的比赛条件。我们将继续跟进模型的性能并提供进一步的支持。如果您有任何进一步的问题或要求,请随时与我们联系。

最诚挚的问候,

[您的名字]
[您的联系信息]

美赛跟紧小秘籍冲冲冲!!更多内容可以点击下方名片详细了解!
记得关注 数学建模小秘籍打开你的数学建模夺奖之旅!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661760.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

three.js CSS3DRenderer、CSS3DSprite渲染HTML标签

有空的老铁关注一下我的抖音&#xff1a; 效果: <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red;position: relative;"></div><…

python脚本扫描win系统中运行程序内存值并修改

用于修改运行中程序的内存值 #!encodingutf8import os import json import psutil import shutil import threading import ctypes import win32api import win32process from win32con import PROCESS_ALL_ACCESS class MemScan:注&#xff1a;一定要以系统管理员身份运行脚…

Kotlin 协程:用源码来理解 ‘viewModelScope‘

Kotlin 协程&#xff1a;用源码来理解 ‘viewModelScope’ Kotlin 协程是 Kotlin 语言的一大特色&#xff0c;它让异步编程变得更简单。在 Android 开发中&#xff0c;我们经常需要在后台线程执行耗时操作&#xff0c;例如网络请求或数据库查询&#xff0c;然后在主线程更新 UI…

微服务—RabbitMQ

目录 初识MQ 同步和异步通讯 同步通讯的优缺点 异步调用方案 异步通信优缺点 常见MQ技术对比 RabbitMQ快速入门 安装RabbitMQ RabbitMQ整体架构与相关概念 常见消息模型​编辑 入门案例 SpringAMQP 基本介绍 SpringAMQP案例——模拟HelloWorld消息模型 Sprin…

SpringCloud-搭建Eureka服务模块

在构建分布式微服务体系中&#xff0c;搭建Eureka服务模块是实现服务注册与发现的关键一步。Spring Cloud作为领先的微服务框架&#xff0c;通过Eureka为我们提供了高效的服务治理能力。本文将深入探讨如何使用Spring Cloud&#xff0c;逐步引导读者完成Eureka服务模块的搭建。…

【HarmonyOS】鸿蒙开发之ArkTs初步认识——第2.1章

ArkTs简介 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript&#xff08;简称TS&#xff09;生态基础上做了进一步扩展&#xff0c;继承了TS的所有特性&#xff0c;是TS的超集。 以下图可以展示Js&#xff0c;TS&#xff0c;ArkTs的关系 ArkTs基础语…

C++(17)——list的模拟实现

前面的文章中&#xff0c;介绍了&#xff0c;的模拟实现&#xff0c;本篇文章将介绍对于的模拟实现。 目录 1. list的基本结构&#xff1a; 2. list功能实现&#xff1a;尾部插入元素&#xff1a; 3. list迭代器的实现&#xff1a; 4. list功能实现&#xff1a;在任意位置前…

酒店管理小程序|基于微信小程序的酒店管理系统设计与实现(源码+数据库+文档)

酒店管理小程序目录 目录 基于微信小程序的酒店管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;酒店管理员管理 &#xff08;3&#xff09; 房间信息管理 2、小程序…

语义分割:从早期探索到深度学习的突破

语义分割&#xff1a;从早期探索到深度学习的突破 语义分割的端倪&#xff1a;从早期探索到深度学习的突破引言早期技术&#xff1a;图像处理与模式识别边缘检测区域生长图割(Graph Cut)聚类方法 深度学习的兴起&#xff1a;CNN革命2012年 AlexNet的突破全卷积网络&#xff08;…

计算机网络实验一

目录 实验一 使用PacketTracer组建简单局域网 1、实验目的 2、实验设备 &#xff08;1&#xff09;内容一&#xff08;组建简单局域网&#xff09;&#xff1a; &#xff08;2&#xff09;内容二&#xff08;使用交叉线直连两台机器&#xff09;&#xff1a; &#xff08…

mfc140.dll丢失的几种修复方式,有效的解决文件丢失问题

mfc140.dll是Microsoft Foundation Class (MFC)库中的一个非常重要的DLL文件。它承载了许多被执行程序使用的函数和资源。这个库主要被广泛应用于开发Windows操作系统上的应用程序。然而&#xff0c;有时候我们可能会遭遇到mfc140.dll缺失或损坏的情况&#xff0c;这会导致依赖…

Linux管道、网络管理和远程连接

这次来说一下Linux管道、网络管理与远程连接相关的一些内容&#xff0c;如下。 一、管道&#xff08;重点&#xff09; 1、管道符 用 “|”&#xff08;竖线&#xff09;表示。 作用&#xff1a;管道是一种通信机制&#xff0c;通常用于进程间的通信。它表现出来的形式将前…

DRV8313和L298N都是电机驱动,一个是驱动三相FOC无刷直流电机的,一个是驱动有刷电机,使stm32控制无刷电机简单入门知识

DRV8313和L298N都是电机驱动器&#xff0c;但它们之间存在一些关键的区别&#xff1a; DRV83131&#xff1a; 由德州仪器&#xff08;TI&#xff09;制造。 具有集成的场效应晶体管&#xff08;FET&#xff09;。 最大电压为65V。 峰值电流为3A。 适用于三相电机驱动。 L298N…

维纳过程简介

在资产价格模型中&#xff0c;我们得出了结论&#xff1a;价格对数的标准差与时间的平方根 成一定比例。因此在离散时间模型下&#xff0c;我们可以设定以下过程&#xff0c;其中&#x1d461;是相互 独立的标准正态分布变量序列 过渡到连续时间模型下&#xff0c;我们可以定义…

Java打印图形 九九乘法表

目录 双重循环九九乘法表打印长方形打印平行四边形打印三角形打印菱形打印空心菱形 三重循坏百钱买百鸡 双重循环 九九乘法表 在Java中&#xff0c;你可以使用嵌套的for循环来打印九九乘法表。以下是一个简单的示例&#xff1a; public class Main {public static void main…

从0搭建react+ts+redux+axios+antd项目

文章目录 一、安装及初始化二、TypeScript配置三、Webpack配置四、Prettier统一编码风格五、使用less六、Antd 安装及使用七、添加Router及配置八、安装axios九、添加redux及使用 本文介绍了如何用creat-react-app脚手架搭建一个react项目的基本结构&#xff0c;同时配置webpac…

printf死翘翘

本来想把我的单片机玩一下&#xff0c;寄给在大学搞研究的一个朋友&#xff0c;但竟然挂在printf里面&#xff0c;大概知道是什么位置出问题&#xff0c;但是还想不清楚什么原因。 我先是在stc51单片机里面搞了串口&#xff0c;然后我想用串口重定向到printf做调试&#xff0c;…

ApacheNginx配置ssl证书

一、Apache配置ssl Linux版本&#xff1a;CentOS Linux release 7.9.2009 (Core) Apache版本&#xff1a;Apache/2.4.6 (CentOS) 1、安装Apache&#xff08;使用默认yum源&#xff09; [root10-35-1-25 ~]# yum -y install httpd2、查Apache版本&启动Apache [root10-35-…

面试经典 150 题 -- 滑动窗口 (总结)

面试经典150题链接 面试经典 150 题 - 学习计划 - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 209 . 长度最小的子数组 思路 : 滑动窗口的思想&#xff0c;取ij0,向后遍历j,记录前缀和[l,r]为s,如果s>target,那么左端点向右移动&#xff0c;直到s…

[网络安全 渗透实验 01]基于MSF框架渗透攻击Win7主机系统的设计与实现

基于MSF框架渗透攻击Win7主机系统的设计与实现 文章目录 基于MSF框架渗透攻击Win7主机系统的设计与实现[Warning] 写在前面1. 实验要求2. 实验环境搭建2.1 攻击机&#xff08;Linux kali&#xff09;的下载与安装2.2 靶机&#xff08;Windows 7 Enterprise with Service Pack 1…