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

news2024/11/25 4:49:39

铛铛!小秘籍来咯!

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

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

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

在这里插入图片描述
问题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_ind

def calculate_continuity(probabilities, threshold):
    """
    计算在给定阈值下的连续性概率

    参数:
    - probabilities: 模型输出的概率序列
    - threshold: 阈值,表示连续性的成功条件

    返回:
    - continuity: 在给定阈值下的连续性概率
    """
    successes = probabilities > threshold
    continuity = 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_loss

y_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.coloradmin.cn/o/1426654.html

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

相关文章

(2)(2.11) RFD900

文章目录 前言 1 概述 2 主要功能 3 状态LED指示灯 4 接口 5 使用Mission Planner进行配置 6 支持不同国家/地区 7 讨论论坛 前言 RFD900 无线电调制解调器是一款高功率 900Mhz ISM 波段无线电调制解调器,设计用于远距离串行通信。据报道,其通信…

2024美国大学生数学建模美赛选题建议+初步分析

总的来说&#xff0c;去年算是美赛环境题元年&#xff0c;去年的开放度是较高的&#xff0c;今年每种赛题类型相对而言平均了起来 提示&#xff1a;DS C君认为的难度&#xff1a;E<BCF<AD&#xff0c;开放度&#xff1a;DBCE<A<F。 以下为A-F题选题建议及初步分析…

C++(17.5)——list模拟实现扩展

在上篇文章中&#xff0c;实现了的大部分功能以及部分迭代器。本片文章将对剩下的功能进行补充。 1. const迭代器&#xff1a; 对于上篇文章中实现的迭代器只能使用于非类型的对象。对于类型的遍历&#xff0c;则需要额外编写类型的迭代器。例如对于下面的场景&#xff1a; …

grafana安装DevOpsProdigy KubeGraf 1.5.2

安装DevOpsProdigy KubeGraf需要安装kube-state-metrics 官方地址&#xff1a;https://github.com/kubernetes/kube-state-metrics/tree/release-2.10/examples/standard 查看k8s版本和kube-state-metrics对应版本&#xff1a; [rootmaster1 kube-state-metrics]# ll 总用量 …

25考研|660/880/1000/1800全年带刷计划

作为一个参加过两次研究生考试的老学姐&#xff0c;我觉得考研数学的难度完全取决于你自己 我自己就是一个很好的例子 21年数学题目是公认的简单&#xff0c;那一年考130的很多&#xff0c;但是我那一年只考了87分。但是22年又都说是有史以来最难的一年&#xff0c;和20年的难度…

华擎B660 主板 怎么设置打开来电自启功能?

环境&#xff1a; 华擎B660 钢铁传奇 1700 : Intel B660 问题描述&#xff1a; 华擎B660 主板 怎么设置打开来电自启功能&#xff1f; 解决方案&#xff1a; 1.前往-高级- 芯片组配置 2.往下划找到交流 /电源断电恢复 选择电源故障后的电源状态。如果选择 [关机]&#x…

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(4)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述&#xff08;3&#xff09; 4.1.2 PCIe总线使用的信号 PCIe设备使用两种电源信号供电&#xff0c;分别是Vcc与Vaux&#xff0c;其额定电压为3.3V。其中Vcc为主电源&#xff0c;PCIe设备…

免费分享一套SpringBoot+Vue药店(药房)管理系统,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue药店(药房)管理系统 &#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue药店(药房)管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue药店(药房)管理系统 Java毕业设计…

flutter实战之美化 container

我们来看一个代码 Column(children: [...transaction.map((e) > Card(child:Row(children: [Container(child: Text(e.amout.toString()),),Column(children: [Text(e.title),Text(e.date.toString()),],)],),)).toList()],) 看看效果 感觉很不好 我们要去美化一下contai…

[晓理紫]每日论文分享(有中文摘要,源码或项目地址)

