国科大交叉学院二次选拔笔试2025 AI方向基础知识整理存档

图片来源网络和王道考研的PPT,考试内容紧贴大纲,仅做个人整理资料学习分享

1. 计算机系统结构

(1)计算机系统的基本组成、计算机系统的工作原理

两大部分:硬件(电子元件,各类光电机设备),软件(事先编制的具有各类特殊功能的程序)

五大部件:输入设备,运算器,存储器,控制器,输出设备

中央处理器:Central Processing Unit, CPU 由于运算器和控制器在逻辑关系和电路结构联系紧密,通常集成在同一芯片上,称为CPU

输入输出设备:I/O设备(Input/Output Equipment)

现代计算机三大部分:CPU I/O设备 主存储器

CPU和主存储器合起来称为主机,I/O设备称为外部设备

程序与数据一样存取,按程序编排的顺序,一步一步地取出指令,自动地完成指令规定的操作是计算机最基本的工作原理,这一原理最初是由美籍匈牙利数学家冯.诺依曼于1945年提出来的,故称为冯.诺依曼原理,冯诺依曼体系结构计算机的工作原理可以概括为八个字:存储程序、程序控制。

存储程序工作方式与基本结构

主存与CPU之间的连接,Cache工作原理

存储容量的拓展: 位拓展 字拓展 位字拓展

存储器与CPU连接

地址线连接:CPU地址线数往往多于存储芯片地址线数,通常地址线低位与存储芯片地址线相连。高位或在存储芯片扩充时使用,或用作片选信号等用途。

数据线连接:对存储芯片扩位。

读写命令线连接:通常高电平读低电平写。有些CPU读写线分开。

片选线连接:(CS) ̅ 低电平有效,与CPU的访存控制信号(MERQ) ̅有关,也与地址有关。

合理选择存储芯片:RAM用户编程,ROM存放系统程序、标准子程序、各类常数。

CPU, ALU, I/O, MIPS, FLOPS概念

CPU: Central Processing Unit 中央处理单元

ALU: 算数逻辑单元(arithmetic and logic unit)

I/O: Input/Output

MIPS: Million Instruction Per Second 百万条指令每秒

FLOPS: Floating Point Operation Per Second 浮点运算次数每秒

2. 操作系统与编译

(1)操作系统的基本概念

操作系统(Operating System,简称OS)是计算机系统中直接控制硬件、协调软硬件资源的基础软件。

①系统资源管理者

②向上层提供方便医用的服务

③最接近硬件的一层软件

(2)实时操作系统和分时操作系统

实时操作系统:实时系统(Real Time System)是指系统能够即时相应外部事件的请求,在规定的时间内完成对该时间的处理,并控制所有实时任务协调一致地运行。

优点:广泛应用于对时间要求严格的领域。

分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。

优点:用户请求可以及时响应,解决了人机交互问题,允许多个用户同时使用一台计算机,并且操作相互独立,感受不到别人存在。

缺点:不能优先处理一些紧急任务,对各个用户/作业完全公平,不区分紧急性。

(3) "编译型语言"和"解释型语言"概念

编译型语言:源代码通过编译器一次性转换为目标机器代码,生成的文件直接在操作系统上运行。(C/C++, Go, Rust)

执行速度快,平台依赖,开发周期长

解释型语言:代码由解释器逐行翻译并运行,不生成独立的机器码文件。(Python, JavaScript, PHP)

跨平台性好,执行速度较慢

(4)编译器、汇编器、链路器概念

编译器:Compiler 高级语言源代码转换为汇编代码(或直接生成目标机器码)

汇编器:将汇编代码直接转换为机器码

链接器:多个目标文件和库文件合并,生成最终的可执行文件

3. 程序设计与C语言

(1)计算机程序设计的任务、程序调试步骤

任务:将问题需求转换为计算机可执行的指令

程序调试步骤:1. 复现错误 2. 定位错误 3. 分析原因 4. 修复错误 5. 验证修复 6. 预防措施

(2)程序流程图的画法、顺序结构程序设计的方法

开始结束:圆角框

输入输出:平行四边形

方框:操作

菱形:判断

(3)数据基本成分,常量、变量的含义及使用方法,基本数据类型的用法

(4)C语句的基本概念;数据类型、运算符与表达式、逻辑运算与判断选取控制、循环控制、数组、函数和指针、简单的C语言程序设计

(5)常用排序、输入输出算法、循环算法的C语言实现

插入排序:

每一次将一个待排序的记录按照关键字大小插入已经拍好的序列。

cpp 复制代码
for(i=1;i<10;i++){
    for(j=0;j<i;j++){
        if(A[i]<A[j]){
            int temp;
            temp=A[i];
            for(k=i;k>=j+1;k--){
                A[k]=A[k-1];
            }
            A[j]=temp;
            break;
        }
    }
}

希尔排序:先将待排序表分割成若干形L[I,i+d,i+2d,...,i+kd]的特殊子表,对各个子表插入排序,缩小增量d,重复上述过程到d=1。

第一趟d=n/2。每一趟d=d/2

cpp 复制代码
for(d=n>>1;d>=1;d=d>>1){
    for(i=d;i<n;i++){
        if(A[i]<A[i-d]){
            int temp=A[i];
            for(j=i-d;j>=0&&temp<A[j];j-=d){
                A[j+d]=A[j];
            }
            A[j+d]=temp;
        }
    }
}

