Hello Friends! Click Here!
也许仅仅是这样的一个开始,就改变了人生 🎉初次见面 创建网站之初,就是为了记录自己的学习过程 以及记录我自己的学习历程和一些心得 也许其中的某一篇文章能够切切实实帮到你,我会感到开心 ✅目前已经完成的学习计划 学习C++语言 (2024.11.17-2024.11.25) 学习git的基本用法与扩展 (2024.11.26-2024.11.27) 学习Cmake的基本知识和用法 (2024.11.27-2024.11.28) 学习OpenCV 学习ing (2024.12.1-2024.12.31) 学习Python (2025.3.14-2025.3.31) 学习算法数据与结构 🪄个人正在准备的赛事 Robomaster 腾讯开悟人工智能大赛 大学生创新创业大赛 ✨目前的学习重心 视觉算法开源 深度学习入门 🪄个人的长期学习计划 学习...
电控组考核
题目一 选择题1.若用数组名作为函数调用的实参,传递给形参的是( )A.数组的首地址B.数组第一个元素的值C.数组中全部元素的值D.数组元素的个数 2.使用值传递方式将实参传给形参,下列说法正确的是( )A.形参是实参的备份B.实参是形参的备份C.形参和实参是同一对象D.形参和实参无联系 3.以下说法正确的是( )A.下列函数调用语句中含有2个实参:fun((a1,a2),(a3,a4,a5));B.在函数中未指定存储类别的变量,其隐含的存储类别是void类型C.若调用一个函数,且此函数中没有return语句,则该函数没有返回值D.全局变量的作用域一定比局部变量的作用域范围大 4.以下说法错误的是( )A.continue语句只能用于循环语句中B.在分支结构switch中,case后面跟的一定是常量C.在不同函数中可以使用相同名字的变量D.int num[3]={1,2,3},使用num++来让数组下标后移 5.char ch[]="abcd"在内存中所占的字节数是()A.4B.5C.8D.10 6.该程序段输出结果为() 12int matrix...
生产者与消费者模型
多线程编程的一个经典模型 一、生产者与消费者模型生产者与消费者模型(Producer - Consumer Model)是一种经典的多线程同步问题模型,用于描述生产者和消费者之间对共享资源(如缓冲区)的交互过程。它在计算机科学中被广泛应用于解决多线程编程中的线程同步、资源竞争和数据共享等问题。 (一)模型的基本组成 生产者(Producer) 生产者的作用是生成数据并将其放入共享缓冲区。生产者不断地生产数据,例如在实际应用场景中,它可以是一个数据采集线程,从传感器采集数据后放入缓冲区。 消费者(Consumer) 消费者从共享缓冲区中取出数据并进行处理。消费者不断地消费数据,比如一个数据分析线程从缓冲区取出数据进行分析处理。 共享缓冲区(Shared Buffer) 这是生产者和消费者之间共享的资源。它可以是一个队列、数组或其他数据结构。缓冲区的大小是有限的,它存储着生产者生产的、尚未被消费者消费的数据。 (二)模型的核心问题 同步问题 生产者和消费者需要协调工作。如果缓冲区满了,生产者不能继续生产,否则会导致数据丢失或覆盖;如果缓冲区空了,消费者不能继续消...
感知机
简单介绍一下感知机 1.1 感知机的概念1.1.1 什么是感知机?**感知机(Perceptron)**是Frank Rosenblatt在1957年提出的一种人工神经网络模型,是最简单的前馈神经网络,也是二元线性分类器的基础。它被视为单层神经网络的雏形,为后续更复杂的模型(如多层感知机、支持向量机等)奠定了基础。 1.1.2 特点优点: 它能够接受多个信号,输出一个信号。 简单、计算高效。 可处理线性可分问题(如与门、非与门、或门)。 局限性: 无法解决非线性可分问题(如异或门),这一缺陷导致了神经网络的第一次低谷,直到多层感知机(MLP)和非线性激活函数的引入。 对噪声和异常值敏感。 1.1.3 基本原理感知机模拟生物神经元的工作方式: 输入:接收多个特征信号((x_1, x_2, …, x_n))。 加权求和:对输入信号赋予权重((w_1, w_2, …, w_n)),计算加权和 (z = \sum_{i=1}^n w_i x_i + b)((b)为偏置项)。 节点计算传送过来的信号的总和,只有当这个总和超过某个阈值时才会输出1。权重越大,对应该权重的...
高精度计算
有点意思🫠 题目描述用高精度计算出 S=1!+2!+3!+⋯+n!(对于 100% 的数据,1≤n≤50)。 其中 ! 表示阶乘,定义为 n!=n×(n−1)×(n−2)×⋯×1。例如,5!=5×4×3×2×1=120。 输入格式一个正整数 n。 输出格式一个正整数 S,表示计算结果。 题目来源:洛谷 阶乘求和 我的解题思路首先看到这个题我直接狂喜,这就不是一道”简简单单”的题目吗?(对于还没学习算法的人来说)。所以最开始我的思路就是直接用循环计算阶乘不就好了吗? 123456789101112131415161718192021222324252627#include <iostream>using namespace std;void method2(){ long long n, ans = 0; cin >> n; long long factor = 1; for (int i = 1; i <= n; ++i) // 循环n次 { factor *= i; // fo...
回文质数
自己的思路分析,以防自己忘记 题目描述因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数。 写一个程序来找出范围 [a, b](5 ≤ a < b ≤ 100,000,000)间的所有回文质数。 输入格式第一行输入两个正整数 a 和 b。 输出格式输出一个回文质数的列表,一行一个。 题目来源于洛谷 回文质数 Prime Palindromes 我的解题思路通过以上的题目信息我们可以得到一个基本的思路1.判断某个数是否是质数2.判断某个数是否是回文数3.这个数是否同时满足以上两个条件 函数设计判断是否为质数在设计函数之前,我们要明确质数的概念。质数:指大于1的自然数中,除了1和它本身以外不再有其他因数的数。我们可以有以下的设计思路: 我们可以通过遍历[2,n),再将遍历的某个数与n相除,若没有余数说明他们能够整除,即不满足质数的条件 于是我们便有以下的代码 123456789101112bool is_prime(int num){ for (int i = 2; i < num; ++i...
串口通信
你会看到,unsigned char的一万种用法(bushi)、串口通信的原理和操作方法、try-catch有什么用?虽然是AI生成的(),但是我们可以借助它来学习 unsigned char 解释unsigned char 是C/C++中的一种基本数据类型,表示无符号字符型数据。以下是详细解释: 基本特性 无符号性:只能表示非负整数,范围是0到255(在大多数平台上) 大小:通常占用1字节(8位)内存空间 用途: 存储原始字节数据 处理小范围的非负整数 实现位操作和字节级操作 与char和signed char的区别 char:可能是signed或unsigned,取决于编译器实现 signed char:明确表示有符号字符,范围-128到127 unsigned char:明确表示无符号字符,范围0到255 示例代码123456unsigned char byte = 200; // 有效unsigned char max_val = 255; // 最大值// unsigned char negative = -1; // 错误,不能赋负值// 常用于...
数据结构和算法(5)
二叉树、图 二叉树定义:每个节点最多有两个子节点的树结构,称为左子节点和右子节点。 类比:1、像家族的家谱图,每个人(节点)最多有两个孩子(左孩子和右孩子)。2、像游戏中的技能树,每个技能可能有两个分支。 例如: 50 / \ 30 70 / \ / \ 20 40 60 80 核心术语: 根节点(Root):树的顶层节点(没有父节点)。 叶子节点(Leaf):没有子节点的节点。 深度(Depth):根节点到当前节点的边数。 高度(Height):当前节点到最远叶子节点的边数。 子树(Subtree):以某个节点为根的子树 规则: 每个节点的子节点数量可为0、1、2。 如果有两个子节点,则其中一个子节点的值必须小于父节点的值,另一个子节点的值必须大于父节点。 查找 查找原理利用BST的性质:左子树所有节点值 < 根节点值右子树所有节点值 > 根节点值 查找流程(迭代实现)步骤: 从根节点开始。 若当前节点值等于target_value,返回该节点。 若...
数据结构和算法(4)
链表、双向队列 链表链表像数组一样,也用来表示一系列的元素。但是链表的实现和数组不同,在不同的场景他们会有不同的性能表现。我们知道,数组在计算机内存中是连续的(如果不懂的话请自行AI),而链表是可以分布在内存的各个地方,这种不连续的内存空间,我们称之为结点(很重要,后面都会涉及到这个概念)。 关键:每个结点除了保存着数据,他还保存着链表里下一结点的内存地址。而这份用来指示下一结点的内存地址的额外数据,被称为链。 读取、插入与删除读取链表不同于数组,数组在任何情况下的查找效率为O(1)。而链表是由一个个结点组成的,因此在查找某个数据的时候需要一个一个遍历结点,因此在最坏的情况下,链表的查找效率为O(N),比数组的效率低得多。 插入在某些情况下,链表的插入跟数组相比有着明显的优势。数组中想在0索引处插入数据,则需要将所有数据右移一格。而链表中像这样做,只需要新建一个结点再链接到下一结点即可。而链表若是想在末尾插入数据,却比数组慢得多:链表需要遍历到最后一个结点再新建结点并链接;而数组只需要直接在末尾插入就好。因此我们会发现,链表和数组的最坏情况和最好情况刚好是反着来的。 ...
数据结构和算法(3)
递归、快速排序 递归函数调用自身,就称为递归。递归看起来很简单,其实一点也不一般。它可以代替循环,例如我们要计算某个数的阶乘 123456int jiecheng(int num){ if(num == 1) return 1; else return num * jiecheng(num-1); } 怎么看懂递归?就拿上述代码举例,一步一步分析。 假如我们想计算4的阶乘jiecheng(4) 首先判断传进来的数字是否为1,这里显然不是,而这个条件又很重要,它决定着不再进行递归,这个情形被称为基准情形 接着将这个数和jiecheng(3)相乘 然后jiecheng(3)再重复上述步骤 直到数字为1,停止递归,返回jiecheng(4)的值 通过以上的流程,我们可以总结一下:1、在一个递归当中,一定会有基准情形,它决定着递归什么时候该结束2、通过基准情形,我们只需要知道调用一次时函数在干什么,便可知道整个递归在干什么 计算机中的递归 计算机会用栈来记录每个调用中的函数,这个栈叫做调用栈 计算机最开始会调用jiecheng(4)...



