- 博客(148)
- 收藏
- 关注
原创 使用命令模式实现《植物大战僵尸》兵营生产系统
本文以《植物大战僵尸》兵营生产系统为例,演示了命令模式的应用实现。系统将玩家点击操作封装为ProduceCommand命令对象,由CampInvokers调用者管理命令队列并按冷却时间执行。具体命令类通过实例化Peashooter接收者完成生产,实现了发送者、调用者和接收者的解耦。测试表明系统能正确处理不同冷却时间下的生产请求,体现了命令模式在支持队列、延迟执行和扩展性方面的优势。该设计不仅适用于游戏开发,也可广泛应用于需要请求封装和调度的场景。
2025-12-29 18:51:54
847
原创 抽象工厂模式在智慧蔬菜大棚物联网系统中的应用
摘要:本文探讨了抽象工厂模式在智慧蔬菜大棚物联网系统中的应用。该系统需要管理多种传感器(空气、光照、土壤)和不同通信协议(Zigbee、蓝牙Mesh)。通过抽象工厂模式,系统将传感器产品分为不同产品族,使用IOTFactory接口统一创建流程。具体实现包含抽象工厂接口、两种具体工厂类(MeshFactory和ZigbeeFactory)及对应的传感器产品类。客户端通过配置文件动态选择产品族,实现系统扩展性和解耦性,展示了设计模式在农业物联网中的实用价值。
2025-11-15 13:17:36
844
原创 工厂方法模式
本文通过电视机生产系统案例,详细讲解了工厂方法模式的设计与实现。该模式通过抽象工厂接口和具体产品类,将对象创建延迟到子类,实现了开闭原则。文章包含完整Java代码实现,展示了如何通过配置文件动态切换产品类型,并分析了模式的优缺点。工厂方法模式适用于需要灵活扩展产品类型的场景,能有效分离对象创建与使用逻辑,但会增加系统复杂度。建议在需要支持多产品变体且希望避免修改现有代码时使用此模式。
2025-10-18 14:06:04
681
原创 简单工厂模式实现电视机生产
摘要: 本任务要求使用简单工厂模式实现电视机品牌生产功能。根据传入参数("Haier"或"Hisense"),工厂类TVFactory返回对应品牌的电视机对象(HaierTV或HisenseTV)。程序通过XML配置文件获取品牌参数,客户端调用工厂方法即可获得指定品牌的电视机实例。需要补全TVFactory类中根据品牌参数返回对应电视机对象的代码。该模式虽简化客户端调用,但存在工厂类职责过重、扩展困难等缺点。
2025-09-25 20:59:24
344
原创 BW16一键烧录工具
本文介绍了专为Ai-Thinker BW16模块设计的自动化烧录工具《豪一键烧录bw16》。该工具集成了CH340驱动安装、COM端口自动检测、实时进度显示等功能,支持擦除与烧录一体化操作。文章详细说明了使用准备工作、烧录流程、接线说明和常见问题解决方法,并提供了固件信息和免责声明。该工具简化了BW16设备的固件烧录流程,适合初学者和批量烧录场景。
2025-08-28 15:08:10
1462
原创 课堂记忆项目开发日志
本文记录了"课堂记忆"项目开发的技术实现与改进过程。项目采用HTML5、CSS3和JavaScript技术栈,结合Chart.js图表库,实现了教师信息展示、教学成果可视化等核心功能。开发中解决了模态框关闭、图表渲染、移动端适配等关键问题,并通过模块化开发和逐步调试优化了性能。创新点包括渐变背景、毛玻璃效果等视觉设计,以及延迟动画、悬停交互等用户体验优化。最终构建出功能完善、响应式布局的教学展示页面。
2025-08-18 17:47:17
850
原创 2023年数学建模国赛C题第一问解答
数学建模国赛C题第一问摘要 本文针对2023年全国大学生数学建模竞赛C题第一问进行了详细解答,主要研究内容包括蔬菜销售的品类分析、单品分析和时间序列预测。通过数据预处理(包括异常值处理和标准化)后,采用K-S检验分析不同品类销量分布的差异性,计算相关系数矩阵研究品类间相关性。对于主要单品,筛选销量占比超过1%的产品进行相关性分析和层次聚类。最后建立SARIMAX时间序列模型对特定品类进行销量预测。研究结果显示不同蔬菜品类存在显著分布差异,部分单品间具有较强相关性,聚类分析识别出明显的销售模式分组。该研究为蔬
2025-07-30 18:09:07
1475
原创 目标追踪问题(微分方程)
本文探讨了两类目标追踪问题的数学建模与求解。问题1中,导弹从原点追踪沿y轴匀速运动的目标,通过建立微分方程并使用分离变量法求解,得到了导弹轨迹的解析表达式,并通过数值计算验证了结果。问题2研究了导弹追踪按椭圆路径运动目标的情形,利用数值方法求解微分方程组,模拟了导弹轨迹与目标运动的动态过程。两例均展示了如何将实际追踪问题转化为数学模型,并通过解析或数值方法求解,体现了数学建模在工程问题中的应用价值。
2025-07-23 13:28:51
930
原创 招聘公务员问题
摘要: 本文研究了公务员招聘的优化分配问题,建立了基于模糊综合评价和0-1整数规划的数学模型。首先,通过柯西分布隶属函数量化复试成绩(知识面、理解能力等)和用人部门满意度,结合初试成绩计算综合得分。其次,构建决策变量矩阵,以最大化总贡献值为目标,考虑每人最多录用一次、各部门录用1-2人及总录用8人的约束条件。采用Python的OR-Tools工具求解,输出最优分配方案,包括应聘者与部门的匹配结果及其综合得分、满意度等指标。模型兼顾公平性与部门需求,为人才选拔提供量化决策支持。 关键词: 模糊综合评价、整数规
2025-07-21 17:45:00
1691
原创 最短路径问题
本文总结了最短路径问题的两种经典算法及其应用,重点分析了钢管订购与运输问题的建模与求解过程。迪杰斯特拉算法适用于固定起点、非负权值的最短路径问题,通过逐步扩展最短路径集求解;弗洛伊德算法则能处理任意两点间最短路径,但时间复杂度较高。针对钢管运输问题,建立了综合考虑铁路/公路运输费用的0-1规划模型,通过Dijkstra算法预处理最小费用矩阵,并利用线性规划求解最优订购运输方案。文中还给出了Python实现代码框架,涉及图论算法和数学规划工具的应用。该研究为复杂运输网络中的路径优化提供了实用解决方案。
2025-07-21 11:22:07
877
原创 一般的非线性规划求解(非凸函数)
本文介绍了几个非线性规划问题的求解方法。例5.5展示了非凸二次规划的求解,使用scipy.optimize.minimize得到最优解(0,0)。例5.6演示了带等式和不等式约束的非线性规划求解,得到最优值10.6511。例5.7利用cvxpy库求解凸规划问题,获得最优值1.25。例5.8解决了一个选址问题,通过非线性规划确定最优料场位置和运输方案,最终吨公里数为71.9352。这些案例展示了Python在求解不同类型非线性规划问题中的应用,包括非凸函数、等式/不等式约束以及选址优化问题。
2025-07-14 18:50:01
1110
原创 非线性规划问题
摘要:本文介绍了凸规划的定义及其性质,并给出了非线性规划问题的求解示例。定义5.4指出,当目标函数为凸函数、约束条件为凸函数或线性函数时,该非线性规划问题为凸规划,其局部最优解即为全局最优解。通过例5.1和例5.3展示了如何利用Hesse矩阵判断凸性,并使用Python的CVXPY库求解凸规划和二次规划问题。此外,例5.4以投资组合问题为例,探讨了在风险(方差)最小化和收益最大化两种目标下,如何利用协方差矩阵优化投资比例。这些示例说明了凸规划在理论和实践中的重要性。
2025-07-14 18:01:33
418
原创 求解线性规划模型最优解
本文介绍了使用Python的cvxpy库求解线性规划问题的方法。通过一个具体案例,展示了如何建立线性规划模型(包含目标函数和约束条件),并利用cvxpy库实现求解过程。案例中求解了max z=70x₁+50x₂+60x₃的优化问题,在使用GLPK求解器后得到最优解x₁=15.9091,x₂=29.5455,x₃=0,最优值为2590.9091。文章还对比了cvxpy与MATLAB的cvx工具库,并提供了相关学习资源链接。该案例代码简洁明了,展示了Python在数学规划中的实际应用价值。
2025-07-13 17:42:15
441
原创 数学建模的一般步骤
数学建模是将现实问题转化为数学语言,并通过分析与求解来指导实际应用的重要工具。一般而言,数学建模过程包含七个主要步骤:模型准备、模型假设、模型构成、模型求解、模型分析、模型检验和模型应用。
2025-07-06 18:13:32
1000
原创 太理IM即时通讯软件开发
easyQQ是基于和nodejs实现的简单聊天软件,其中用websocket和http进行通讯传递,数据库使用了mysql数据库,该项目功能简单,界面简洁
2025-06-24 13:15:06
1051
原创 最大正方形(前缀和)
边长倒着枚举,min(n,m)作为上界(因为正方形边长最大就是min(n,m)),枚举到当前的最大边长(不是最优解即使符合条件也是无济于事)。逐一进行判断,一旦找到0立刻将双重循环break。假如可行(即这个边长的正方形符合条件)则:1. 直接将最优解替换(由于下界为当前最大边长)。2. 将枚举长度的那一段break(由于是倒着枚举)。
2025-04-01 22:04:34
763
原创 Subsequences Summing to Sevens S(前缀和)
前缀和(Prefix Sum),有时也被称为累积和,是一种算法技巧,用于快速计算数组中某个连续子数组的元素之和。它通过预先处理给定数组来构建一个辅助数组,使得后续查询特定区间内元素之和的操作变得非常高效。
2025-03-23 10:36:40
657
原创 Secret Cow Code S
归纳编程学习的感悟,记录奋斗路上的点滴,希望能帮到一样刻苦的你!如有不足欢迎指正!共同学习交流!既然选择了远方,当不负青春,砥砺前行!
2025-03-06 22:38:55
997
原创 铺地毯(模拟)
归纳编程学习的感悟,记录奋斗路上的点滴,希望能帮到一样刻苦的你!如有不足欢迎指正!共同学习交流!既然选择了远方,当不负青春,砥砺前行!
2025-01-18 12:02:19
912
原创 P1036选数
归纳编程学习的感悟,记录奋斗路上的点滴,希望能帮到一样刻苦的你!如有不足欢迎指正!共同学习交流!既然选择了远方,当不负青春,砥砺前行!
2025-01-15 17:48:02
1162
原创 统计单词数
不用vector只能老实的从str头遍历到尾,遍历过程中,用一个临时变量word临时存储每一个单词(临时的周期为:一次遇到空格到下一次遇到空格之间的生命周期),通过和空格判断来划分每一个单词,遇到空格就比较该单词是否和target相等,相等并且下标为-1就更新下标(让现在遍历的下标位置减去目标单词的长度),并且计数器cnt++,比较完之后让word置空进行下一个单词的存储。一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。
2025-01-14 20:38:56
752
原创 滑动窗口 /【模板】单调队列
单调队列是一种特殊的队列结构,它不仅支持普通的队列操作(入队和出队),还保证队列内部的数据遵循一定的单调性(即队列中的数据要么单调递增,要么单调递减)。这种特性使得单调队列在处理某些类型的问题时非常高效,尤其是那些需要频繁查找区间最值的问题。
2024-11-19 19:50:59
667
原创 机器翻译(模拟队列)
对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 MM 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。
2024-10-26 00:47:40
489
原创 深入探究:在双链表指定元素的后面进行插入操作的顺序
昨天,我们探究了在双链表指定元素的前面进行插入操作的顺序,并总结了方便记忆的规律今天我们继续探究在后面插入的顺序规律,并且将今天的规律与昨天的作对比,综合起来,找到相同之处与不同所在,这会让我们对双链表底层原理理解的更加深入,在考试当中可以快速给出正确优美的答案。注意:本章节讲的是在p指向待插入元素的前面,所以后面讲的结论只适用于往p指向的结点后面插入一个元素,关于p指向待插入元素的后面的规律,请参考上一篇博文!!!// 定义数据类型为整型// 定义一个简单的调试宏,用于输出整数。
2024-10-05 18:06:09
1105
原创 深入探究:在双链表指定元素的前面进行插入操作的顺序
在学习数据结构与算法的课程中,单链表的插入操作只用操作两个指针就可以完成操作,因为单链表就一个next的指针域可控操作,但是在双链表中新加了prior指针域,这会使我们在进行插入操作时需要进行4步的改变指针指向操作才能完成,也就是说如果将这4个步骤的顺序全排列,就会出现4!= 24种进行双链表插入操作的顺序。但是这24种情况只有12种是可以成功插入的,为什么是12种,以及为什么另外12种会插入失败,还有在考试中如何快速判断题目给出的顺序是否正确?这些问题我们在正文中进行详细的讲解。
2024-10-04 22:57:27
1282
2
原创 使用 easyX 库实现顺序表插入操作的可视化
在数据结构的学习过程中,理解顺序表的基本操作是非常重要的。本文将介绍如何使用 easyX 库来可视化顺序表的插入操作。通过动态展示插入过程,我们可以更直观地了解顺序表的工作原理。可视化顺序表插入操作。
2024-09-15 15:52:26
380
原创 针对SVM算法初步研究
支持向量机(Support Vector Machine, SVM)是一种监督学习算法,主要用于分类和回归分析。SVM的基本模型是定义在特征空间上的间隔最大的线性分类器,其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。在分类任务中,SVM试图找到一个超平面来区分不同类别的数据,这个超平面不仅需要正确地分类训练数据,而且还要确保两类数据到这个超平面的距离最大化,这样可以使得模型具备更好的泛化能力。SVM能够执行线性或非线性分类、回归,甚至是异常值检测任务。
2024-09-11 23:24:08
1152
原创 看病要排队这个是地球人都知道的常识
看病要排队这个是地球人都知道的常识。不过经过细心的0068的观察,他发现了医院里排队还是有讲究的。0068所去的医院有三个医生(汗,这么少)同时看病。而看病的人病情有轻重,所以不能根据简单的先来先服务的原则。所以医院对每种病情规定了10种不同的优先级。级别为10的优先权最高,级别为1的优先权最低。医生在看病时,则会在他的队伍里面选择一个优先权最高的人进行诊治。如果遇到两个优先权一样的病人的话,则选择最早来排队的病人。现在就请你帮助医院模拟这个看病过程。
2024-09-07 18:46:27
1177
原创 贪心练习题
今年暑假不AC?“是的。“那你干什么呢?“看世界杯呀,笨蛋!确实如此,世界杯来了,球迷的节日也来了,估计很多ACMer也会抛开电脑,奔向电视了。作为球迷,一定想看尽量多的完整的比赛,当然,作为新时代的好青年,你一定还会看一些其它的节目,比如新闻联播(永远不要忘记关心国家大事)、非常6+7、超级女生,以及王小丫的《开心辞典》等等,假设你已经知道了所有你喜欢看的电视节目的转播时间表,你会合理安排吗?(目标是能看尽量多的完整节目)
2024-08-26 14:20:09
519
原创 串的构建与操作
文本处理: 字符串是自然语言处理的基础,例如搜索引擎、文档编辑器、电子邮件系统等都需要处理大量的文本信息。标识符: 在编程语言中,变量名、函数名、类名等都是字符串形式的标识符。首先,我们已经定义了一个SeqString// 字符数组存储字符串int length;// 字符串长度。
2024-08-07 16:09:09
1016
原创 链式队列实现
队列是一种线性数据结构,它遵循先进先出的原则。在队列中,新元素被添加到队列的末尾,而旧元素从队列的前端移除。队列的主要操作包括入队(enqueue)、出队(dequeue)等。int data;} Node;// 队列头指针Node* rear;// 队列尾指针} Queue;本文介绍了如何使用 C 语言实现链式队列。通过定义节点结构和队列结构,并实现基本的操作函数,我们能够有效地管理队列中的元素。链式队列由于其动态分配的特点,在处理不确定大小的数据集合时非常有用。
2024-07-29 21:12:54
575
原创 顺序循环队列的构建与操作
顺序循环队列是使用数组来实现的一种队列形式,其中队尾追加新元素,队首移除旧元素。为了高效地利用空间,当队列尾部达到数组末端时,队列头部可以重新回到数组的起始位置,形成一个循环。我们定义了一个SeqQueue结构体,用于存储队列中的数据以及队列的前后指针。} SeqQueue;这里data是一个固定大小的数组,用来存储队列中的元素;front指向队列的头部元素,rear指向队列最后一个元素的下一个位置。
2024-07-25 21:55:46
561
原创 深入理解算数表达式求值:后缀表达式的转换与计算
后缀表达式的特点是运算符紧跟在其操作数之后,例如,中缀表达式3 + 4转换为后缀表达式后成为3 4 +。这种格式消除了对运算符优先级的依赖,也不需要使用括号来表示运算的顺序,这使得计算变得更为直接和高效。初始化:创建一个空的运算符栈和一个空的数组。遍历输入:逐个检查中缀表达式中的每个字符。如果是操作数,直接将其添加到数组。如果是运算符,根据栈顶运算符的优先级与当前运算符比较:若当前运算符优先级高于栈顶运算符,则将当前运算符压入栈。
2024-07-24 22:45:05
1471
原创 利用栈将十进制数转换为八进制数
当所有的除法操作完成,栈中存储的就是构成八进制数的各位数字,只不过它们的顺序是从个位到高位。因此,需要将栈中的数字依次弹出并连接起来,形成最终的八进制字符串或数值。:首先,创建一个空栈,这个栈将用于存储十进制数除以8得到的余数。这个过程重复进行,每次都将新的商作为。:从用户那里获取一个十进制数,我们称为。继续除以8,直到商为0为止。
2024-07-14 21:19:59
956
BW16一键烧录工具(含CH340驱动+固件)
2025-08-28
ESP8266wifi杀手固件,这个不带显示的
2024-03-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