专属领域论文订阅 关注{晓理紫|小李子}&#xff0c;每日更新论文&#xff0c;如感兴趣&#xff0c;请转发给有需要的同学&#xff0c;谢谢支持 如果你感觉对你有所帮助&#xff0c;请关注我&#xff0c;每日准时为你推送最新论文。 为了答谢各位网友的支持&#xff0c;从今日起…

pytorch_car_caring 排坑记录

pytorch_car_caring 排坑记录 任务踩坑回顾简单环境问题代码版本问题症状描述解决方法 cuda问题&#xff08;异步问题&#xff09;症状描述解决方法 任务 因为之前那个MPC代码跑出来的效果不理想&#xff0c;看了一天代码&#xff0c;大概看明白了&#xff0c;但要做改进还要有…

力扣hot100 对称二叉树 递归

Problem: 101. 对称二叉树 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 参考 Code 时间复杂度: O ( n ) O(n) O(n) 空间复杂度: O ( n ) O(n) O(n) /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* …

Pytorch从零开始实战18

Pytorch从零开始实战——人脸图像生成 本系列来源于365天深度学习训练营 原作者K同学 文章目录 Pytorch从零开始实战——人脸图像生成环境准备模型定义开始训练可视化总结 环境准备 本文基于Jupyter notebook&#xff0c;使用Python3.8&#xff0c;Pytorch2.0.1cu118&#…

jmerter-01安装与界面介绍

文章目录 jmeter安装 jmeter安装 1.配置JDK环境 Jmeter到目前为止只支持java 8 2.解压JMeter安装包 就可以双击jmeter.bat 运行启动 3.运行过程中&#xff0c;不要关掉小黑窗 这个黑框不要关闭 jmeter图示

【CSS】外边距折叠(margin 塌陷)

外边距折叠(collapsing margins) 毗邻的两个或多个margin会合并成一个margin&#xff0c;叫做外边距折叠。 规则如下: 两个或多个毗邻的普通流中的块元素垂直方向上的 margin会折叠浮动元素 / inline-block元素 / 绝对定位元素 / 行内元素的margin不会和垂直方向上的其他元素…

使用Logstash将MySQL中的数据同步至Elasticsearch

目录 1 使用docker安装ELK 1.1 安装Elasticsearch 1.2 安装Kibana 1.3 安装Logstash 2 数据同步 2.1 准备MySQL表和数据 2.2 运行Logstash 2.3 测试 3 Logstash报错(踩坑)记录 3.1 记录一 3.1.1 报错信息 3.1.2 报错原因 3.1.3 解决方案 3.2 记录二 3.2.1 报错信…

深入了解C++:底层编译原理

进程的虚拟空间划分 任何编程语言&#xff0c;都会产生两样东西&#xff0c;指令和数据。 .exe程序运行的时候会从磁盘被加载到内存中&#xff0c;但是不能直接加载到物理内存中。Linux会给当前进程分配一块空间&#xff0c;比如x86 32位linux环境下会给进程分配2^32(4G)大小…

《数字电子电路》 课程设计:十字路口红绿灯自动控制系统(上)(multisim仿真及PCB实现)

&#xff08;一&#xff09;前言 本系列文章就笔者在大二下学期进行《数字电子线路》课程设计的题目&#xff1a;十字路口红绿灯自动控制系统 进行详细的讲解&#xff0c;希望对读者有所帮助。 &#xff08;二&#xff09;目录 一、主要指标及要求 二、电路工作原理 1、工作原…

「数据结构」3.ArrayList

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;Java数据结构 &#x1f387;**欢迎点赞收藏加关注哦&#xff01;* ArrayList &#x1f349;ArrayList的构造&#x1f349;add方法&#x1f34c;扩容机制&#x1f34c;重要结论 &#x1f349;其…

大数据交易蓝图,推动数据价值实现

数据最为新的生产要素&#xff0c;必定会推动各行各业的革新和转型。 数据流通&#xff0c;是数据价值实现的必然之路。 大数据交易中心&#xff0c;提供数据产品挂牌出售和合法合规交易的场所和平台。 数据厂商&#xff0c;通过技术手段收集数据&#xff0c;实现数据标准化…