当前位置: 首页 > news >正文

2024年国赛高教杯数学建模C题农作物的种植策略解题全过程文档及程序

2024年国赛高教杯数学建模

C题 农作物的种植策略

原题再现

  根据乡村的实际情况,充分利用有限的耕地资源,因地制宜,发展有机种植产业,对乡村经济的可持续发展具有重要的现实意义。选择适宜的农作物,优化种植策略,有利于方便田间管理,提高生产效益,减少各种不确定因素可能造成的种植风险。
  某乡村地处华北山区,常年温度偏低,大多数耕地每年只能种植一季农作物。该乡村现有露天耕地1201亩,分散为 34 个大小不同的地块,包括平旱地、梯田、山坡地和水浇地4种类型。平旱地、梯田和山坡地适宜每年种植一季粮食类作物;水浇地适宜每年种植一季水稻或两季蔬菜。该乡村另有16个普通大棚和4个智慧大棚,每个大棚耕地面积为0.6亩。普通大棚适宜每年种植一季蔬菜和一季食用菌,智慧大棚适宜每年种植两季蔬菜。同一地块(含大棚)每季可以合种不同的作物。 详见附件 1。
  根据农作物的生长规律,每种作物在同一地块(含大棚)都不能连续重茬种植,否则会减产; 因含有豆类作物根菌的土壤有利于其他作物生长,从 2023 年开始要求每个地块(含大棚)的所有土地三年内至少种植一次豆类作物。同时,种植方案应考虑到方便耕种作业和田间管理,譬如:每种作物每季的种植地不能太分散,每种作物在单个地块(含大棚)种植的面积不宜太小,等等。2023 年的农作物种植和相关统计数据见附件 2。

  请建立数学模型,研究下列问题:
  问题 1 假定各种农作物未来的预期销售量、种植成本、亩产量和销售价格相对于 2023 年保持 稳定,每季种植的农作物在当季销售。如果某种作物每季的总产量超过相应的预期销售量,超过部 分不能正常销售。请针对以下两种情况,分别给出该乡村 2024~2030 年农作物的最优种植方案,将 结果分别填入 result1_1.xlsx 和 result1_2.xlsx 中(模板文件见附件 3)。
  (1) 超过部分滞销,造成浪费;
  (2) 超过部分按 2023 年销售价格的 50%降价出售。
  问题 2 根据经验,小麦和玉米未来的预期销售量有增长的趋势,平均年增长率介于5%~10% 之间,其他农作物未来每年的预期销售量相对于 2023 年大约有±5%的变化。农作物的亩产量往往会 受气候等因素的影响,每年会有±10%的变化。因受市场条件影响,农作物的种植成本平均每年增长 5%左右。粮食类作物的销售价格基本稳定;蔬菜类作物的销售价格有增长的趋势,平均每年增长5% 左右。食用菌的销售价格稳中有降,大约每年可下降1%~5%,特别是羊肚菌的销售价格每年下降幅 度为5%。
  请综合考虑各种农作物的预期销售量、亩产量、种植成本和销售价格的不确定性以及潜在的种 植风险,给出该乡村 2024~2030 年农作物的最优种植方案,将结果填入 result2.xlsx 中(模板文件见 附件 3)。
  问题 3 在现实生活中,各种农作物之间可能存在一定的可替代性和互补性,预期销售量与销 售价格、种植成本之间也存在一定的相关性。请在问题 2 的基础上综合考虑相关因素,给出该乡村 2024~2030 年农作物的最优种植策略,通过模拟数据进行求解,并与问题 2 的结果作比较分析。
  附件 1 乡村现有耕地和农作物的基本情况
  附件 2 2023 年乡村农作物种植和相关统计数据
  附件 3 须提交结果的模板文件(result1_1.xlsx,result1_2.xlsx,result2.xlsx)

