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

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
全局流量管理 GTM,标准版 1个月
简介: 顺丰科技2022年秋招大数据挖掘与分析工程师笔试题解析,涵盖了多领域选择题和编程题,包括动态规划、数据库封锁协议、概率论、SQL、排序算法等知识点。

顺丰科技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)

Y X X X X
0 1 2 3
1 0 3/8 3/8 0
3 1/8 0 0 1/8

答案:$E(XY) =E(X)E(Y) = ∑ i = \sum_{i=0}^3x_iP(x_i) ×\sum_{i=0}^3y_iP(y_i) = \frac{3}{2}× \frac{3}{2} = \frac{9}{4}​$

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)
11.png

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)题目

是求以下递归的函数调用次数
2.png

输出一行,包含一个整数,表示在求func( n )过程中,func函数被调用的总次数。不必考虑计算过程中产生的数字溢出等问题。由于答案可能很大,故输出答案对1000000007取模所得值即可。

(2)思路
动态规划,来做,有这种重复计算,涉及备忘录,那就考虑dp。
状态:递归次数
装填转移:
$$dp[i] = dp[i-1]+dp[i-2]+dp[i-3]+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))
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
13天前
|
SQL 消息中间件 分布式计算
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析
50 5
|
8天前
|
存储 SQL 分布式计算
湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
【10月更文挑战第7天】湖仓一体架构深度解析:构建企业级数据管理与分析的新基石
12 1
|
12天前
|
消息中间件 druid 大数据
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(二)
21 2
|
12天前
|
消息中间件 分布式计算 druid
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
大数据-153 Apache Druid 案例 从 Kafka 中加载数据并分析(一)
36 1
|
10天前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
|
12天前
|
存储 机器学习/深度学习 分布式计算
大数据技术——解锁数据的力量,引领未来趋势
【10月更文挑战第5天】大数据技术——解锁数据的力量,引领未来趋势
|
13天前
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
38 3
|
12天前
|
SQL 消息中间件 大数据
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(一)
30 1
|
12天前
|
SQL 大数据 Apache
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
大数据-159 Apache Kylin 构建Cube 准备和测试数据(二)
43 1
|
12天前
|
分布式计算 监控 大数据
大数据-148 Apache Kudu 从 Flink 下沉数据到 Kudu
大数据-148 Apache Kudu 从 Flink 下沉数据到 Kudu
38 1