最近算法岗笔试题整理

news2024/11/27 13:53:15

目录

1. 子串和子序列的区别?

2. 给一个featuremap 矩阵,行列都代表机器翻译用到的不同的单词的依赖程度,判断这个矩阵是哪个模型生成的?

3. 判断递归函数的时间复杂度

4. K-means 组关键数,选一个K得到SSE,利用elbow选取最佳的K为多少(给了个图,判断最佳K)

5. 直接插入排序的比较次数?交换排序的交换次数?(对各个排序的时间复杂度和次数的分析)

6.Tanh的期望为0吗?哪几个激活函数是不饱和的?

7. 朴素贝叶斯是什么?朴素贝叶斯假设变量之间相互独立吗?

8. Gini指数是什么 越大是代表选择还是不选(在决策树中

9. 最长公共子序列指的是连续的还是不连续的?给两个字符串判断最长公共子序列

10. 给一个混淆矩阵,计算召回率

11. 给一堆分类结果,计算AUC ?(没有图

12. 给多分类任务的结果,计算macro-F1-score

13. 给10个数,每次有放回地取出一个数,假设取了10次后,有x个数没有被抽到,计算x的数学期望是多少

14. 给输入图像224*224*3通道,输出224*224*64通道,已知3×3的卷积层,计算这个卷积层的参数数量 

15 用动态规划求最大递增子序列,求dp数组的值,以及该如何初始化

16. {∞.a, ∞.b, ∞.c}取n长的字符串,a出现偶数次的字符串的个数是多少?(选项是三的多少次方)

17. 高斯朴素贝叶斯?是什么,是生成式模型吗?

18. 牛顿法和梯度下降法哪个更快,牛顿法具体怎么做的

19. func(void){。。。。} 给func(2),分别用c/c++编译正确还是错误 

20。1-x+2分之x平方-3分之x三次方+...+(-1)*n分之x的n次方有无实根?

34. Seq2Seq模型、GRU、RNN、LSTM在nlp上的 应用

38. 对C++的了解,C++和Python当中多线程有什么区别?

39.Python当中的线程和进程有什么区别?

40. self attention 除以根号下dk的作用是?

41. 多头self-attention


1. 子串和子序列的区别?

子序列是在一个给定的序列中删除若干元素后得到的序列;子串是字符串中任意个连续的字符组成的子序列

子串连续,子序列不连续

2. 给一个featuremap 矩阵,行列都代表机器翻译用到的不同的单词的依赖程度,判断这个矩阵是哪个模型生成的?

LSTM、GRU、带attention的RNN、CNN

我觉得应该是带attention的RNN,因为attention会通过输入的词语判断,而且根据图,一个词大多只与它周围窗口内几个词有关,说明是一个局部的特征(?)

3. 判断递归函数的时间复杂度

f(n) return 2f(n-1) + 3f(n-2)

用master方法判断递归函数的时间复杂度

其中fn是当前递归函数本体的时间复杂度,T是下一层的n

但是没办法求斐波那契数列的递归函数,可以用递归树的方法求:

每个递归函数都分裂成两个,相当于深度为n的子树,时间复杂度是O (2^n)

4. K-means 组关键数,选一个K得到SSE,利用elbow选取最佳的K为多少(给了个图,判断最佳K)

肘部法则:通过误差平方和曲线(SSE)来确定最佳K值的方法。思想是根据不同的K值来聚类,并计算误差平方和,随着K值的 增加,平方和会减少,找到下降速度极具减缓的点,到达那个点的K值就是最佳K值(肘部)

------其他初始点选择方法:

kmeans++:

   - 选择一个随机点作为第一个初始点。

   - 对于每个数据点,计算其与已选择的初始点之间的距离,并选择距离最大的点作为新的初始点。

   - 重复上述步骤,直到选择了K个初始点。

5. 直接插入排序的比较次数?交换排序的交换次数?(对各个排序的时间复杂度和次数的分析)

在排序过程中,若整个表都是放在内存中处理,排序时不涉及数据的内、外存交换,则称之为内排序;反之,若排序过程中要进行数据的内、外存交换,则称之为外排序。 

主要要了解的有:

插入排序:把序列划分成排序的和没排序的,每次从没排序的第一个插入到前面已经排序的正确位置

冒泡排序:依次对相邻两个元素的值进行两两比较,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就如果水底下的气泡一样逐渐向上冒。

直接选择排序:把序列划分成排序的和没排序的,每次从没排序的选择一个最小的插入到前面的最后。

希尔排序:插入排序的改进。迭代,第一次把数据分成n/2组,每组两个数,排序,第二次把数据分成四组,再排序,直到每个组只有一个数的时候。

分组的方式是把第0个数和第n/2个数分为一组。

快速排序:每次选一个分割点,首位开始迭代,交换,遍历一轮后保证分割点左边的数都小于他,右边的数都大于他。

堆排序:升序大根堆。降序小根堆。

归并排序:就是每次将数组分成两组,每组再继续迭代,排序。两组排序好后再合并两个有序数列。

6.Tanh的期望为0吗?哪几个激活函数是不饱和的?

(1)tanh(x)是奇函数,即tanh(-x) = -tanh(x),当x服从标准正态分布时,tanh(x)的期望值就为0。

(2)判断激活函数是否饱和是根据导数。导数在整个输入区间都接近于0就是饱和。例如sigmoid和tanh,在饱和区域对于输入变化不敏感,会导致梯度消失。

不饱和的有relu,线性,整个输入范围都有敏感性。能解决梯度消失的问题。但是有死亡神经元。

7. 朴素贝叶斯是什么?朴素贝叶斯假设变量之间相互独立吗?

是的,朴素贝叶斯的理论就是每个特征独立且相等(具有相同的重要性)。

朴素贝叶斯分类器的公式:

分类器就是考虑每个分类label的概率,输出概率最大的y作为结果。

8. Gini指数是什么 越大是代表选择还是不选(在决策树中

刚好与CART决策树一起看

节点越不纯,基尼指数越大,熵越大,效果越差。(不纯指的是分类数据包含多个类别,如果是只有一个类别就是最纯的)

9. 最长公共子序列指的是连续的还是不连续的?给两个字符串判断最长公共子序列

子序列是不连续,子串是连续

这个是多维dp,等明天做leetcode看

10. 给一个混淆矩阵,计算召回率

混淆矩阵难记,就记住:

准确率是所有样本预测为正的当中,真实为正的概率

召回率是所有真实样本为正的中,预测为正的概率

11. 给一堆分类结果,计算AUC ?(没有图

奇了怪了,根本没法算AUC啊,这不是曲线下面积吗

可能是因为都是0??我也不懂

反正先算一下TPR-FPR,再算ROC TPR-FPR TPR就是召回率

FPR是所有真实样本为负的中,预测为正的概率

两者相加不等于1,因为分母不一样。

如何算出多个TPR、FPR,画出曲线?这是根据阈值来算的,比如每个数据会输出0-1之间的数,阈值设为0.5就代表大于0.5为正,小于0.5为负。

12. 给多分类任务的结果,计算macro-F1-score

macro就是F1的多个分类均值。把多分类分成多个二分类问题。

13. 给10个数,每次有放回地取出一个数,假设取了10次后,有x个数没有被抽到,计算x的数学期望是多少

14. 给输入图像224*224*3通道,输出224*224*64通道,已知3×3的卷积层,计算这个卷积层的参数数量 

要计算3×3卷积层的参数数量,需要考虑卷积核的大小、输入通道数以及输出通道数。

给定:卷积核大小:3×3,输入通道数:3,输出通道数:64

计算参数数量:每个卷积核的参数数量:3×3×3=27,每个输出通道有一个卷积核:64个卷积核

总参数数量:27×64=172827×64=1728

此外,卷积层通常还有一个偏置参数 per output channel:偏置参数数量:64

总参数数量:
1728+64=17921728+64=1792

15 用动态规划求最大递增子序列,求dp数组的值,以及该如何初始化

16. {∞.a, ∞.b, ∞.c}取n长的字符串,a出现偶数次的字符串的个数是多少?(选项是三的多少次方)

不知道是什么东西,搜都搜不到

17. 高斯朴素贝叶斯?是什么,是生成式模型吗?

不是,是分类模型。

据对“似然度”计算方法的不同,将朴素贝叶斯大致分为三种:多项式朴素贝叶斯(MultinomialNB)、伯努利分布朴素贝叶斯(BernoulliNB)、高斯朴素贝叶斯(GaussianNB)

(1)高斯朴素贝叶斯适用于特征呈正态分布的,多项式贝叶斯适用于特征是多项式分布的,伯努利贝叶斯适用于二项分布。一般连续特征会遵从正太分布

(2)多项式朴素贝叶斯适用于特征值为离散的情况,特别是特征值表示频率或计数时。它常用于文本分类任务,例如垃圾邮件过滤

(3)伯努利朴素贝叶斯假设特征是二值的,即每个特征要么出现,要么不出现。这种模型更适合于只有两种状态的特征(如是否出现某个单词)。它计算每个类别下特征是否出现的概率,伯努利朴素贝叶斯适用于二元特征的分类任务,特别是在文本分类中,当我们只关心单词是否出现而不是出现的频率时。例如,垃圾邮件过滤器可以使用伯努利模型来考虑邮件中是否出现某些关键字。

假设我们有一组邮件,其中的特征是邮件中某些特定单词是否出现(如“免费”、“优惠”等),我们可以使用伯努利朴素贝叶斯来预测邮件是否是垃圾邮件。

18. 牛顿法和梯度下降法哪个更快,牛顿法具体怎么做的

(1)梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。梯度下降法很快

梯度下降法的缺点:

  (1)靠近极小值时收敛速度减慢,如下图所示;

  (2)直线搜索时可能会产生一些问题;

  (3)可能会“之字形”地下降。

包括批量梯度下降随机梯度下降法。批量梯度下降是对所有的样本批量求梯度并更新,随机梯度下降是随机选取一些样本计算梯度(贪心一样,不是整体最优,但是能代表近似估计

(2)牛顿方法使用函数(x)的泰勒级数的前面几项来寻找方程(x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。牛顿法是基于当前位置的切线来确定下一次的位置。

从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。(牛顿法目光更加长远,所以少走弯路;相对而言,梯度下降法只考虑了局部的最优,没有全局思想。)

但是,牛顿法的缺点是需要Hessian矩阵的逆矩阵,计算比较复杂。

19. func(void){。。。。} 给func(2),分别用c/c++编译正确还是错误 

都是编译错误

20。1-x+2分之x平方-3分之x三次方+...+(-1)*n分之x的n次方有无实根?

21. A52,C52怎么算来着(全排列公式

22. python dict.fromkeys(['k1','k2'],[]) 什么意思

23. 程序调用图是啥,是二分图吗

24 度为4的数,分别给出度为4,3,2,1的节点的数量,求度为0的节点的数量

25 隐马尔可夫链、前向、后向、混合高斯算法

26. RCNN、Fast RCNN、Faster RCNN的区别特点

27. 语音合成的方向有哪些 统计参数语音合成

28. int array[] = {10,20,30} cout<<-2[array-1] 是多少

29. python 定义 @class method 直接对类修改变量值和建立对象后通过对象修改变量值,最后的结果是多少

30. 分页存储

31. 设计模式里和单一职责原则冲突的是?

---------------------------------------

32. 分词器?有哪些 中英文 现在输入到神经网络里还需要用到分词器吗

33. Greedy Search贪婪搜索解码流程(用于机器翻译预测, transformer的预测过程)Transformer系列:Greedy Search贪婪搜索解码流程原理解析 - 简书

NLP实验3——基于Transformer的机器翻译_nlptransformer翻译-CSDN博客

34. Seq2Seq模型、GRU、RNN、LSTM在nlp上的 应用

35. bleu评价指标

36. 最大似然函数

37. 逻辑回归是什么?

38. 对C++的了解,C++和Python当中多线程有什么区别?

c++通过thread库来创建和管理线程,适合CPU密集型任务,没有全局解释器锁(GIL)

python通过threading模块管理线程,由于GIL的存在,主要用于IO密集型任务,例如网络请求、文件读取。不适合CPU密集型任务。 对于CPU密集型使用multiprocessing


39.Python当中的线程和进程有什么区别?

线程:是程序执行流的最小单元,是系统独立调度和分配CPU(独立运行)的基本单位

进程是资源分配的基本单位。一个进程包括多个线程。

  • 单个CPU在任一时刻只能执行单个线程,只有多核CPU还能真正做到多个线程同时运行
  • 一个进程包含多个线程,这些线程可以分布在多个CPU上
  • 多核CPU同时运行的线程可以属于单个进程或不同进程
  • 所以,在大多数编程语言中因为切换消耗的资源更少,多线程比多进程效率更高

GIL规定,在一个进程中每次只能有一个线程在运行。这个GIL锁相当于是线程运行的资格证,某个线程想要运行,首先要获得GIL锁,然后遇到IO或者超时的时候释放GIL锁,给其余的线程去竞争,竞争成功的线程获得GIL锁得到下一次运行的机会。

正是因为有GIL的存在,python的多线程其实是假的,所以才有人说python的多线程非常鸡肋。但是虽然每个进程有一个GIL锁,进程和进程之前还是不受影响的。

由于GIL的存在,很多人认为Python多进程编程更快,针对多核CPU,理论上来说也是采用多进程更能有效利用资源。但这不是说明多线程就没意义了,还是得根据实际场景来看。

对CPU密集型代码(比如循环计算),多进程效率更高。
对IO密集型代码(比如文件操作、网络爬虫),多线程效率更高。

对于IO密集型操作,大部分消耗时间其实是等待时间,在等待中CPU是不需要工作的,那么在此期间提供多个CPU资源也是利用不上的,python碰到等待会释放GIL供新的线程使用,实现了线程间的切换。相反对于CPU密集型代码,多个CPU干活肯定比一个CPU快很多。

 最长递增子序列,可不可以不用动态规划

flash attention 了解吗? 怎么做的计算?

40. self attention 除以根号下dk的作用是?

是为了防止点积变得太大。如果这些值变得太大,之后使用的 softmax 函数会将梯度推入它们太小的区域,从而导致有效学习的问题。通过缩放点积,可以使值保持在 softmax 函数的更稳定范围内。

41. 多头self-attention

其实是相当于每个VKQ都做了多次Linear变换,得到多个selfattention的结果,再用concat拼接起来,经过线性层得到一个结果。

Feedforward的作用:它增强了模型的表达能力并允许模型学习更复杂的特征表示。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2062837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

对于初学者来说,如何选择一个合适的FPGA学习路径?

初学者入门还是相对简单的&#xff0c; 学fpga有专业要求&#xff1a; 一般是电子信息类、自动化类、计算机类等相关专业都是比较合适入行的。 FPGA岗位一般要求熟悉数字电路设计&#xff0c;以及C、verilog等&#xff0c;能够看懂原理图。 像其他专业也可以入行&#xff0c;但…

东南亚超市门店客流统计分析,了解客流高峰期,分析客户喜好

在东南亚的超市中&#xff0c;客流统计分析正成为提升运营效率和了解客户需求的重要手段。 一、客流统计系统集成 先进的客流统计系统通过在超市入口、关键通道和各个区域安装智能传感器&#xff0c;能够准确地记录进出超市的客流量。这些传感器与数据分析软件相结合&#xff0…

SQL基础——SQL分类

声明&#xff1a;以下内容为根据黑马数据库视频教程&#xff0c;个人整理的笔记&#xff0c;方便记录学习。 SQL基础之SQL分类 SQL分类详细知识导图SQL四种类型的全称和说明案例SQL语句编写DDL数据库操作表操作 DML添加数据修改数据删除数据 DQL条件查询聚合函数分组查询排序查…

众善企业助力脱贫攻坚,共建美好未来

在我国全面建设社会主义现代化国家的进程中&#xff0c;脱贫攻坚是一项重要的民生工程。众善企业作为社会的一份子&#xff0c;积极响应国家号召&#xff0c;以实际行动践行企业社会责任&#xff0c;为广大贫困地区提供帮扶&#xff0c;助力脱贫攻坚。 一、众善企业的责任担当 …

【IEEE】第五届机器学习与计算机应用国际学术会议(ICMLCA 2024,10月18-20)

第五届机器学习与计算机应用国际学术会议(ICMLCA 2024)定于2024年10月18-20日在中国杭州隆重举行。 本届会议将主要关注机器学习和计算机应用面临的新的挑战问题和研究方向&#xff0c;着力反映国际机器学习和计算机应用相关技术研究的最新进展。 ICMLCA 2024已上线至IEEE官网…

代码随想录算法训练营第二十二天(回溯 一)

开始学习回溯&#xff01; 回溯理论基础 代码随想录文章链接:代码随想录 文章摘要: 什么是回溯法 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 在二叉树系列中&#xff0c;我们已经不止一次&#xff0c;提到了回溯。 回溯是递归的副产品&#xff0c;只…

贪吃蛇(Qt版)

目录 一、项目介绍 界面一&#xff1a;游戏大厅界面 界面二&#xff1a;关卡选择界面 界面三&#xff1a;游戏界面 最终游戏效果&#xff1a; 二、项目创建与资源配置 1. 创建项目 2. 添加项目资源文件 三、项目实现 1. 游戏大厅界面 2. 关卡选择界面 3. 游戏房间界…

重装后的电脑怎么分区?轻松优化存储空间

电脑重装系统是解决许多软件问题和提升性能的有效方法。然而&#xff0c;重装系统后&#xff0c;合理的硬盘分区不仅能提高数据管理效率&#xff0c;还有助于保护系统安全。本文将详细介绍如何在重装电脑后进行合理的分区&#xff0c;帮助您更好地管理和使用您的电脑。 一、了解…

傅里叶变换与拉普拉斯变换:联系、区别及其应用

1. 傅里叶变换和拉普拉斯变换的定义 1.1 傅里叶变换的定义 傅里叶变换是将时间域信号转换为频率域信号的数学工具&#xff0c;由正向和逆变换组成。它将信号分解为正弦波和余弦波的组合&#xff0c;适用于周期性和非周期性信号分析。 1.2 拉普拉斯变换的定义 拉普拉斯变换是…

武汉流星汇聚:跨境电商领航者,以自营经验赋能万企,共绘出海蓝图

在数字经济浪潮席卷全球的今天&#xff0c;跨境电商作为国际贸易的新引擎&#xff0c;正以前所未有的速度改变着全球商业格局。在这片充满机遇的蓝海中&#xff0c;武汉流星汇聚电子商务有限公司犹如一颗璀璨的流星&#xff0c;划破长空&#xff0c;以其独特的优势和卓越的成就…

数学强化| 李林880重点题速刷计划

快9月了&#xff0c;有的同学还没开始强化&#xff0c;进度确实有点慢了&#xff0c;有同学问&#xff1a; 刚开始强化&#xff0c;880题该如何快速刷完&#xff1f; 听我说&#xff0c;别急&#xff01;越是强化开始的晚&#xff0c;就越不能急&#xff0c;因为强化的作用有两…

易基因:泪腺RRBS+RNA-seq揭示Sjögren综合征相关干眼症的潜在基因|项目文章

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 Sjgren综合征&#xff08;Sjgren’s syndrome&#xff0c;SS&#xff09;相关干眼症是一种以泪腺&#xff08;lacrimal glands&#xff0c;LGs&#xff09;慢性炎症为特征的难治性自身免…

mysql InnoDB引擎各种隔离级别的加锁机制

文章目录 概要前置知识了解各种隔离锁的验证小结 概要 我们都知道&#xff0c;mysql的InnoDB引擎在各种隔离级别下的加锁机制都是有差异的&#xff0c;但是对于各种隔离级别下如何加锁大家可能不太了解&#xff0c;今天我就通过一篇文章去带领大家去分析一下各个隔离级别的加锁…

【HTML】使用Javascript制作网页

1、Javascript的语法规则 JavaScript程序按照在HTML文件中出现的顺序逐行执行。JavaScript严格区分字母大小写。在JavaScript中&#xff0c;每行结尾的分号可有可无。JavaScript中主要包括两种注释&#xff1a;单行注释和多行注释。单行注释使用双斜线“//”作为注释标签&…

AI绘画商业实战,深入剖析Stable Diffusion 服装模特精准换装脱Y,AI虚拟模特变现教程

大家好&#xff0c;我是灵魂画师向阳 在之前的文章中&#xff0c;我们已经深入讲解了SD与ControlNet基础知识和原理。接下来我们将结合这一堆基础工具法宝组合使用&#xff0c;完成一些有意义的AIGC商业实战案例分享。 本文是来自一位粉丝的现实需求案例&#xff1a;电商服装…

人在上海ip显示在安徽怎么回事?怎么办

在这个信息爆炸的时代&#xff0c;网络已成为我们生活中不可或缺的一部分。无论是工作、学习还是娱乐&#xff0c;网络都以其独特的魅力渗透进我们生活的每一个角落。然而&#xff0c;随着网络技术的不断发展&#xff0c;一些看似不可思议的现象也逐渐浮出水面。比如&#xff0…

海思SD3403/SS928V100开发(16)Tsensor驱动开发

1. 前言 由于需要检测SD3403芯片内部实时温度,需要开发Tsensor传感器驱动和应用 查看手册发现SD3403内部有三个Tsensor传感器 可以参考之前我写的35系列平台Tsensor驱动开发记录 海思35系列平台Tsensor驱动开发(1)驱动编写_t sensor-CSDN博客 海思35系列平台Tsensor驱动…

什么是埋点测试,app埋点测试怎么做?

前言 埋点测试是指在应用程序或网站中预设检查点&#xff0c;收集程序运行时的数据&#xff0c;以便于后续对程序进行性能分析或故障排查。埋点测试通常用于监控和追踪用户在软件产品中的行为&#xff0c;以收集有关用户体验、功能使用情况和潜在问题的数据。这些数据对于软件…

哪些ai取名网站免费?盘点4大好用的ai取名字自动生成器

在忙碌而喧嚣的都市生活中&#xff0c;越来越多人选择养宠物作为自己的精神寄托。当你决定迎接一只新生命回家时&#xff0c;除了准备好食物等必需品外&#xff0c;更重要的是给它起一个既好听又有意义的名字。 然而&#xff0c;有时候想出一个合适的名字并不容易&#xff0c;…

中电金信:稳定运行超百天!业内首个100%全栈国产化手机银行上线

日前&#xff0c;国内首个全栈国产化手机银行-华润银行新一代手机银行已经正式投产超百天&#xff0c;系统运行稳定&#xff0c;性能显著提升&#xff0c;客户体验明显改善&#xff0c;达成了“新理念、新体验、新技术、新底座”的建设目标&#xff0c;整体水平处于行业中上游。…