- 博客(51)
- 收藏
- 关注
原创 数据结构-串-模式匹配算法(KMP算法)
KMP 算法的时间复杂度为 O(m+n),其中 m 是模式串的长度,n 是主串的长度。KMP 算法的空间复杂度为 O(m)。不论在最好、最坏还是平均情况下,KMP 算法的效率都优于简单的暴力匹配算法,特别是在处理长字符串时。int j = 0;:用于遍历模式串S的当前位置。:初始化next数组的第一个元素为-1,表示模式串的第一个字符之前没有任何字符(即没有前后缀)。int k = -1;:作为辅助变量,用于在next数组中回溯。初始化为-1,与next[0]
2024-08-21 22:23:09
1092
原创 数据结构-串-了解串-串的基本操作
使用一个固定长度的数组来存储串中的字符。数组的大小在定义时就确定,通常在数组的最后一个位置放置一个特殊字符(如空字符。
2024-08-21 18:05:09
997
原创 数据结构-队列
队列是一种先进先出(FIFO, First In First Out)的数据结构。它的基本特性是:在队列中,元素的插入(入队)发生在队尾,元素的删除(出队)发生在队头。队列通常用于需要按顺序处理数据的场景。
2024-08-20 14:16:28
477
1
原创 数据结构-栈
栈是一种简单而重要的数据结构,广泛应用于计算机科学和编程中,尤其是在管理函数调用、表达式求值和实现算法时。由于其特有的LIFO特性,栈能够有效地处理需要临时存储和后续访问的元素。
2024-08-19 18:00:00
513
原创 数据结构-线性表-了解循环链表
单循环链表适合需要单向遍历的场景,结构简单,内存占用较少。双循环链表则提供了双向遍历的能力,适合需要频繁前后移动的场景,但内存占用相对较高。数据结构-线性表-单链表。
2024-08-18 10:12:48
265
原创 数据结构-线性表-顺序表
顺序表(也称为线性数组)是一种线性数据结构,它将数据元素按顺序存储在一块连续的内存空间中。元素的顺序性:顺序表中的元素具有线性关系,每个元素都有一个唯一的位置(索引),可以通过索引直接访问。存储方式:顺序表的元素在内存中是连续存储的,这使得可以通过简单的下标访问实现快速的随机访问,时间复杂度为 O(1)。固定大小:在创建顺序表时,通常需要指定其最大容量,虽然可以通过动态数组等形式实现扩展,但扩展过程可能涉及到大量的数据复制。插入与删除操作。
2024-08-15 18:29:56
1277
原创 24电赛H题总结
yaw_adjusttarget(目标偏航角)、now_yaw(当前偏航角)、speed(基础速度)和B(调整系数),用于调整车辆或机器人的左右电机速度,以修正其行进方向。欧拉角 (pitchrollyaw: 这里定义了三个欧拉角,但pitch和roll被初始化为0且未在后续代码中使用,可能是预留的变量或用于其他目的。yaw用于存储从某个函数(假设是yaw_out())获取的当前偏航角,但实际上被now_yaw变量覆盖。now_yaw: 存储当前的偏航角,用于与初始偏航角yaw_init进行比较和调整。
2024-08-13 17:33:17
747
原创 STM32杂交版(HAL库、音乐盒、闹钟、点阵屏、温湿度)
本设计是一个高度集成的基于STM32MP157A单片机的多功能系统,通过整合蜂鸣器、数码管、点阵屏、温湿度传感器、LED灯、按键等多种模块,实现了丰富的交互与功能。系统利用STM32CUBEIDE作为开发平台,充分发挥了STM32MP157A单片机的高性能与灵活性,展现了其在嵌入式系统设计中的广泛应用潜力。模块化设计:本设计采用了模块化设计思路,将不同功能模块(如闹钟、音乐盒、温湿度监测)独立设计后整合在一起,不仅提高了系统的可维护性和可扩展性,还使得各个模块的功能实现更加清晰明了。灵活的模式切换。
2024-07-11 20:03:06
1135
原创 STM32简易音乐播放器(HAL库)
这是一个基于STM32MP157A单片机的音乐盒设计较为全面和详细。主要包括以下几个方面:使用STM32MP157A单片机作为核心控制器采用TIM2定时器产生0.1s中断控制节拍使用TIM4输出PWM信号驱动蜂鸣器播放音乐使用GPIO输入检测按键操作初始化音乐频率数据表,包括低音、中音和高音定义乐谱结构体,保存不同音乐的音符和节拍信息编写播放音乐的函数,根据乐谱信息控制蜂鸣器输出编写LED灯随音乐闪烁的函数实现通过按键控制音乐播放、速度、音量的功能。
2024-05-28 23:26:54
2808
10
原创 OpenMV 图像串口传输示例
这个例程主要实现了以下功能:1. OpenMV 端采集图像:使用OpenMV开发板上的摄像头采集实时图像数据。2. 通过串口传输图像数据:将采集到的图像数据打包成字节流,通过串口发送到连接的PC端。3. PC端接收并保存图像:PC端接收来自OpenMV的图像数据,并使用OpenCV库将其解码保存为图片文件。整个过程模拟了一个简单的图像采集-传输-保存的应用场景。OpenMV负责图像采集和数据发送,PC端负责接收和保存图像。
2024-05-08 22:19:43
1787
5
原创 C++ 小游戏:战斗之旅
实现了基本的角色选择、商城购买装备、战斗系统和技能加点等功能。使用了面向对象的编程方法,通过角色类和装备类的定义,使得代码结构清晰。提供了基本的交互界面,玩家可以通过控制台输入进行游戏操作。
2024-04-29 22:02:51
488
1
原创 Visual Studio Installer 运行python 汉字
在 Python 2.x 版本中,如果源文件中包含非ASCII字符(如中文),为了确保 Python 正确地识别和处理这些字符,可以在文件开头添加 #coding:编码名称 这样的注释,以指定源文件的字符编码。但是,如果您需要在 Python 3.x 中指定其他字符编码,也可以使用类似的注释,例如 #coding:GBK。总之,#coding:GBK 这样的注释用于告诉 Python 解释器源文件的字符编码,以确保正确地处理文件中的非ASCII字符。在文本开头下面这一行即可。
2024-04-29 13:55:05
501
原创 QT——简易计算机(从0开始)
创建一个简单的图形用户界面(GUI),包括一个文本框用于显示计算结果,以及数字键盘和运算符按钮。用户可以通过点击这些按钮输入数字和运算符,并查看计算结果。实现计算功能,编写相应的代码逻辑。当用户输入两个数字和一个运算符时,程序会根据运算符执行相应的加、减、乘、除运算,并将结果显示在文本框中。简化:要求不包含小数,使用整数运算。以简洁明了的方式呈现给用户,使用户可以轻松地进行基本的算术计算。尽量确保界面设计简单大方,操作直观,为用户提供良好的使用体验。
2024-04-27 23:00:45
1563
原创 C语言入门算法——采药(了解动态规划)
这段代码实现了一个动态规划算法,用于解决背包问题的变种。它通过填充一个二维数组dp来记录在不同的时间和不同的药品数量下的最大药品价格总和。但对动态规划了解还较为模糊,还需练习。
2024-04-24 10:10:26
728
原创 C语言入门算法——明明的随机数
这个程序是一个简单的去重算法,通过对输入的数列进行排序和遍历,可以输出去重后的数列。程序通过遍历和标记的方法实现了去重功能。程序的时间复杂度为O(n^2),因为它需要进行两次遍历,所以在数据规模较大时可能会比较慢。
2024-04-22 09:16:34
280
原创 C语言入门算法——爬楼梯(了解动态规划)
了解动态规划,减小运行时间,在题目越来越难的情况下,原本的暴力手段已经不足以解决问题,只有通过学习不同的算法才能完成更高难度的题目,以下是本次总结。
2024-04-19 10:59:48
1096
原创 关于电脑蓝屏解决方法(ST-LINK/ J-Link)
电脑win11系统,使用到STM32CUBEIDE + STM32MP157A在实际的烧录情况中,烧录器插到电脑上面,电脑立即蓝屏。(封面蓝屏图片不为本问题蓝屏图片)也不能算完全解决,在各种尝试下,最后使用了虚拟机,将软件即工程放在虚拟机中运行,再将烧录器插进电脑时(虚拟机处于开启状态),选择接口进虚拟机。可能是激发了电脑的保护,电脑监测到电压不正确,开启了自动保护。这样绕过了系统的保护,骗过电脑自带的系统。
2024-04-18 14:26:23
373
原创 C语言入门算法——选数
这段代码实现了一个递归函数scan,用于计算一组数中满足特定条件的子集的数量。其中,函数用于判断一个数是否为质数。然后在main函数中读取输入,调用scan函数并输出结果。
2024-04-17 10:32:22
407
原创 C语言入门算法——最大公约数和最小公倍数问题
这个程序的主要功能是寻找满足条件的数对 P 和 Q,使得它们的乘积等于输入的 x 和 y 的乘积。程序的思路是在 P 和 Q 的所有可能组合中进行遍历,找到满足条件的数对并计数。
2024-04-16 17:32:39
952
原创 C语言入门算法——进制转换
这段代码实现了在任意进制下,将一个整数转换为负进制的形式。其核心算法是通过递归和遍历,枚举每一位数字的取值,然后根据负进制的规则计算出对应的负进制数。代码中使用了一些辅助函数,如number_pow用于计算一个数的n次方,用于将数字转换为字符,用于计算负进制数的位数。
2024-04-15 10:21:49
1152
原创 紫光同创 ----- 集创赛 ---- 点亮LED
新建的工程可以执行 device map, place& route,report timing,report power, generate netlist 及 generate bitstream 等。新建的工程可以执行 synthesize,device map, place& route,report timing, report power, generate netlist 及 generate bitstream 等。
2024-04-11 23:20:13
1002
原创 C语言入门算法——Cantor 表
该程序实现了康托展开算法,用于将一个正整数映射到一个唯一的有理数。程序首先读取一个正整数n,然后调用康托展开函数计算出对应的有理数的分子和分母,并输出结果。康托展开算法的基本思想是将一个排列映射到一个唯一的自然数,从而实现排列的全排列和组合的计数。该算法的应用广泛,如在组合数学、离散数学、计算机图形学、密码学等领域都有重要的应用。该程序实现了康托展开算法的基本逻辑,通过对坐标的变换,计算出对应的有理数的分子和分母。
2024-04-10 11:36:21
372
原创 C语言入门算法——拼数
该程序是一个用于对一组数字进行排序的简单C语言程序。采用了冒泡排序的方法,通过比较每一对相邻元素,根据需要交换它们的位置,从而达到排序的目的。程序首先读取输入的数字数量和具体的数字,然后调用排序函数对数字进行排序,并最终输出排序后的结果。
2024-04-10 10:40:03
391
原创 C语言入门算法——车站
程序的主要目的是计算一个公交车上乘客的人数变化,并根据输入的条件来确定最后一站的下车人数。程序的基本逻辑是模拟了公交车途经若干站后的人数变化过程,并通过函数station计算每一站的乘客人数,然后通过two_people函数来确定第二站的上车人数。two_people函数中的while循环没有合适的退出条件,限制i的最大值为2*10000也不是一个很好的做法。应该考虑使用更有效的搜索方法,避免不必要的循环次数。程序中缺少注释,特别是对于一些关键函数的作用和参数含义,应该添加更多的注释以提高代码的可读性。
2024-04-09 17:28:05
1023
原创 C语言入门算法——三连击
函数用于判断当前的九个数字是否满足条件,并在满足条件时计算并输出满足条件的三个三位数。calculate函数是一个递归函数,用于生成所有可能的九个数字组合。main函数初始化了九个数字为0,并调用了calculate函数开始递归生成数字组合。
2024-04-08 10:09:30
335
1
原创 C语言入门算法——铺地毯
程序首先接收输入n,表示地毯的数量,然后依次输入n块地毯的坐标信息。然后程序接收要计数的坐标信息。函数用于确定特定坐标是否位于某块地毯上,而函数则用于找出特定坐标所在的地毯编号。最后程序输出特定坐标所在的地毯编号。
2024-04-07 11:51:51
767
原创 C语言入门算法——过河卒
程序定义了一个函数来计算马的可攻击位置,这些位置存储在数组中。函数是一个递归函数,用于探索马的移动路径,计算成功到达目标位置的次数。main函数负责初始化起始位置A、目标位置B和C,然后调用函数,并输出成功到达目标位置的次数。
2024-04-07 10:59:54
656
原创 模拟 彩票/刮刮乐(C语言)
福利彩票 福利彩票35选7,随机生成7个数字,范围为10-35,数字不重复。用户可以选择自己的一组号码,并设置中奖规则。规则如下:猜中7个数字可获得500万奖金,猜中6个数字可获得100万奖金,猜中5个数字可获得1万奖金,猜中4个数字可获得5000奖金,猜中3个数字可获得500奖金,猜中0、1或2个数字则没有中奖。
2024-01-25 16:42:25
1527
1
原创 SBUS硬件取反 S8050
在连接线路前查到的大多数资料的连接方式都是10K上接3.3V导致无法取反。解决方法就是将10K变1K或者将3.3V变成5V就能正常使用(如三、电路连接)。再将上面的电路与下工程的串口输入相连,即为一个STM32F10C8T6 + 取反电路,就可以解析SBUS的数据。R9DS接收机+AT9S Pro --SBUS解析(STM32F103C8T6)
2024-01-25 16:21:08
959
原创 R9DS接收机+AT9S Pro --SBUS解析(STM32F103C8T6)
SBUS 信号模式: 接收机指示灯为蓝色,R9DS 的 第 9 通道输出 SBUS 信号, 同时原来的 1 通道 输出独立 3 通道 PWM 信号,原来的 2-6 通道输出 6-10 通道的独立 PWM 信号,7-8 通道无信号,共 计 10 个通道的信号。数据:SBUS一次传输25字节数据data[25],由data[0] = 0x0f 开始,到data[25] = 0x00结束,中间 data[1]----data[22]是有效的16个通道数据。右边两个为舵机,VCC都接5V。
2024-01-22 17:31:24
3254
4
原创 基于 ZYNQ ECO开发板和STM32F103C8T6的遥控小车
计划使用4x4按键矩阵来控制遥控车,并且希望实现以下功能:可调速、控制模式(循迹、避障、遥控)、OLED显示当前模式、按键状态、速度和运动姿态。// //超声波 teig W20 //循迹 左 W16。//串口 rx P20 //左轮控制 左方向:N18 T20 //右轮控制 右方向 P18 U20。
2023-10-29 11:59:09
352
3
原创 FPGA------ 基于 ZYNQ ECO开发板 超声波模块
这个超声波模块的功能是通过计数器实现超声波测距。它通过测量超声波从发射到接收的时间,然后将时间转换为距离值。块中,根据复位信号和状态机的当前状态设置计数器。乘以20,除以1000,再除以58,得到距离值。这里通过输入的led_zt来控制ed显示的状态。块中,根据复位信号的状态设置计数器。输出设置为1或0,以控制脉冲发出。参数定义了周期的延迟时间,分别表示状态机的三个状态。另一个时钟信号上升沿触发的。的值会进行递增或保持不变。保存上一个状态的计数器值。模块的输入包括时钟信号。在时钟信号上升沿触发的。
2023-10-28 20:07:44
107
1
原创 FPGA------ 基于 ZYNQ ECO开发板 串口
接收UART串行数据,并将接收到的数据存储在rx_data中,当接收完成时,将rx_done置为1。计数器和状态机的设计用于控制接收数据的时机和状态转换。将串口接收和发送的信息进行互联,并传输接收到的信息。
2023-10-28 19:47:39
105
1
STM32F103C8T6(HAL库) SBUS信号解析
2024-01-22
STM32F103RCT6 遥控车 STM32F103C8T6遥控器 4*4矩阵按键控制
2023-10-31
基于 ZYNQ ECO开发板和STM32F103C8T6的遥控小车
2023-10-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人