整体求解过程概述(摘要)

  本文研究最大化利用土地资源,建立栽种策略优化模型,利用贪心算法、随机扰动、蒙特卡洛、灵敏度检验等方法求解科学土地管理、超额出售、多因素时间波动、农作物替代性、互补性以及相关性等问题。
  针对问题一,定义第 t 年的第 i 季度时,在第 j 块地种植第 k 种作物种植面积为决策变量,构建了以种植经济效益最大化为目标函数,可耕种地面积、实际可售量、连作方式、地块及作物栽种等限制为约束的种植策略线性规划模型。为科学管理土地,满足种植地不宜太分散的目标,传入参数 p、 q,分别约束每块土地最多种植作物数量,每种作物最多可种植块数量。综合考虑 p、q 尽可能小与收益尽可能大。对题目给出的数据进行预处理,统一数据格式便于读取,并统计数据生成成本与产量的三维数据表。最终,使用求解器求解:超出部分滞销结果为40244799.20元,超出部分折价结果为56325297.78元;使用贪心策略求解:超出部分滞销结果为36843378.8元,超出部分折价结果为46724871.84元。这两种求解方法各有优缺点,求解器求解结果更优,但求解慢,而贪心算法则相反,根据具体需求选择方法,两种销售情况会导致结果产生较大差异,原因归结于收益大的作物在降价后仍可保持高收益,会被高频率大面积种植。
  针对问题二,考虑作物亩产量、预计销量和销售价格的波动因素,为增强风险应对能力,以最大化种植经济效益期望为目标函数,设定决策变量为波动场景下的可行策略对应的种植经济效益,增加其余参数的时间维度,在延续上一问的约束条件基础上,构建了随机规划模型。对于超过部分滞销情况,使用蒙特卡洛算法生成100组符合正态分布的随机参数序列,使用求解器在随机序列下求出100组种植策略。将分布函数离散化,可得到每组随机序列对应的概率,接着对每种规划策略进行扰动。最终得到100组随机扰动策略下,种植经济效益均值最高的种植规划策略,其中,抗波动性最强方案的种植经济效益均值为:51667432.02。
  针对问题三,基于问题二模型,目标函数与决策变量保持不变,分析作物相关性及销量-价格-成本相关性对变量的影响。对相关性强且作物类型相同的作物进行替代,比较目标函数对其替换程序的灵敏度检测其替代性,最终选择用小麦替代谷子,青椒替代辣椒,对互补性强的植物进行软约束,使其尽可能协同耕种,提升效率,如豆类轮作可提升总体产量。接着,根据销量-价格-成本关系,根据销量推算合理的成本与价格。综合考虑上述因素后,在模拟数据下求解最优种植方案的种植经济效益均值为:53023389.86,相较于第二问结果更优,符合优化的目标。

模型假设:

  1. 假设当季种植的农作物在当季销售,无库存。
  2. 假设问题一中每种农作物的未来预期销量、种植成本、亩产量和售价相较于2023年保持稳定。
  3. 假设问题二相关销量、售价等变量波动符合正态分布。
  4. 假设问题三中各种农作物预期销售量与销售价格、种植成本之间存在一定相关性。

问题分析:

  问题一的分析
  问题一中,假定后续每一年的策略规划中,其预期销售量、种植成本、亩产量都与2023年相同。基于此分别考虑超过部分滞销和按照50%折价出售的种植策略情况,可以构建线性规划模型,对连种约束和豆类种植等约束进行限制后,使用求解器进行求解或构建贪心策略,依次遍历每块土地,选取对当前土地性价比最高的作物优先进行种植。同时考虑豆类种植约束,要求任何连续三年内豆类作物种植面积大于当前土地面积,则可以保证三年内每亩地都种过一次豆类作物。
  问题二的分析
  问题二中,在问题一构建的优化模型基础上,增加了作物预期销售量、种植成本、销售价格的变化条件。为输出最优的种植方案,需要在各种不确定因素和种植风险中选择一个能够在不同的预期销售量、种植成本、销售价格的变化条件中相对都有较好表现的种植策略。求解过程可以考虑使用蒙特卡洛算法生成多个随机序列,模拟不同的现实情况。
  问题三的分析
  问题三中,基于问题二构建的增加变量扰动的优化模型,进一步考虑农作物之间的可替代性和互补性,并综合考虑预期销售量与销售价格、种植成本之间的相关性,从而使构建的种植策略优化模型更加接近现实情况。首先,可依据农作物对总收入的灵敏度进行分析替代,从而减少农作物种类,优化种植结构。同时,对预期销售量与销售价格、种植成本进行相关性约束,从而构建增加了变量扰动和作物关联因素的种植优化模型。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

