数据挖掘顺丰科技2022年秋招大数据挖掘与分析工程师笔试题

Posted Better Bench

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据挖掘顺丰科技2022年秋招大数据挖掘与分析工程师笔试题相关的知识,希望对你有一定的参考价值。

顺丰科技2022年秋招大数据挖掘与分析工程师笔试题
笔试时间:2022-9-7

1 不定项选择题

1、python中_thread 和threading的区别

解析:

  • _thread模块提供了基本的线程和锁支持;threading提供的是更高级的完全的线程管理。

  • threading它更先进,有完善的线程管理支持,此外,在thread模块的一些属性会和threading模块的这些属性冲突。

  • _thread模块有很少的同步原语,而threading却有很多。

  • _thread模块没有很好的控制,特别当你的进程退出时。

  • threading会允许默认,重要的子线程完成后再退出,它可以特别指定daemon类型的线程。

2、数据库一级封锁协议,修改前加什么锁?

答案:X锁

在运用X锁(排它锁,可以读写,不能加任和锁)和S锁(共享锁,可以读,只能加X锁)对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁、持锁时间、何时释放等。称这些规则为封锁协议(Locking Protocol)。对封锁方式规定不同的规则,就形成了各种不同的封锁协议。不同的封锁协议,在不同的程度上为并发操作的正确调度提供一定的保证。
  
(1)一级封锁协议
  
一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。
  
一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。
  
在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。
  
(2)二级封锁协议
  
二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。
  
二级封锁协议除防止了丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。
  
(3)三级封锁协议
  
三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
  
三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。

3、图邻接表示法的空间复杂度是否与顶点和边有关?

答案:都有关

空间复杂度为O(n+e),用数组模拟的邻接表是O(n+e) 的,需要保存每个节点相邻的第一条边的编号O(n),以及这条边下一条边的编号O(e)。时间复杂度也为O(n+e)

若采用邻接矩阵存储,时间复杂度为O(n^2)

4、错误的是?

A、正态分布经过线性变换后仍为正态分布

B、泊松分布的随机变量是无记忆的,即前后无关

C、单次抛硬币属于二项分布

答案:C,单次抛硬币是伯努利分布,多次抛硬币是二项分布

5、X和Y的概率如下,求E(XY)

YXXXX
0123
103/83/80
31/8001/8

答案:E(XY) =E(X)E(Y) = ∑ i = 0 3 x i P ( x i ) × ∑ i = 0 3 y i P ( y i ) = 3 2 × 3 2 = 9 4 \\sum_i=0^3x_iP(x_i) ×\\sum_i=0^3y_iP(y_i) = \\frac32× \\frac32 = \\frac94 i=03xiP(xi)×i=03yiP(yi)=23×23=49

6、考查SQL,有四个字段,利用的group by with cube,返回多少条数据?

答案:16

解析:CUBE运算符是在Select语句的group by子句中指定的,group by应指定维度列和关键字with cube,结果集将包括维度列中各值的所有可能组合

7、强连通图20个顶点,最多有多少条边?

答案:e= (n-1)n= 280

强连通图是有向图,两个顶点,最多有两条边。

8、128个元素个数,二分查找最大比较次数?

答案:7

最小比较次数为1

最大比较次数为log2(n) + 1 向下取整

9、sql 字段判断为空的代码?

答案: select * from table(表名) where 字段is null or trim(字段)=‘’

10、MLP 从输入层为5,有3个隐藏层,神经元最大连接数是多少?

答案:5×5×5 = 125

11、最小二乘直线拟合的情况使用什么偏移?

答案:垂直偏移

12、信号量为什么时,进程阻塞?

答案:若信号量为0,进程则会进入阻塞

13、不能用动态规划解决的问题是?

A、0-1背包问题

B、最短路径问题

C、资源分配问题

D、库存管理问题

答案:D

14、hive 中求表中样本数的累计值,用到的方法有

A、sum() over()

B、partition by

C 、忘了

解析:partition by用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组

15、排序算法空间复杂度不是O(1)的是?

A、插入排序

B、桶排序

C、希尔排序

D、堆排序

答案:D

16、一间柴房30年发生3次火灾,猫平均每晚上叫2次,火灾时猫叫的概率为0.7,猫叫发生火灾的概率是多少?

答案: 0.00671233

解析:

A :猫叫

B:被盗

题目求:P(B|A)
P ( A ) = 2 7 P ( B ) = 3 365 ∗ 30 P ( A ∣ B ) = 0.7 P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) = 0.00671233 P(A) = \\frac27\\\\ P(B) = \\frac3365*30\\\\ P(A|B) = 0.7\\\\ P(B|A) =\\fracP(A|B)P(B)P(A) = 0.00671233 P(A)=72P(B)=365303P(AB)=0.7P(BA)=P(A)P(AB)P(B)=0.00671233

17、甲乙两人比射箭,射中的概率0.5,甲射了101,乙射了100,求甲射中比乙次数多的概率是?