冒泡排序:从后往前或从前往后两两比较相邻元素的值,若为逆序,则交换,直到序列比较完。

cpp 复制代码
for(i=0;i<n;i++){
    for(j=n-1;j>i;j--){
        if(A[j]<A[j-1]){
            m=A[j-1];
            A[j-1]=A[j];
            A[j]=m;
        } 
    }
}

快排

cpp 复制代码
int Partition(int A[],int low,int high){
    int pivot=A[low];
    while(low<high){
        while(low<high&&A[high]>=pivot) --high;
        A[low]=A[high];
        while(low<high&&A[low]<=pivot) ++low;
        A[high]=A[low];
    }
    A[low]=pivot;
    return low;
} 
void QuickSort(int A[],int low,int high){
    if(low<high){
        int pivotpos=Partition(A,low,high);
        QuickSort(A,low,pivotpos-1);
        QuickSort(A,pivotpos+1,high);
    }
}

简单排序

cpp 复制代码
for(i=0;i<n;i++){
    int j=0;
    minnow=A[i];
    nowpot=-1;
    for(j=i+1;j<n;j++){
        if(A[j]<minnow){
            minnow=A[j];
            nowpot=j;
        }
    }
    if(nowpot!=-1){
        int tmp=A[i];
        A[i]=A[nowpot];
        A[nowpot]=tmp;
    }
}

堆排序

归并排序

cpp 复制代码
int temp[100005],a[100005]; 
void sort_change(int l,int mid,int r){
        //排序部分,把大区间再次分成小区间排序
    int k1=l,k2=mid+1,k=l;
        //初始化三个指针,一个指左区间左端点,一个指右区间左端点,一个指最终答案区间的左端点
    while(k1<=mid&&k2<=r){
        if(a[k1]>a[k2]){
            temp[k]=a[k2];
            k++,k2++;
        }
        else{
            temp[k]=a[k1];
            k++,k1++;
        }
            //每次取两个区间中最小的数字加入答案,指针右移
    }
    while(k1<=mid){
        temp[k]=a[k1];
        k++,k1++;   
    }//如果右区间的数字已经取完了,将左区间剩余数字按照一样从小到大的顺序放入答案
    while(k2<=r){
        temp[k]=a[k2];
        k++,k2++;
    }//如果左区间的数字已经取完了,将右区间剩余数字按照一样从小到大的顺序放入答案
    for(int i=l;i<=r;i++) a[i]=temp[i];//将储存答案的数组的值赋回原来的数组
} 
void sort_re(int l,int r){
    if(l>=r) return ;//如果该区间不满足条件,即左边在右边的右边,return
    int mid=(l+r)/2;//二分思想
    sort_re(l,mid);//给左子区间排序
    sort_re(mid+1,r);//给右子区间排序
    sort_change(l,mid,r);//保证左右子区间排列得整整齐齐之后,才能并起来
        //将大区间化成小区间然后排序
}
int n;
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);//读入
    sort_re(1,n);//排序(进入划分区间)
    for(int i=1;i<=n;i++) printf("%d ",a[i]);//输出
    return 0;
}

基数排序(来源王道)

4. 机器学习与人工智能

这部分整理的不是特别全面,主包当时考试的时候就这部分稍微不太熟悉,建议自行再次整理详细

(1)机器学习模型的训练误差、测试误差、过拟合概念

误差:学习器实际预测输出与样本真实输出之间的差异

训练误差:学习器在训练集上的误差

测试误差:学习器在测试集上的误差

过拟合:学习器把训练样本学得太好了,把训练样本自身的一些特点当做所有潜在样本都具有的一般性质,导致泛化性能下降

(2)梯度下降、反向传播算法的基本原理

梯度下降:梯度下降利用损失函数的梯度(即偏导数)指示参数更新的方向,使损失函数值逐步向局部最小值或全局最小值移动。


(4)人工神经网络的基本结构、节点、激活函数、转移矩阵

基本结构:

输入层:接收原始数据

隐藏层:输入输出之间,负责特征提取和变换

输出层:生成最终预测结果

节点:模拟生物神经元,操作:输入-加权求和-激活函数

激活函数:引入非线性,使网络能够拟合复杂函数

转移矩阵:描述层与层之间连接的权重参数。

相关推荐
嵌入式老牛2 小时前
液晶段码(米/日字格)识别—预处理
人工智能·opencv·计算机视觉
comcoo2 小时前
本地 AI 智能体 OpenClaw 部署实操教程
人工智能·openclaw安装包·龙虾ai·open claw部署
@不误正业2 小时前
第13章-开源鸿蒙是否适合做端侧AI操作系统
人工智能·开源·harmonyos
冬奇Lab2 小时前
RAG 系列(六):向量数据库——存储与检索的基础设施
数据库·人工智能·llm
Agent手记2 小时前
首件检验流程繁琐,耗时久还容易出现合规漏洞怎么办?——基于实在Agent的AI+超自动化全流程闭环实战
网络·人工智能·ai·自动化
eqwaak02 小时前
PyTorch张量操作全攻略:从入门到精通
开发语言·人工智能·pytorch·python
程序员学习Chat2 小时前
计算机视觉-异常检测
人工智能·计算机视觉·异常检测
格林威2 小时前
线阵工业相机:如何计算线阵相机的行频(Line Rate)?公式+实例
开发语言·人工智能·数码相机·算法·计算机视觉·工业相机·线阵相机
爱学习的张大2 小时前
具身智能数据Pipeline
人工智能