import pandas as pd
import gurobipy as gp
from gurobipy import GRB
import openpyxl# 读取Excel文件中的地块面积数据
file1 = '附件1.xlsx'
data1 = pd.read_excel(file1, sheet_name='乡村的现有耕地')
data2 = pd.read_excel(file1, sheet_name='乡村种植的农作物')file2 = '附件2.xlsx'
data3 = pd.read_excel(file2, sheet_name='2023年的农作物种植情况')
data4 = pd.read_excel(file2, sheet_name='2023年统计的相关数据')# 已知数据(需根据实际情况初始化)
T = 7  # 年数
I = 2  # 季节数
J = 54  # 地块数
K = 41  # 作物种类数
p = 4M = 100000
S = data1['地块面积/亩'].tolist()
Lk = data2['Ik'].tolist()
Price = [[3.25, 7.5, 8.25, 7, 6.75,3.5, 3, 6.75, 6, 7.5, 40, 1.5,3.25, 5.5, 3.5, 7, 8, 6.75, 6.5,3.75, 6.25, 5.5, 5.75, 5.25, 5.5,6.5, 5, 5.75, 7, 5.25, 7.25, 4.5,4.5, 4, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 9.6, 8.1, 7.8, 4.5, 7.5,6.6, 6.9, 6.8, 6.6, 7.8, 6, 6.9,8.4, 6.3, 8.7, 5.4, 5.4, 4.8, 2.5,2.5, 3.25, 57.5, 19, 16, 100]]
Request = [[15700, 21850, 22400, 33040, 6975,170840, 132750, 71400, 30000, 12500,1500, 35100, 36000, 14000, 10000, 21000,36480, 26880, 6480, 30000, 35400, 43200,0, 1800, 3600, 4050, 4500, 34400, 9000, 1500,1200, 3600, 1800, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 810, 2160, 900, 810, 0, 0,0, 0, 0, 0, 810, 2160, 900, 810, 0, 0]]df1 = pd.read_excel('cost.xlsx', sheet_name='第一季')
df2 = pd.read_excel('cost.xlsx', sheet_name='第二季')
Cost1 = df1.values.transpose()
Cost2 = df2.values.transpose()
Cost = [Cost1, Cost2]df3 = pd.read_excel('Produce.xlsx', sheet_name='第一季')
df4 = pd.read_excel('Produce.xlsx', sheet_name='第二季')
Produce1 = df3.values.transpose()
Produce2 = df4.values.transpose()
Produce = [Produce1, Produce2]model = gp.Model("Crop_Planting")# 决策变量
X = model.addVars(T, I, J, K, vtype=GRB.CONTINUOUS, name="X")
Y = model.addVars(T, I, J, K, vtype=GRB.BINARY, name="Y")
Z = model.addVars(T, I, K, vtype=GRB.CONTINUOUS, name="Z")
Z_rice = model.addVars(T, range(27, 35), vtype=GRB.BINARY, name="Z_Rice")# 定义目标函数
model.setObjective(gp.quicksum(Price[i][k] * Z[t, 1, k] - gp.quicksum(Cost[i][j][k] * X[t, 1, j, k] for j in range(J))for t in range(T) for i in range(I) for k in range(K)),GRB.MAXIMIZE
)# 约束1:销量不超过作物总产量
model.addConstrs((Z[t, 1, k] <= gp.quicksum(Produce[i][j][k] * X[t, i, j, k] for j in range(J))for t in range(T) for i in range(I) for k in range(K)), name="Production_Limit")# 约束2:销量不超过市场需求
model.addConstrs((Z[t, 1, k] <= Request[i][k] for t in range(T) for i in range(I) for k in range(K)), name="Demand_Limit")# 约束3:是否种植该作物
model.addConstrs((X[t, 1, j, k] <= M * Y[t, 1, j, k]for t in range(T) for i in range(I) for j in range(J) for k in range(K)),name="X_UpperBound_Y")model.addConstrs((X[t, 1, j, k] >= 0.01 * Y[t, 1, j, k]for t in range(T) for i in range(I) for j in range(J) for k in range(K)),name="X_LowerBound_Y")# 约束4:每块地每季度种植面积总和不能超过地块总面积
for t in range(T):for i in range(I):for j in range(J):model.addConstr(gp.quicksum(X[t, i, j, k] for k in range(K)) <= S[j], name=f"Area_{t}-{i}-{j}")# 约束5:三年内必须至少种植一次豆类作物
model.addConstrs((gp.quicksum(X[t, i, j, k] * Lk[k] for t in range(2) for i in range(I) for k in range(K)) >= S[j]for j in range(J)),name="Legume_First_Two_Years")for j in range(J):for t in range(T - 2):  # 以3年为单位进行检查model.addConstr(gp.quicksum(X[tt, 1, j, k] * Lk[k] for tt in range(t, t + 3) for i in range(I) for k in range(K)) >= S[j], name=f"Legume_{j}_{t}")# 约束6:同一种作物在同一片土地上不能连续两个季度种植
model.addConstrs((X[t, 1, j, k] * X[t, i + 1, j, k] <= S[j]for t in range(T) for j in range(J) for k in range(K) for i in range(I - 1)),name="No_Consecutive_Planting")
model.addConstrs((X[t, i + 1, j, k] * X[t + 1, i, j, k] <= S[j]for t in range(T - 1) for j in range(J) for k in range(K) for i in range(I - 1)),name="No_Consecutive_Planting")# 约束7:最多种植p种作物
model.addConstrs((gp.quicksum(Y[t, i, j, k] for k in range(K)) <= pfor t in range(T) for i in range(I) for j in range(J)),name="Max_Three_Crops")# 添加约束:每种作物最多种在q块地上
model.addConstrs((gp.quicksum(Y[t, i, j, k] for j in range(J)) <= qfor t in range(T) for i in range(I) for k in range(K)),name="Max_Five_Plots_Per_Crop")# 约束 8:确保粮食作物在连续年份的第一季不能连种
model.addConstrs((X[t, 0, j, k] + X[t + 1, 0, j, k] <= S[j]for t in range(T - 1) for j in range(J) for k in range(1, 16)),name="No_Consecutive_Years_For_Grain")# 约束 9:编号为 1-26 的土地在第二季不种植任何作物
model.addConstrs((X[t, 1, j, k] == 0for t in range(T) for j in range(26) for k in range(K)),name="No_Planting_Second_Season_For_Lands_1_26")
# 约束:编号为 1-26 的土地上只能种植编号为 1-15 的作物
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for i in range(I) for j in range(26) for k in range(15, 41)),name="No_Planting_Crops_16_41_On_Lands_1_26")# 约束:编号为 1-15 的作物只能种植在编号为 1-26 的土地上
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for i in range(I) for j in range(26, J) for k in range(15)),name="No_Planting_Crops_1_15_On_Lands_27_54")# 约束:编号为 27-34 的土地种植水稻
model.addConstrs((gp.quicksum(X[t, i, j, k] for i in range(I) for k in range(K) if k == 15) <= M * Z_rice[t, j]for t in range(T) for j in range(27, 35)),name="Rice_Planting_Only_Once")# 确保水稻只能种植在单季
model.addConstrs((gp.quicksum(X[t, i, j, 15] for i in range(I)) <= S[j]for t in range(T) for j in range(27, 35)),name="Single_Season_Rice")# 添加约束 1:如果种植了水稻,则第二季不种植任何作物
model.addConstrs((gp.quicksum(X[t, i, j, k] for k in range(K)) <= M * (1 - Z_rice[t, j])for t in range(T) for j in range(27, 35)),name="No_Second_Season_If_Rice")# 添加约束 2:第一季只能种植 17-34 号作物
model.addConstrs((gp.quicksum(X[t, 0, j, k] for k in range(16, 35)) == gp.quicksum(X[t, 0, j, k] for k in range(16, 35))for t in range(T) for j in range(27, 35)),name="First_Season_Crops_17_34")# 添加约束 3:第二季只能种植 35-37 号作物
model.addConstrs((gp.quicksum(X[t, 1, j, k] for k in range(34, 38)) == gp.quicksum(X[t, 1, j, k] for k in range(34, 38))for t in range(T) for j in range(27, 35)),name="Second_Season_Crops_35_37")# 添加约束:编号为 35-37 的作物只能种植在编号为 27-34 的土地上
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for i in range(I) for j in range(26) for k in range(34, 37 + 1)),name="No_Planting_Crops_35_37_On_Lands_1_26")# 添加约束 4:编号为 38-41 的作物只能在 35-50 号地的第二季种植
model.addConstrs((X[t, i, j, k] == 0for t in range(T) for j in range(35) for k in range(37, 41)),name="No_Planting_Crops_38_41_On_Lands_1_34")# 添加约束 5:编号为 38-41 的作物只能种植在第二季
model.addConstrs((X[t, 0, j, k] == 0for t in range(T) for j in range(35, 51) for k in range(37, 41)),name="No_Planting_Crops_38_41_First_Season")
# 设置相对Gap
model.setParam('MIPGap', 0.01)# 优化模型
model.optimize()# 输出结果
if model.status == GRB.OPTIMAL:print(f"Optimal solution found with objective value: {model.objVal}")for i in range(I):for j in range(J):for k in range(K):if X[t, i, j, k].x > 0:print(f"Year {t + 1}, Season {i + 1}, Land {j + 1}, Crop {k + 1}: {X[t, i, j, k].x} acres planted")print(f"Optimal solution found with objective value: {model.objVal}(元)")
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2024年国赛高教杯数学建模C题农作物的种植策略解题全过程文档及程序