解析:1/2

链接:https://www.nowcoder.com/questionTerminal/cb32d803d4314d9293f0310227a88d15
来源:牛客网

  1. 甲乙各100箭时,有三种情况,甲多,乙多,一样多,概率分别设t, t, (1-2t),至于t是多少不重要往下看。

  2. 如果第一步的结果是甲多,剩下一箭不影响结果,概率是t。

  3. 如果第一步的结果是一样多,现在就要看最后一箭,甲有1/2的概率赢,也就是(1-2t)/2。

  4. 前面两种情况相加,结果是1/2。

18、按流水的级别可以把流水线分为?

A、 处理机间流水线

B、部件功能级流水线

C、处理机级流水线

答案:A,B,C

19、TDD 依赖的原则是什么?

答案:依赖倒置原则(Dependence Inversion Principle,DIP)

解析:TDD(Test-Driven Development,测试驱动开发)开发模式就是依赖倒置原则的最高级应用。

20、二叉树,度为1的有17个,度为2的有13个,度为0的有?

答案:14个

解析:n0 = n2+1

21、http状态码 。什么码表示访问成功,什么码表示错误?

答案:2** 和4**

1**信息,服务器收到请求,需要请求者继续执行操作
2**成功,操作被成功接收并处理
3**重定向,需要进一步的操作以完成请求
4**客户端错误,请求包含语法错误或无法完成请求
5**服务器错误,服务器在处理请求的过程中发生了错误

22、由进程调度引起的状态切换是?

答案:就绪状态->执行状态

解析:进程的三种基本状态包括:就绪状态,执行状态,阻塞状态

处于就绪状态的进程,当进程调度程序按一种选定的策略选中一个就绪状态的进程,为它分配处理机后进程便可执行,状态转为执行状态。 【就绪状态——(进程调度)——执行状态】。

23、队列在队尾的操作的有什么?

答案:只有插入,没有删除,删除在队首

24、IP地址为192.168.78.66,子网掩码为255.255.240.0,则目的地址为?

25、硬币面值为1,5,11,要凑出15,贪心算法求解时,需要的硬币数为?

答案:3

1个11,4个1,共5个

3个5,共3个

2个5,5个1,共7个

解析:参考:https://juejin.cn/post/7073268824019533831

26、没有触发器的操作是?

A、更新Update

B、插入INsert

C、删除Delete

D、查询Select

答案:D

27、2020年有2072亿元收入,同比增长3.45%,增速较上年放缓2.8个百分点。则2019年收入是多少亿元?

答案:2072/(1+3.45%) = 1540.52

28、正规式(1|4|6)(104)(a|b)表达的元素是,正规的是?

A、4104a

答案:从1、4、6中选一个元素,104不变,从a和b中选一个

29、J2EE 的四层模型

运行在客户端机器上的客户层组件

运行在J2EE服务器上的Web层组件

运行在J2EE服务器上的业务逻辑层组件

运行在EIS服务器上的企业信息系统层软件

2 编程题

(1)题目

是求以下递归的函数调用次数
f u n c ( n ) = 1 n < = 3 f ( n − 1 ) + f ( n − 2 ) + f ( n − 3 ) n > 3 func(n) =\\left\\ \\beginaligned 1 & & n<=3 \\\\ f(n-1)+f(n-2)+f(n-3) & & n>3 \\\\ \\endaligned \\right. func(n)=1f(n1)+f(n2)+f(n3)n<=3n>3
输出一行,包含一个整数,表示在求func( n )过程中,func函数被调用的总次数。不必考虑计算过程中产生的数字溢出等问题。由于答案可能很大,故输出答案对1000000007取模所得值即可。

(2)思路
动态规划,来做,有这种重复计算,涉及备忘录,那就考虑dp。
状态:递归次数
装填转移:
d p [ i ] = d p [ i − 1 ] + d p [ i − 2 ] + d p [ i − 3 ] + 1 , i > 3 dp[i] = dp[i-1]+dp[i-2]+dp[i-3]+1 ,i>3 dp[i]=dp[i1]+dp[i2]+dp[i3]+1,i>3
python 实现

def func(n):
    dp = [0]*n
    dp[0] = 1
    dp[1] = 1
    dp[2] = 1
    for i in range(3,n):
        dp[i] =dp[i-1]+dp[i-2]+dp[i-3]+1
    return dp[n-1]
    
n = 2000
count = func(n)
print(count%(1e9+7))

以上是关于数据挖掘顺丰科技2022年秋招大数据挖掘与分析工程师笔试题的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode刷题Python高效求递归中函数的调用次数(动态规划方法,顺丰笔试题)

顺丰删库工程师遭开除,难道他不会恢复误删数据?

校招实习面试实战,顺丰科技Java工程师面试复盘总结

从删库到恢复到跑不了路-数据恢复工程师解说顺丰删库事件

顺丰科技的web前端工程师使用的技术栈是怎样的?

双非本科2022年秋招总结(Java后端开发岗)