minist识别手写字体,使用CNN卷积神经网络,加入了交叉验证,并保存了交叉验证过程中效果最好的模型,收敛后正确率在0.99上下,LOSS函数使用交叉熵
2025/8/14 8:01:24 5KB CNN
1
常用算法设计方法详细解析(含源代码)算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。
指令正确地描述了要完成的任务和它们被执行的顺序。
计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。
通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。
其次是算法所需要的存储空间少和执行更快等。
算法设计是一件非常困难的工作,经常采用的算法设计技术主要有迭代法、穷举搜索法、递推法、贪婪法、回溯法、分治法、动态规划法等等。
另外,为了更简洁的形式设计和藐视算法,在算法设计时又常常采用递归技术,用递归描述算法。
一、迭代法二、穷举搜索法三、递推法四、递归五、回溯法六、贪婪法七、分治法八、动态规划法
1
STM32F407是意法半导体(STMicroelectronics)推出的一款基于ARMCortex-M4内核的微控制器,广泛应用于工业控制、物联网设备、自动化系统等领域。
485MODBUS是工业通信协议的一种,常用于设备间的串行通信,具有良好的抗干扰性和远距离传输能力。
在本实验中,我们将探讨如何利用STM32F407实现485MODBUS通信。
1.**STM32F407核心特性**STM32F407集成了高性能的Cortex-M4处理器,具备浮点运算单元(FPU),工作频率高达180MHz,内存配置包括大容量闪存和SRAM,以及丰富的外设接口如I/O端口、定时器、ADC、SPI、I2C、USART等,非常适合实时性和计算性能要求较高的应用。
2.**485通信协议**485通信是RS-485标准下的物理层通信方式,采用差分信号传输,允许在多点网络中进行全双工或半双工通信,最大传输距离可达1200米,适合长距离、噪声环境下的数据传输。
MODBUS是一种基于485通信的通用协议,主要用于设备间的数据交换,支持ASCII和RTU两种模式,其中RTU模式效率更高,适用于大多数工业应用。
3.**MODBUS协议详解**MODBUS协议定义了数据组织和传输格式,包括地址编码、功能码、数据域和校验码等。
地址编码用于指定发送和接收设备,功能码指示要执行的操作,如读取或写入寄存器,数据域包含实际传输的数据,校验码用于检查通信错误。
4.**STM32F407与485MODBUS的实现**-**硬件配置**:STM32F407通常通过UART接口连接到485收发器,如MAX485,收发器负责将TTL电平转换为485电平,实现长距离传输。
-**软件实现**:使用STM32CubeMX配置UART参数,如波特率、数据位、停止位、校验位等。
编写驱动代码来初始化UART和485收发器,设置中断处理函数处理数据收发。
-**MODBUS协议栈**:编写MODBUS协议解析代码,根据接收到的功能码执行相应操作,如读取或写入寄存器。
这需要理解并实现MODBUS协议中的各种功能码。
5.**实验步骤**实验26485通信实验可能包括以下步骤:-硬件连接:连接STM32开发板和485收发器,确保正确接线。
-配置STM32:使用STM32CubeMX配置UART接口和时钟,生成初始化代码。
-编写通信代码:实现MODBUS协议的解析和响应,以及数据的发送和接收。
-测试验证:通过另一台支持MODBUS的设备与STM32进行通信,测试读写功能,确保数据正确传输。
6.**注意事项**在进行485MODBUS通信时,需注意以下几点:-差分信号线A和B需要正确连接,避免反接。
-设备之间需要保持一致的波特率和其他通信参数。
-为了避免信号冲突,需要正确设置485收发器的使能信号,确保在发送时才切换到发送模式。
-在多设备网络中,需避免地址冲突,确保每个设备有唯一的MODBUS地址。
这个实验为学习者提供了一个很好的平台,通过实践了解STM32F407与485MODBUS通信的工作原理和实现细节,对于提升嵌入式系统开发能力非常有帮助。
2025/8/13 9:25:27 unknown 485通讯
1
4.7假设零钱系统的币值是{1,p,p^2,……,p^n},p>1,且每个钱币的重量都等于1,设计一个最坏情况下时间复杂度最低的算法,使得对任何钱数y,该算法得到的零钱个数最少,说明算法的主要设计思想,证明它的正确性,并给出最坏情况下的时间复杂度。
4.8考察路线上有n个地点可以作为宿营地。
一直宿营地到出发点的距离依次为x1,x2,……,xn,且满足x1<x2<……<xn,每天他们只能前进30千米,而任意两个相邻的宿营地之间的距离不超过30千米,在每个宿营地只住1天,他们希望找到一个行动计划,使得总的宿营天数达到最少,求解这个问题。
2025/8/13 8:47:06 186KB 素英天数 找零钱
1
思科黑带计划ACI部署stage1答案标绿部分100%正确标黄部分80%正确
2025/8/11 22:46:36 176KB 思科 DCpoint 黑带计划
1
搞小程序开发,请求接口的加密部分用到md5,百度一大堆垃圾的jsmd5加密,每一个都正确,都是不支持中文的,爬墙才找到这个,希望大家别入坑了。
jsmd5加密,md5支持utf-8加密,javascriptmd5加密,最好用jsmd5加密。
2025/8/10 2:07:56 2KB js md5加密 md5支持utf-8 javascript
1
doc格式,60多页吧,几百道题吧,都有答案吧,看好在下!部分:1.求下面函数的返回值(微软)intfunc(x){intcountx=0;while(x){countx++;x=x&(x-1);}returncountx;}假定x=9999。
答案:8思路:将x转化为2进制,看含有的1的个数。
2.什么是“引用”?申明和使用“引用”要注意哪些问题?答:引用就是某个目标变量的“别名”(alias),对应用的操作与对变量直接操作效果完全相同。
申明一个引用的时候,切记要对其进行初始化。
引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。
声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。
不能建立数组的引用。
3.将“引用”作为函数参数有哪些特点?(1)传递引用给函数与传递指针的效果是一样的。
这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。
(2)使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作;
而使用一般变量传递函数的参数,当发生函数调用时,需要给形参分配存储单元,形参变量是实参变量的副本;
如果传递的是对象,还将调用拷贝构造函数。
因此,当参数传递的数据较大时,用引用比用一般变量传递参数的效率和所占空间都好。
(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;
另一方面,在主调函数的调用点处,必须用变量的地址作为实参。
而引用更容易使用,更清晰。
4.在什么时候需要使用“常引用”? 如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。
常引用声明方式:const类型标识符&引用名=目标变量名;
例1inta;constint&ra=a;ra=1;//错误a=1;//正确例2stringfoo();voidbar(string&s);那么下面的表达式将是非法的:bar(foo());bar("helloworld");原因在于foo()和"helloworld"串都会产生一个临时对象,而在C++中,这些临时对象都是const类型的。
因此上面的表达式就是试图将一个const类型的对象转换为非const类型,这是非法的。
引用型参数应该在能被定义为const的情况下,尽量定义为const。
5.将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?格式:类型标识符&函数名(形参列表及类型说明){//函数体}好处:在内存中不产生被返回值的副本;
(注意:正是因为这点原因,所以返回一个局部变量的引用是不可取的。
因为随着该局部变量生存期的结束,相应的引用也会失效,产生runtimeerror!注意事项:(1)不能返回局部变量的引用。
这条可以参照EffectiveC++[1]的Item31。
主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了"无所指"的引用,程序会进入未知状态。
(2)不能返回函数内部new分配的内存的引用。
这条可以参照EffectiveC++[1]的Item31。
虽然不存在局部变量的被动销毁问题,可对于这种情况(返回函数内部new分配内存的引用),又面临其它尴尬局面。
例如,被函数返回的引用只是作为一个临时变量出现,而没有被赋予一个实际的变量,那么这个引用所指向的空间(由new分配)就无法释放,造成memoryleak。
(3)可以返回类成员的引用,但最好是const。
这条原则可以参照EffectiveC++[1]的Item30。
主要原因是当对象的属性是与某种业务规则(businessrule)相关联的时候,其赋值常常与某些其它属性或者对象的状态有关,因此有必要将赋值操作封装在一个业务规则当中。
如果其它对象可以获得该属性的非常量引用(或指针),那么对该属性的单纯赋值就
2025/8/9 4:02:35 45KB C C++ 算法 经典
1
液晶为16管脚LCD12864,内附于某51单片机开发板,代码也基于该51单片机开发板的例程代码,我们认真分析了代码的每一行每一个函数,对其中小部分不合理(至少是我们认为不合理)的代码进行了优化和修改,并增添了一些新的内容。
我们尽最大努力最大程度上保证代码没有bug,发布前进行了上机编译并实际运行于所应用的设备,希望能帮助新手更快更好的学习!文件中参考了大量网络资料,但并非单纯网络资料的简单堆砌,网上资料虽多,但解释详细力度以及正确率都有待考察,我们在参考大量资料基础上加上自己的理解汇总成有关该模块的文档。
鉴于我们目前能力有限,其中一些理解存在误区或者不当,还请大神能够提出指正,一定虚心接受,大家互相学习!
2025/8/8 2:28:51 5.7MB LCD12864
1
2016年下半年(11月份)软考网络规划设计师上午真题及答案解析,全网最清晰,答案最正确的真题资料。
小任老师出品,必属精品。
2025/8/7 22:47:32 904KB 网络规划师 2016
1
高质量的软件需要高质量的管理,这正是《质量?软件?管理》的主题。
出自久负盛名的杰拉尔德?温伯格(GeraldM.Weinberg)之手的这套共四卷的丛书,凝聚了作者40年来对计算机的深挚感情。
在第1卷《系统思维》中,作者指出了开发质量软件包件首先必需具备的一个条件——学会如何对问题、答案以及质量本身进行正确的思考。
他同时也给出了一些指导方针,这些方针能够促进我们进行必要的此类思考。
“及早采取措施,但是措施的力度要小”,这就是保持对质量过程进行控制的关键。
在企业中,主管们既应该起到计划者的作用,也应该起到催化剂的作用——一方面不断为今后的工作做出计划,对进行情况进行观察,另一方面果断地使实际情况朝着预定的目标发展。
本书通过大量的实例解释了“控制点”的概念,只要对这些位置进行管理,就可以防止危机的发生,或者至少不使情况更糟。
2025/8/7 22:16:51 35.13MB 质量 软件 管理 项目管理
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