2024年国赛高教杯数学建模 C题 农作物的种植策略 原题再现 根据乡村的实际情况&#xff0c;充分利用有限的耕地资源&#xff0c;因地制宜&#xff0c;发展有机种植产业&#xff0c;对乡村经济的可持续发展具有重要的现实意义。选择适宜的农作物&#xff0c;优化种植策略&…...

WEB前端将指定DOM生成图片并下载最佳实践(html2canvas)

前言&#xff1a; html2canvas 是一个 JavaScript 库&#xff0c;其主要作用是将 HTML 元素或其部分内容渲染为 Canvas 图像。通过它&#xff0c;开发者可以将网页中的任意 DOM 元素&#xff08;包括文本、图片、样式等&#xff09;转换为图片格式&#xff08;如 PNG 或 JPEG&…...

C# 十六进制字符串转换为十进制

在 C# 中&#xff0c;将十六进制&#xff08;Hexadecimal&#xff09;字符串转换为十进制&#xff08;Decimal&#xff09;整数非常简单。以下是几种常见的方法&#xff1a; 方法 1: 使用 Convert.ToInt32 Convert.ToInt32 方法可以直接将十六进制字符串转换为十进制整数。 示…...

第4章 信息系统架构(三)

4.3 应用架构 应用架构的主要内容是规划出目标应用分层分域架构&#xff0c;根据业务架构规划目标应用域、应用组和目标应用组件&#xff0c;形成目标应用架构逻辑视图和系统视图。从功能视角出发&#xff0c;阐述应用组件各自及应用架构整体上&#xff0c;如何实现组织的高阶…...

