Python 实现的运筹优化系统代码详解(整数规划问题)
一、引言
在数学建模的广袤领域里,整数规划问题占据着极为重要的地位。它广泛应用于工业生产、资源分配、项目管理等诸多实际场景,旨在寻求在一系列约束条件下,使目标函数达到最优(最大或最小)且决策变量取整数值的解决方案。随着数字化时代的发展,借助计算机编程来高效求解整数规划问题变得愈发关键。Python 凭借其简洁易用的特性以及丰富的库资源,成为解决这类问题的有力工具。本文将深入剖析整数规划问题的内涵,详细解读使用pulp
库求解整数规划问题的 Python 代码架构与使用方法,并通过具体实例展示其实际应用,助力读者在数学建模及相关领域的探索。
二、整数规划问题全面剖析
(一)整数规划的定义与本质
整数规划是线性规划的一个特殊分支,它在普通线性规划的基础上增添了决策变量必须为整数的严格限制。其一般数学模型可表述为: \(\begin{align*} \max(\text{或}\min)\ & z = \sum_{i = 1}^{n}c_ix_i \\ \text{s.t.}\ & \sum_{i = 1}^{n}a_{ji}x_i \leq (\text{或}=,\geq)b_j, \ j = 1,2,\cdots,m \\ & x_i \in \mathbb{Z}, \ x_i \geq 0, \ i = 1,2,\cdots,n \end{align*}\) 其中,\(x_i\)是决策变量,代表实际问题中需要确定的未知量;\(c_i\)为目标函数系数,决定了每个决策变量对目标函数的贡献程度;\(a_{ji}\)是约束条件系数,描述了决策变量在各个约束条件中的权重;\(b_j\)是约束条件右侧常数,限定了约束条件的边界。与普通线性规划不同,整数规划的解空间不再是连续的,而是离散的整数点集,这使得求解过程面临更大的挑战。
(二)整数规划与线性规划的区别
线性规划的决策变量可以取任意实数,其可行域通常是一个连续的凸集,在这个可行域内寻找目标函数的最优解相对较为直观,可通过单纯形法等经典算法高效求解。然而,整数规划由于决策变量的整数限制,可行解仅存在于可行域内的整数格点上,这就导致常规线性规划求解方法不再适用,需要专门的算法如分支定界法、割平面法等来应对。这种离散性使得整数规划问题的求解难度大幅增加,解空间的搜索范围也更为复杂。
(三)整数规划的分类
- 纯整数规划:所有决策变量都必须取整数值的整数规划问题。例如,在安排生产任务时,生产设备的台数、参与项目的人员数量等,这些数量只能是整数,不存在小数或分数的情况。
- 混合整数规划:部分决策变量要求取整数值,而另一部分决策变量可以取实数的整数规划问题。比如在投资决策中,投资的项目数量必须是整数,而对每个项目的投资金额则可以是任意实数。
- 0 - 1 整数规划:这是一种特殊的纯整数规划,决策变量只能取 0 或 1 两个值。常用于表示决策的选择与否,如是否启动某个项目、是否选择某条运输路线等场景。
(四)整数规划的应用场景
- 生产制造:在生产计划制定中,企业需要决定生产不同产品的数量。由于生产设备的启动次数、原材料的采购批量等通常为整数,且要满足市场需求、设备产能、原材料供应等约束条件,通过整数规划可以优化生产安排,实现生产成本最小化或生产利润最大化。例如,一家汽车制造企业要确定不同车型的月产量,同时考虑到生产线的切换次数、零部件库存等限制,运用整数规划能得到最优生产方案。
- 资源分配:在项目管理中,需要将有限的资源(如人力、资金、时间等)分配到多个任务中。每个任务对资源的需求和产生的效益不同,且资源的分配单位往往是整数。利用整数规划,在资源总量和任务优先级等约束下,能找到使项目整体效益最优的资源分配方案。比如,一个软件开发项目,要将一定数量的程序员分配到不同的功能模块开发任务中,同时满足项目工期和预算限制,整数规划可助力实现资源的高效配置。
- 物流配送:物流企业在安排配送车辆时,要考虑车辆的数量、行驶路线以及配送点的需求。车辆数量必须是整数,且需满足货物总量、车辆载重限制、配送时间等约束条件。通过整数规划求解,可以优化物流配送方案,降低运输成本,提高配送效率。例如,某电商物流中心需要确定每天配送货物所需的货车数量和配送路线,以在满足订单交付时间的前提下,最小化运输成本,整数规划为此提供了有效的解决方案。
三、代码架构与使用方法详解
(一)代码整体架构
本文提供的 Python 代码旨在通过用户交互的方式,构建并求解一个整数规划问题。代码主要分为以下几个部分:
- 输入获取部分:通过
input
函数收集用户输入的决策变量数量、目标函数系数、约束条件数量以及每个约束条件的系数、右侧常数和约束类型。这些输入信息是构建整数规划模型的基础。 - 模型构建部分:使用
pulp
库创建一个最大化的整数规划问题实例,定义决策变量(均为非负整数类型),构建目标函数,并根据用户输入的约束条件信息添加相应的约束到模型中。 - 模型求解与结果输出部分:调用
pulp
库的求解方法对构建好的整数规划模型进行求解,然后输出目标函数的最大值、每个决策变量的值以及问题的求解状态。
(二)代码详细解读
- 函数定义与整体流程
def solve_integer_programming():"""此函数用于求解一个整数规划问题。目标是在给定约束条件下最大化目标函数。"""# 获取用户输入的变量数量num_vars = int(input("请输入决策变量的数量: "))# 获取用户输入的目标函数系数objective_coeffs = []for i in range(num_vars):coeff = float(input(f"请输入目标函数中第 {i + 1} 个变量的系数: "))objective_coeffs.append(coeff)# 获取用户输入的约束条件数量num_constraints = int(input("请输入约束条件的数量: "))constraint_coeffs_list = []constraint_rhs_list = []constraint_types = []# 获取每个约束条件的系数、右侧常数和约束类型for j in range(num_constraints):print(f"正在输入第 {j + 1} 个约束条件的信息:")constraint_coeffs = []for i in range(num_vars):coeff = float(input(f"请输入第 {j + 1} 个约束条件中第 {i + 1} 个变量的系数: "))constraint_coeffs.append(coeff)constraint_rhs = float(input(f"请输入第 {j + 1} 个约束条件的右侧常数: "))constraint_type = input(f"请输入第 {j + 1} 个约束条件的类型(输入 '<=' 或 '='): ")constraint_coeffs_list.append(constraint_coeffs)constraint_rhs_list.append(constraint_rhs)constraint_types.append(constraint_type)
这部分代码定义了solve_integer_programming
函数,函数首先通过input
函数引导用户输入整数规划问题的基本信息。用户依次输入决策变量数量、目标函数中每个变量的系数、约束条件数量,以及每个约束条件的详细信息(包括每个变量的系数、右侧常数和约束类型)。这些输入信息被存储在相应的列表中,为后续构建整数规划模型做准备。
- 创建规划问题与定义变量
# 创建一个最大化问题problem = LpProblem("Integer_Programming_Example", LpMaximize)# 定义决策变量variables = [LpVariable(f"var_x{i + 1}", lowBound=0, cat='Integer') for i in range(num_vars)]
使用pulp
库的LpProblem
函数创建一个名为Integer_Programming_Example
的最大化整数规划问题实例problem
。接着,利用列表推导式创建了num_vars
个决策变量,每个决策变量命名为var_x{i + 1}
,其下限为 0 且类型为整数(cat='Integer'
),符合整数规划中对决策变量的要求。
- 构建目标函数与添加约束条件
# 构建目标函数problem += lpSum([coeff * var for coeff, var in zip(objective_coeffs, variables)])# 添加约束条件for constraint_coeffs, constraint_rhs, constraint_type in zip(constraint_coeffs_list, constraint_rhs_list,constraint_types):if constraint_type == '<=':problem += lpSum([coeff * var for coeff, var in zip(constraint_coeffs, variables)]) <= constraint_rhselif constraint_type == '=':problem += lpSum([coeff * var for coeff, var in zip(constraint_coeffs, variables)]) == constraint_rhselse:print(f"不支持的约束类型 '{constraint_type}',忽略该约束。")
利用pulp
库的lpSum
函数构建目标函数。通过zip
函数将目标函数系数列表objective_coeffs
与决策变量列表variables
对应元素相乘并求和,构建出目标函数表达式,并添加到problem
中。在添加约束条件部分,通过循环遍历每个约束条件的信息列表。对于每个约束条件,根据其类型(<='
或'='
),使用lpSum
函数构建相应的约束表达式,并添加到problem
中。若用户输入的约束类型不被支持(非<='
或'='
),则输出提示信息并忽略该约束。
- 求解与输出结果
# 求解问题problem.solve()# 输出结果print("目标函数的最大值为:", value(problem.objective))for i, var in enumerate(variables):print(f"var_x{i + 1}的值为:", value(var))print("问题状态为:", LpStatus[problem.status])return value(problem.objective), [value(var) for var in variables]
调用problem.solve()
方法求解构建好的整数规划问题。求解完成后,使用pulp
库的value
函数获取目标函数的最大值并输出。通过enumerate
函数遍历决策变量列表,输出每个决策变量的值。最后,输出问题的求解状态(如最优解、不可行解等),并返回目标函数的最大值和决策变量的值,以便在需要时进行后续处理。
(三)代码使用方法
- 运行环境准备:确保 Python 环境中已安装
pulp
库。若未安装,可通过pip install pulp
命令进行安装。 - 代码运行:将上述代码保存为
.py
文件,在命令行中运行该文件。程序启动后,根据提示依次输入决策变量数量、目标函数系数、约束条件数量以及每个约束条件的相关信息。输入完成后,程序将自动构建整数规划模型并求解,最后输出目标函数的最大值、每个决策变量的值以及问题的求解状态。
四、实例演示
(一)问题描述
假设有一家工厂生产两种产品 A 和 B。生产一件产品 A 需要消耗 3 单位原材料和 2 小时人工时间,可获得利润 50 元;生产一件产品 B 需要消耗 4 单位原材料和 3 小时人工时间,可获得利润 70 元。工厂每天可提供的原材料为 20 单位,人工时间为 15 小时。由于生产设备的限制,产品 A 和 B 的生产数量必须为整数。问如何安排生产,可使工厂获得最大利润?
(二)模型建立
设生产产品 A 的数量为\(x_1\),生产产品 B 的数量为\(x_2\)。
- 目标函数:最大化利润\(z = 50x_1 + 70x_2\)。
- 约束条件:
- 原材料约束:\(3x_1 + 4x_2 \leq 20\)。
- 人工时间约束:\(2x_1 + 3x_2 \leq 15\)。
- 非负整数约束:\(x_1 \geq 0\),\(x_1 \in \mathbb{Z}\);\(x_2 \geq 0\),\(x_2 \in \mathbb{Z}\)。
(三)代码求解过程
- 运行代码,输入决策变量数量为 2。
- 依次输入目标函数系数:50(对应\(x_1\)的系数)和 70(对应\(x_2\)的系数)。
- 输入约束条件数量为 2。
- 对于第一个约束条件,输入变量系数 3(对应\(x_1\)的系数)和 4(对应\(x_2\)的系数),右侧常数 20,约束类型
<='
。 - 对于第二个约束条件,输入变量系数 2(对应\(x_1\)的系数)和 3(对应\(x_2\)的系数),右侧常数 15,约束类型
<='
。
(四)结果分析
程序运行后,输出目标函数的最大值以及\(x_1\)和\(x_2\)的值。假设输出结果为目标函数最大值为 290,\(x_1 = 2\),\(x_2 = 3\)。这表明当工厂生产 2 件产品 A 和 3 件产品 B 时,可获得最大利润 290 元,同时满足原材料和人工时间的约束条件,且生产数量为整数,符合实际生产场景的要求。
五、总结
整数规划问题在众多实际领域中具有广泛且重要的应用,Python 的pulp
库为求解这类问题提供了便捷高效的工具。通过本文对整数规划问题的深入剖析、代码架构与使用方法的详细解读,以及实例演示,读者能够全面了解整数规划问题的本质、求解思路以及在 Python 中的实现方式。在实际应用中,可根据具体问题的特点,灵活运用整数规划方法,借助代码工具快速找到最优解决方案,为生产决策、资源分配等提供有力支持。希望本文能帮助读者在数学建模及相关领域的实践中,更好地运用整数规划技术解决实际问题,提升问题解决能力和决策效率。
相关文章:
Python 实现的运筹优化系统代码详解(整数规划问题)
一、引言 在数学建模的广袤领域里,整数规划问题占据着极为重要的地位。它广泛应用于工业生产、资源分配、项目管理等诸多实际场景,旨在寻求在一系列约束条件下,使目标函数达到最优(最大或最小)且决策变量取整数值的解决…...
conda安装python 遇到 pip is configured with locations that require TLS/SSL问题本质解决方案
以前写了一篇文章,不过不是专门为了解决这个问题的,但是不能访问pip install 不能安装来自https 协议的包问题几乎每次都出现,之前解决方案只是治标不治本 https://blog.csdn.net/wangsenling/article/details/130194456https…...
嘿嘿,好久不见
2025年4月2日,6~22℃,一般 遇见的事:参加了曲靖的事业单位D类考试。 感受到的情绪:考场一半的人都没有到位,这路上你到了可能都会受到眷顾。 反思:这路上很难,总有人会提前放弃,不…...
virsh 的工作原理
virsh是用于管理虚拟化环境中的客户机和Hypervisor的命令行工具。它基于libvirt管理API构建,与virt-manager等工具类似,都是通过调用libvirt API来实现虚拟化的管理。virsh是完全在命令行文本模式下运行的用户态工具,因此它是系统管理员通过脚…...
Qt实现HTTP GET/POST/PUT/DELETE请求
引言 在现代应用程序开发中,HTTP请求是与服务器交互的核心方式。Qt作为跨平台的C框架,提供了强大的网络模块(QNetworkAccessManager),支持GET、POST、PUT、DELETE等HTTP方法。本文将手把手教你如何用Qt实现这些请求&a…...
(041)05-01-自考数据结构(20331)树与二叉树大题总结
实际考试中,计算题约占40%,推理题约占30%,算法设计题约占30%。建议重点练习遍历序列相关的递归分治解法, 知识拓扑 知识点介绍 一、计算题类型与解法 1. 结点数量计算 题型示例: 已知一棵完全二叉树的第6层有8个叶子结点,求该二叉树最多有多少个结点? 解法步骤: 完…...
WPS JS宏编程教程(从基础到进阶)-- 第三部分:JS宏编程语言开发基础
第三部分:JS宏编程语言开发基础 @[TOC](第三部分:JS宏编程语言开发基础)**第三部分:JS宏编程语言开发基础**1. 变量与数据类型**变量声明:三种方式****示例代码****数据类型判断****实战:动态处理单元格类型**2. 运算符全解析**算术运算符****易错点:字符串拼接 vs 数值相…...
迈向云原生:理想汽车 OLAP 引擎变革之路
在如今数据驱动的时代,高效的分析引擎对企业至关重要。理想汽车作为智能电动汽车的领军企业,面临着海量数据分析的挑战。本文将展开介绍理想汽车 OLAP 引擎从存算一体向云原生架构演进的变革历程,以及在此过程中面临的挑战,以及是…...
Spark,HDFS客户端操作
hadoop客户端环境准备 找到资料包路径下的Windows依赖文件夹,拷贝hadoop-3.1.0到非中文路径(比如d:\hadoop-3.1.0) ① 打开环境变量 ② 在下方系统变量中新建HADOOP_HOME环境变量,值就是保存hadoop的目录。 效果如下: ③ 配置Path…...
QuecPython 的 VScode 环境搭建和使用教程
为方便开发者使用 VSCode 开发 QuecPython,QuecPython 团队特推出了名为 QuecPython 的 VSCode 插件。 插件目前支持的功能有: 固件烧录REPL 命令交互代码补全文件传输文件系统目录树运行指定脚本文件 目前支持所有QUecPython系列模组。 插件安装 点…...
Linux Vim 编辑器的使用
Vim 编辑器的使用 一、安装及介绍二、基础操作三、高级功能四、配置与插件 一、安装及介绍 Vim是一款强大且高度可定制的文本编辑器,相当于 Windows 中的记事本。具备命令、插入、底行等多种模式。它可通过简单的键盘命令实现高效的文本编辑、查找替换、分屏操作等…...
Java 基础-28- 多态 — 多态下的类型转换问题
在 Java 中,多态(Polymorphism)是面向对象编程的核心概念之一。多态允许不同类型的对象通过相同的方法接口进行操作,而实际调用的行为取决于对象的实际类型。虽然多态提供了极大的灵活性,但在多态的使用过程中…...
机器学习中的自监督学习概述与实现过程
概述 机器学习中有四种主要学习方式: 监督式学习 (Supervised Learning):这种学习方式通过使用带有标签的数据集进行训练,目的是使机器能够学习到数据之间的关联性,并能够对新的、未见过的数据做出预测或分类。应用领域包括语音识…...
AI Agent开发大全第十四课-零售智能导购智能体的RAG开发理论部分
开篇 经过前面的一些课程,我们手上已经积累了各种LLM的API调用、向量库的建立和使用、embedding算法的意义和基本使用。 这已经为我们具备了开发一个基本的问答类RAG的开发必需要素了。下面我们会来讲一个基本问答类场景的RAG,零售中的“智能导购”场景。 智能导购 大家先…...
Git相关笔记1 - 本地文件上传远程仓库
Git相关笔记 目录 Git相关笔记Git上传相关文件第一步创建一个仓库:第二步本地创建空文件夹:第三步开始在gitbush上传文件:解决外网网络连接的问题:中文文件的编码问题:参考资料 Git上传相关文件 第一步创建一个仓库&a…...
机器学习算法
目录 行向量与列向量 信息论 Logistic回归 支持向量机SVM 核函数: 决策树 Decision Tree CART决策树 ID3 决策树 C4.5 决策树 决策树的过拟合问题 回归树 ***仅做复习需要,若侵权请及时联系我 行向量与列向量 行向量:是一个横…...
学习记录706@微信小程序+springboot项目 真机测试 WebSocket错误: {errMsg: Invalid HTTP status.}连接不上
我微信小程序springboot项目 真机测试 websocket 总是报错 WebSocket错误: {errMsg: Invalid HTTP status.},总是连接不上,但是开发者工具测试就没有问题。 最后解决方案是编码token,之前是没有编码直接拼接的,原因不详。 consol…...
SSH服务
一、准备 #请说明以下服务对应的端口号或者端口对应的服务 ssh 22 telnet 23 http 80 https 443 ftp 20 21 RDP 3389 mysql 3306 redis 6379 zabbix 10050 10051 elasticsear…...
GitHub上免费学习工具的精选汇总
以下是GitHub上免费学习工具的精选汇总,涵盖编程语言、开发框架、数据科学、面试准备等多个方向,结合工具的功能特点、社区活跃度及适用场景进行分类推荐: 一、编程语言与开发框架 Web Developer Roadmap 简介:为开发者提供全栈学…...
2025.4.1总结
今天看了一部网上很火的记录片《God,my brother》,中文名为《上帝不如我兄弟》,简述的是一个自媒体博主杜克遇到孟加拉一哥(车夫),最终一哥在杜克的帮助下,成功实现阶级跨越,而杜克也因此成为百…...
MySQL日志管理
目录 查询日志 慢查询日志 错误日志 二进制日志 其他功能 查询日志 查询日志用来记录所有查询语句的信息,由于开启此日志会占用大量内存,所以一般不会开启 查看查询日志是否开启 开启查询日志 慢查询日志 用于性能的调优,查看执行速度超…...
vscode中的【粘滞滚动】的基本概念和作用,关闭了以后如何开启
1、粘滞滚动的基本概念和作用 VSCode中的“粘滞”功能主要是指编辑器在滚动时的一种特殊效果,使得编辑器在滚动到某个位置时会“粘”在那里,而不是平滑滚动到底部或顶部。 粘滞滚动的基本概念和作用 粘滞滚动功能可以让用户在滚动时更直观地看到当前…...
我用Axure画了一个富文本编辑器,还带交互
最近尝试用Axure RP复刻了一个富文本编辑器,不仅完整还原了工具栏的各类功能,还通过交互设计实现了接近真实编辑器操作体验。整个设计过程聚焦功能还原与交互流畅性,最终成果令人惊喜。 编辑器采用经典的三区布局:顶部工具栏集成了…...
Mysql之Redo log(Red log of MySQL)
Mysql之Redo log 数据库事务的4个特性之一的持久性是数据库保证数据一致性的关键,mysql为了确保事务在系统崩溃后也能恢复,引入了redo log 重做日志这一机制。 什么是redo log 持久性指的是一旦事务提交数据就要永久的保存到数据库中,不能…...
Spring Cloud ReactorServiceInstanceLoadBalancer 自定义负载均衡
自定义负载均衡类 import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.ObjectProvider; import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client…...
汽车诊断开发入门以及OBD检测
一、OBD 概述 定义:OBD 即 On - Board Diagnostics,车载自动诊断系统。它能实时监测车辆各项系统和部件状态,以此帮助诊断故障并预警。设计初衷与发展:最初设计目的是控制汽车尾气排放,确保符合环境标准。随着技术进步…...
高速PCB设计过孔不添乱,乐趣少一半
高速先生成员--姜杰 高速先生最近写了不少介绍高速信号仿真的文章(文章链接汇总,看这篇就够了《聊聊100G信号的仿真》)。雷豹逐一研读后感觉获益匪浅,甚至一度觉得自己强的可怕,不过,在得知即将负责一个11…...
人工智能在医疗领域的前沿应用与挑战
在当今数字化时代,人工智能(AI)技术正以前所未有的速度改变着我们的生活,其中医疗领域无疑是受益最为显著的行业之一。从疾病诊断、治疗方案制定到患者护理,AI的应用不仅提高了医疗服务的效率和质量,还为医…...
怎么实现实时无延迟的体育电竞动画直播
要实现真正的实时无延迟动画直播,需要考虑以下几个关键方面: 一、技术方案选择 1.WebRTC技术 点对点(P2P)传输协议,延迟可低至100-500ms 适用于互动性强的应用场景 开源且被主流浏览器支持 2.低延迟HLS/CMAF 可将延迟控制在1-3秒 兼容…...
VLAN、QinQ、VXLAN的区别
1、技术本质与封装方式 技术OSI层级封装原理标识位长度拓展性VLAN数据链路层L2在以太网帧头插入802.1Q Tag(单层VLAN标签)12位(4094个)有限,仅支持单一网络域内隔离QinQ数据链路层L2在原始VLAN标签外再封装一层802.1Q…...
使用大语言模型进行Python图表可视化
Python使用matplotlib进行可视化一直有2个问题,一是代码繁琐,二是默认模板比较丑。因此发展出seaborn等在matplotlib上二次开发,以更少的代码进行画图的和美化的库,但是这也带来了定制化不足的问题。在大模型时代,这个…...
Mac电脑(M芯片)安装ubuntu22.04
一、下载VMware虚拟机 VMware官网下载VMware Fusion 二、下载ubuntu镜像 M系列的Mac电脑要下载arm架构的镜像 方法一:官网下载 方法二:清华源下载 清华源镜像 点击获取下载链接 选择Ubuntu,下载22.04.5(arm64,Server) 三、创建虚拟机 …...
【linux】管理磁盘——RAID10(含备份)与逻辑卷管理
RAID概念 当今CPU性能每年可提升30%-50%但硬盘仅提升7%硬盘在服务器中需要持续、频繁、大量的I/O操作,故障机率较大,则需要对硬盘进行技术改造,提 升读写性能、可靠性1988年,加利福尼亚大学伯克利分校首次提出并定义了RAID技术概…...
Day3 蓝桥杯省赛冲刺精炼刷题 —— 排序算法与贪心思维
一、0实现插入排序 - 蓝桥云课 算法代码: #include <stdio.h>const int N 10000; // 定义数组的最大大小int arr[N 10], temp[N 10]; // arr为待排序的数组,temp为辅助数组// 合并操作:将两个已经排好序的子数组合并为一个有序数…...
查看iphone手机的使用记录-克魔实战
如何查看 iOS 设备近期的详细使用数据 在日常使用手机时,了解设备的运行状态和各项硬件的使用情况可以帮助分析耗电情况、优化应用使用方式。iOS 设备提供了一些数据记录,能够显示应用的启动和关闭时间、后台运行情况,以及应用在使用过程中调…...
Tcp——客户端服务器
Tcp——客户端服务器 目录 一、基本概念 二、代码 2.1 ser服务器 2.2 cil客户端 一、基本概念 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在TCP/IP模型中,TCP位于IP层之上,应用层之下&#x…...
《HarmonyOS Next开发进阶:打造功能完备的Todo应用华章》
章节 6:日期选择器与日期处理 目标 学习如何使用DatePicker组件。理解日期格式化和日期计算。 内容 日期选择器基础 使用DatePicker组件。处理日期选择事件。 日期格式化 格式化日期为友好的文本。 日期计算 判断日期是否过期或即将到期。 代码示例 Entry Com…...
化学方程式配平 第33次CCF-CSP计算机软件能力认证
很经典的大模拟题目 但是还不算难 大模拟题最需要注意的就是细节 写代码一定要考虑全面 并且要细心多debug 多打断点STL库的熟练使用 istringstream真的处理字符串非常好用 注意解耦合思想 这样改代码debug更加清晰 https://www.acwing.com/problem/content/5724/ #includ…...
数据结构【链表】
链表 1.单链表1.1概念与结构1.1.1结点1.1.2链表的性质1.1.3链表的打印 1.2实现单链表1.3链表的分类 2.双向链表2.1概念与结构2.2实现双链表 3.顺序表与链表的分析 1.单链表 1.1概念与结构 概念:链表是⼀种物理存储结构上非连续、非顺序的存储结构,数据…...
AIP-210 Unicode
编号210原文链接AIP-210: Unicode状态批准创建日期2018-06-28更新日期2018-06-28 API在处理(解释、限制长度、计费)字符串值和字符串编码时,应当保持一致,范围从理解上的歧义(如域“限制为1024个字符”)到…...
WiFi(无线局域网)技术的多种工作模式
WiFi(无线局域网)技术支持多种工作模式,以满足不同的网络需求和应用场景。以下是主要的WiFi工作模式及其详细说明: 1. 基础设施模式(Infrastructure Mode) [无线接入点 (AP)]/ | \ [客户端…...
游戏引擎学习第198天
回顾并为今天的内容设定 今天我们有一些代码需要处理。昨天我们进行了一些调试界面的整合工作,之前我们做了一些临时的、粗糙的操作,将一些东西读进来并放到调试界面中。今天,我们并不打算进行大规模的工作,更多的是对之前的代码…...
git命令简陋版本
git push git pull 临时仓库暂存区 ##############创建提交################ git init #创建git地址 git config --global user.name "***YQ1007" git config --global user.email "***gmail.com" git remote…...
MySQL 进阶 面经级
会用数据库,找大厂工作是远远不够的。 本人2025美团暑期AI面试好几个MySQL场景问题不会答,已脏面评。遂在此整理学习! 文章目录 美团AI面1.数据库分片sharding的概念,它有什么优势和挑战?优势Sharding 挑战 2. 分库分表的常见策…...
JavaScript数组Array的使用:添加、删除、排序、遍历、互转
1、数组的概述 数组是存储于一个连续空间且具有相同数据类型的元素集合。可以把数组看作一张单行表格,该表格的每一个单元格都可以存储一个数据,而且各单元格中存储的数据类型可以不同。这些单元格被称为数组元素,每个数组元素都有一个索引号,通过索引号可以方便地引用数组…...
Vue Transition组件类名+TailwindCSS
#本文教学结合TailwindCSS实现一个Transition动画的例子# 举例代码: <transition enter-active-class"transition-all duration-300 ease-out"enter-from-class"opacity-0 translate-y-[-10px]"enter-to-class"opacity-100 translate-…...
蓝桥杯备赛:动态规划入门
写题的时候我发现:除了输入输出、循环、条件等基本语句一类的题目之外,我就什么都不会了,题目根本写不下去。 需要学:动态规划、哈希表、二分法、贪心算法等基本算法 现在什么都不会,对这些东西也是一点都不会懂&…...
【VSCode SSH 连接远程服务器】:身份验证时,出现 key: invalid format 的问题
从其它电脑上把私钥文件复制后,出现格式错误 很有可能是复制的时候引入了乱码 很有可能是复制的时候引入了乱码 因此直接从其它电脑上把私钥文件复制到新设备上即可!(不直接复制私钥的内容) 亲测有效。...
git和VScode
游戏存档保存的是游戏的进度 git保存的是代码的进度 Vscode和git 要正常的使用git首先要设置姓名和邮箱 要配合gitee(也可以是其他平台,以gitee举例)使用,首先创造一个gitee账号,复制邮箱和用户名 在VScode中找到…...
c语言数据结构——八大排序算法实现
文章目录 八大排序算法排序算法种类选择排序类堆排序算法思路时间复杂度和空间复杂度 选择排序算法思路算法优化时间复杂度和空间复杂度 插入排序类插入排序算法思路时间复杂度和空间复杂度 希尔排序算法思路时间复杂度和空间复杂度 非比较排序类计数排序时间复杂度和空间复杂度…...