Qt 保留小数点 固定长度 QString 格式化

QString的arg()函数格式化输出double类型数值&#xff0c;包括fieldWidth、fmt、prec和fillChar参数的作用。示例代码展示了如何设置精度和填充字符&#xff0c;以及字段宽度的影响。文中提到&#xff0c;当fieldWidth小于实际长度时&#xff0c;前面的填充不会被截断。此外&am…...

亲测可用,IDEA中使用满血版DeepSeek R1!支持深度思考!免费!免配置!

作者&#xff1a;程序员 Hollis 之前介绍过在IDEA中使用DeepSeek的方案&#xff0c;但是很多人表示还是用的不够爽&#xff0c;比如用CodeChat的方案&#xff0c;只支持V3版本&#xff0c;不支持带推理的R1。想要配置R1的话有特别的麻烦。 那么&#xff0c;今天&#xff0c;给…...

AI训练中的常用指令

以下是一些常用于深度学习训练的 Linux 指令&#xff0c;可以帮助你高效管理和执行训练任务&#xff1a; 文件管理 查看当前目录内容&#xff1a;ls进入目录&#xff1a;cd 路径/到/目录创建新目录&#xff1a;mkdir 新目录名称删除文件或目录&#xff1a; 删除文件&#xff…...

汽车同轴供电(PoC)电感器市场报告:未来几年年复合增长率CAGR为14.3%

汽车同轴供电&#xff08;PoC&#xff09;系统旨在通过同轴电缆传输电力和数据。 该技术适用于各种汽车应用&#xff0c;如摄像头系统、传感器和其他需要通过单根电缆传输电力和数据的车载设备。 汽车 PoC 系统中的电感器有多种用途&#xff0c;包括能量存储&#xff1a;电感器…...

C++中间件DDS介绍

C DDS 库简介 DDS&#xff08;Data Distribution Service&#xff09; 是一种用于实时分布式系统通信的中间件标准&#xff0c;由 OMG&#xff08;Object Management Group&#xff09; 提出。它是一种发布/订阅&#xff08;Publish/Subscribe&#xff09;模式的数据通信框架&…...

强化学习笔记

强化学习的总体目标&#xff1a;寻找最优策略。 关键名词 智能体&#xff08;Agent&#xff09; 状态&#xff08;State&#xff09;&#xff1a;智能体相对于环境的状态 s ∈ S s∈S s∈S 状态空间&#xff08;State space&#xff09;&#xff1a;把所有状态放在一起&…...

【个人记录】openEuler安装K3S并配置为GPU节点

前言 国内网络环境特殊&#xff0c;在线安装比较麻烦&#xff0c;K3S采用离线安装方式进行部署。 安装整体思路是&#xff1a; 安装GPU驱动安装CUDA工具安装nvidia容器运行时安装K3S设置K3S使用GPU 基础环境 采用All In One方式&#xff08;其实只有一张GPU卡&#xff09;部…...

SpringAI系列 - ToolCalling篇(二) - 如何设置应用侧工具参数ToolContext(有坑)

目录 一、引言二、集成ToolContext示例步骤1: 在`@Tool`标注的工具方法中集成`ToolConext`参数步骤2:`ChatClient`运行时动态设置`ToolContext`参数三、填坑一、引言 在使用AI大模型的工具调用机制时,工具参数都是由大模型解析用户输入上下文获取的,由大模型提供参数给本地…...

Linux系统中常见的词GNU是什么意思?

GNU 是 “GNU’s Not Unix” 的递归缩写&#xff0c;它是一个自由软件项目&#xff0c;旨在创建一个完全自由的操作系统。这个名字反映了GNU项目的核心理念&#xff1a;它试图创建一个类Unix的系统&#xff0c;但不是Unix本身。 GNU 项目由 理查德斯托曼&#xff08;Richard S…...

Revit API:对元素过滤的三点思考

一、为什么要对元素进行过滤&#xff1f; 提高效率&#xff1a;Revit模型可能包含成千上万的元素&#xff0c;直接对所有元素进行操作会非常耗时。通过过滤&#xff0c;可以只选择需要处理的元素&#xff0c;从而提高代码的执行效率。 精准控制&#xff1a;通过过滤&#xff0…...

计算机毕业设计Python农产品推荐系统 农产品爬虫 农产品可视化 农产品大数据(源码+LW文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

计算机网络之TCP的可靠传输

上一篇内容可能比较多&#xff0c;显得比较杂乱&#xff0c;这一篇简单总结一下TCP是靠什么实现可靠传输的吧。 校验和 TCP是端到端的传输&#xff0c;由发送方计算校验和&#xff0c;接收方进行验证&#xff0c;目的是为了验证TCP首部和数据在发送过程中没有任何改动&#x…...

linux 驱动编程配置(minis3c2440)

1.介绍 1. 启动过程&#xff1a;启动u-boot------>>启动linux内核----->>挂载根文件系统 2. uboot是一个裸机程序&#xff0c;是一个bootloader&#xff0c;用于启动linux系统以及系统初始化 ubootloader主要完成了哪些任务&#xff1a;1. 初始化异常向量表&a…...

数据库基础1

MySQL在C语言中的操作步骤 C语言操作MySQL的基本流程如下&#xff1a; 引入MySQL头文件初始化MySQL连接连接到MySQL服务器执行SQL语句获取查询结果处理查询结果释放结果集和连接 数据库中有哪些约束规则 1.主键约束 promary key 具有唯一且非空 2.外键约束 foreign key 3.非…...

Redis文档总结

文档&#xff1a;https://redis.com.cn/topics/why-use-redis.html 1.我们为什么一定要用 Redis 呢&#xff1f; 速度快&#xff0c;完全基于内存&#xff0c;使用 C 语言实现&#xff0c;网络层使用 epoll 解决高并发问题&#xff0c;单线程模型避免了不必要的上下文切换及竞争…...

论文笔记(七十二)Reward Centering(二)

Reward Centering&#xff08;二&#xff09; 文章概括摘要2 简单的奖励中心 文章概括 引用&#xff1a; article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.0…...

25年2月通信基础知识补充:多普勒频移与多普勒扩展、3GPP TDL信道模型

看文献过程中不断发现有太多不懂的基础知识&#xff0c;故长期更新这类blog不断补充在这过程中学到的知识。由于这些内容与我的研究方向并不一定强相关&#xff0c;故记录不会很深入请见谅。 【通信基础知识补充7】25年2月通信基础知识补充1 一、多普勒频移与多普勒扩展傻傻分不…...

ASUS/华硕无畏16 X1605VA 原厂Win11 22H2系统 工厂文件 带ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;带一键恢复&#xff0c;以及机器所有的驱动和软件。 支持型号&#xff1a;X1605VA 系统版本&#xff1a;Windows 11 22H2 文件下载&#xff1a;点击下载 文件格式&#xff1a;工厂文件 安装教程&#x…...

DeepSeek赋能智慧文旅:新一代解决方案,重构文旅发展的底层逻辑

DeepSeek作为一款前沿的人工智能大模型&#xff0c;凭借其强大的多模态理解、知识推理和内容生成能力&#xff0c;正在重构文旅产业的发展逻辑&#xff0c;推动行业从传统的经验驱动向数据驱动、从人力密集型向智能协同型转变。 一、智能服务重构&#xff1a;打造全域感知的智…...

自学FOC系列分享--SVPWM和clark 逆变换及代码实战

自学FOC系列分享--SVPWM和clark 逆变换 1 说在前面2 回顾clarke 和 park的变换和逆变换2.1 概述2.2 公式说明 3 SVPWM是如何写的3.1 简单说明3.2 重要对比 4、代码实战4.1 代码构成说明4.2 全部代码4.3 测试代码4.4 测试结果4.5 结果分析 总结 1 说在前面 如前一篇文章所述的系…...

LeetCode-524. 通过删除字母匹配到字典里最长单词

1、题目描述&#xff1a; 给你一个字符串 s 和一个字符串数组 dictionary &#xff0c;找出并返回 dictionary 中最长的字符串&#xff0c;该字符串可以通过删除 s 中的某些字符得到。 如果答案不止一个&#xff0c;返回长度最长且字母序最小的字符串。如果答案不存在&#x…...

浅谈网络 | 容器网络之Cilium

目录 Cilium介绍Cilium是什么Cilium 主要功能特性为什么用Cilium&#xff1f; 功能概述组件概况BPF 与 XDPeBPF (Extended Berkeley Packet Filter)XDP (eXpress Data Path) Cilium介绍 Cilium是什么 Cilium 是一个开源网络和安全项目&#xff0c;专为 Kubernetes、Docker 和…...

armv7l

在 **ARMv7l** 中&#xff0c;最后的字符是字母 **“l”**&#xff08;小写字母 “L”&#xff09;&#xff0c;而不是数字 **“1”**。 --- ### 1. **ARMv7l 的含义** - **ARMv7**&#xff1a;指的是 **ARM 架构的第 7 代版本**&#xff0c;是一种广泛应用于嵌入式系统&…...

从零开始构建一个小型字符级语言模型的完整详细教程(基于Transformer架构)

最近特别火的DeepSeek,是一个大语言模型,那一个模型是如何构建起来的呢?DeepSeek基于Transformer架构,接下来我们也从零开始构建一个基于Transformer架构的小型语言模型,并说明构建的详细步骤及内部组件说明。我们以构建一个字符级语言模型(Char-Level LM)为例,目标是通…...

期权帮|股指期货交割日为啥会大跌?

锦鲤三三每日分享期权知识&#xff0c;帮助期权新手及时有效地掌握即市趋势与新资讯&#xff01; 股指期货交割日为啥会大跌&#xff1f; 股指期货交割日股市可能会大跌&#xff0c;主要原因有以下几点&#xff1a; 1.交割日时多空双方需要平仓或转仓&#xff0c;若多头急于平仓…...

B树和B+树

1. B树 1.1 定义 B树是一种多路平衡查找树&#xff0c;具有以下性质&#xff1a; 每个节点最多包含 m 个子节点&#xff08;m 阶 B树&#xff09;。 根节点至少有两个子节点&#xff08;除非它是叶子节点&#xff09;。 每个内部节点&#xff08;非根和非叶子节点&#xff…...

分布式事务核心理论:CAP与BASE

一、引言&#xff1a;分布式系统的挑战 在互联网应用中&#xff0c;随着业务规模的扩大&#xff0c;单机数据库已无法满足高并发和海量数据存储需求。分布式系统将数据拆分到不同节点&#xff0c;但随之带来了数据一致性的难题。CAP与BASE理论为分布式事务提供了重要的设计指导…...

【UCB CS 61B SP24】Lecture 4 - Lists 2: SLLists学习笔记

本文内容为重写上一节课中的单链表&#xff0c;将其重构成更易于用户使用的链表&#xff0c;实现多种操作链表的方法。 1. 重构单链表SLList 在上一节课中编写的 IntList 类是裸露递归的形式&#xff0c;在 Java 中一般不会这么定义&#xff0c;因为这样用户可能需要非常了解…...

记录一个ES分词器不生效的解决过程

问题背景 商城项目,其中商品查询检索使用的是ES, 但存在某些商品查询不到的问题 例如:某商品名包含AA_BBB这样的关键词,但是搜索"AA"不能查询到该商品,但是将商品名修改为AA BBB后就能查询到了. 怀疑是分词的问题,但看代码,在创建ES索引时在对应字段上也定义了分词器…...

Jeecg+vue3去掉JInput组件默认模糊查询的配置方式

遇见的问题&#xff1a;input查询带**号 情况1、使用schemas配置的表单项 添加type""属性&#xff0c;默认type为like&#xff0c;去掉模糊则配置为空 文档链接 jeecg文档说明JInput 2、直接调用组件则在属性上直接添加type""属性...

Could not initialize class io.netty.util.internal.Platfor...

异常信息&#xff1a; Exception in thread "main" java.lang.NoClassDefFoundError: Could not initialize class io.netty.util.internal.PlatformDependent0 Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.reflect.InaccessibleObjec…...

什么是业务流程分类框架

业务流程分类框架是一个用于组织和系统化地分类业务流程的结构化方法。它旨在帮助企业理解、管理、分析和改进其运营流程。 可以把它想象成一个图书馆的图书分类系统&#xff0c;帮助快速找到和理解不同类型的书籍。对于业务流程来说&#xff0c;分类框架帮助快速了解不同类型的…...

向量的点乘的几何意义

源自AI 向量的点乘&#xff08;Dot Product&#xff09;在几何和图形学中有重要的意义。它不仅是数学运算&#xff0c;还可以用来描述向量之间的关系。以下是点乘的几何意义及其应用&#xff1a; 1. 点乘的定义 对于两个向量 a 和 b&#xff0c;它们的点乘定义为&#xff1a;…...

达梦数据库应用开发_JDBC接口介绍_yxy

达梦数据库应用开发_JDBC接口介绍 1 JDBC是什么&#xff1f;2 JDBC主要类或接口介绍2.1 建立与 DM 数据库的连接2.2 转接发送 SQL 语句到数据库2.3 处理并返回语句执行结果 3 JDBC基本使用3.1 前期准备3.2 增删改查代码示例3.3 绑定变量操作示例3.4 大字段操作示例 1 JDBC是什么…...

在ubuntu上用Python的openpyxl模块操作Excel的案例

文章目录 安装模块读取Excel数据库取数匹配数据和更新Excel数据 在Ubuntu系统的环境下基本职能借助Python的openpyxl模块实现对Excel数据的操作。 安装模块 本次需要用到的模块需要提前安装(如果没有的话) pip3 install openpyxl pip3 install pymysql在操作前&#xff0c;需…...

RabbitMQ介绍以及基本使用

文章目录 一、什么是消息队列&#xff1f; 二、消息队列的作用&#xff08;优点&#xff09; 1、解耦 2、流量削峰 3、异步 4、顺序性 三、RabbitMQ基本结构 四、RabbitMQ队列模式 1、简单队列模式 2、工作队列模式 3、发布/订阅模式 4、路由模式 5、主题模式 6、…...

搭建 Hadoop 3.3.6 伪分布式

搭建 Hadoop 3.3.6 伪分布式 IP 192.168.157.132 初始化操作 更改yum源 # 1_1.安装Wget yum install wget# 1_2.备份CentOS-Base.repo文件 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak# 2.下载阿里yum源配置 wget -O /etc/yum.repos.d/Cen…...

进程控制(靠原语实现)

什么是进程控制&#xff1f; 进程控制的主要功能是&#xff1a;对系统中的所有进程实施有效管理&#xff0c;它具有创建新进程、撤销已有进程、实现进程状态转换等功能。 简化理解&#xff1a;进程控制就是要实现进程状态转换。 知识一览&#xff1a; 如何实现进程控制&#…...

linux5-多任务--进程fork()

一.多任务&#xff1a;让系统具备同时处理多个任务的能力 1.如何实现多任务 1.1进程&#xff1a;操作系统上正在运行的程序&#xff0c;需要消耗内存和CPU 1.1.1 进程的生存周期&#xff1a;创建、调度、消亡 1.1.1.1进程的创建&#xff1a;每个进程被创建时&#xff0c;操作…...

【蓝桥】二分法

1、简介 1.1 定义&#xff1a; 通过将问题的搜索范围一分为二&#xff0c;迭代地缩小搜索范围&#xff0c;直到找到目标或确定目标不存在 1.2 适用&#xff1a; 有序数据集合&#xff0c;且每次迭代可以将搜索范围缩小一半 1.3 本质&#xff1a; 枚举&#xff1a;利用数据结构…...

linux查看程序占用的本地端口

ss是Socket Statistics的缩写&#xff0c;用来替代旧的netstat工具&#xff0c;功能更强大&#xff0c;执行更快。它用于查看系统的网络连接情况&#xff0c;包括TCP、UDP等协议的信息。 一. 命令解析&#xff1a; sudo ss -tulwnpss (Socket Statistics)&#xff1a;替代 ne…...

统计函数运行时间的python脚本

这是一个统计函数运行时间的实用脚本&#xff0c;其中用到了函数的嵌套、链式传输参数&#xff0c;以及修饰器。 import time# 定义一个装饰器timer&#xff0c;用于计算被装饰函数的运行时间 def timer(func):print("执行了timer")def wrapper(*args, **kwargs):st…...

百度搜索和文心智能体接入DeepSeek满血版——AI搜索的新纪元

在当今数字化时代&#xff0c;搜索引擎作为互联网信息获取的核心工具&#xff0c;正经历着前所未有的变革。据悉&#xff0c;2025年2月16日&#xff0c;百度搜索和文心智能体平台宣布全面接入DeepSeek和文心大模型的最新深度搜索功能&#xff0c;搜索用户可免费使用DeepSeek和文…...

快速入门Springboot+vue——MybatisPlus快速上手

学习自哔哩哔哩上的“刘老师教编程”&#xff0c;具体学习的网站为&#xff1a;6.MybatisPlus快速上手_哔哩哔哩_bilibili&#xff0c;以下是看课后做的笔记&#xff0c;仅供参考。 第一节 ORM介绍 ORM对象关系映射&#xff0c;为了解决面向对象与关系数据库存在的互补匹配现象…...

在C#中动态访问对象属性时,用表达式树可以获得高效性能

在C#中如何用表达式树动态访问对象属性的问题。用户可能已经知道反射的基本用法&#xff0c;但想用表达式树来提高性能&#xff0c;因为表达式树编译后的委托执行速度比反射快。 首先&#xff0c;表达式树的基本概念。表达式树允许在运行时构建代码&#xff0c;并编译成可执行的…...

性能:React 实战优化技巧 之 函数闭包

子组件使用了 React.memo &#xff0c;为什么 “prop 值未发生改变”&#xff0c;子组件依然被重新渲染了&#xff1f; &#x1f6a7; 示例&#xff1a;点击子组件中按钮&#xff0c;获取 input 数据进行提交&#xff08;常见于表单&#xff09; index.tsx import Author f…...