美文网首页
网易2018实习生招聘笔试题-数据分析实习生(牛客网)

网易2018实习生招聘笔试题-数据分析实习生(牛客网)

作者: kaka22 | 来源:发表于2020-08-17 22:20 被阅读0次

来源 牛客网

1,有2堆宝石,A和B一起玩游戏,假设俩人足够聪明,规则是每个人只能从一堆选走1个或2个或3个宝石,最后全部取玩的人获胜,假设2堆宝石的数目为12和13,请问A怎么可以必胜?

这道题去年找实习的时候就遇到过 DNA又略有不同 这个问题分为两堆 12、13 对于12一定是后手赢 而对于13一定是先手赢 所有如果A先取13中的1个 他一定获胜

2.从数字集合{1,2,3,4,… ,20}中选出4个数字的子集,如果不允许两个相连的数字出现在同一集合中,那么能够形成多少个这种子集?

这道题是利用插空法:20个数取不相邻的4个,可以转换为在16个数形成的序列中插入4个数。 16个数有17个空隙 所以结果为C^4_{17} =2380

3.将4个不一样的球随机放入5个杯子中,则杯子中球的最大个数为3的概率是?

这道题就是 一共有5^4种情况 要想杯中 最大个数为3 就只能3、1、0、0、0的放置 四个球取出3个球为C^3_4 选择一个杯子为C^1_5 最后一个选择四个杯子中的一个C^1_4 最后结果为454/5^4=16/125

4.已知y=f(x)的均差f(x0, x1, x2)=14/3,f(x1, x2, x3)=15/3,f(x2, x3,x4)=91/15,f(x0, x2, x3)=18/3,那么均差f(x4, x2, x3)=( )

这道题其实考察的是牛顿迭代法的差商 但隔了好久已经忘了 有一个性质是
与插值节点的顺序无关 所以f(x4, x2, x3)=f(x2, x3,x4)=91/15

5.一个快递公司对同一年龄段的员工,进行汽车,三轮车,二轮车平均送件量的比较,结果给出sig.=0.034,说明

这道题目其实就是对P值的考察 sig其实就是P值 在\alpha=0.5下, \alpha > p 拒绝原假设 说明有差异

6.小明在一次班干部二人竞选中,支持率为百分之五十五,而置信水平0.95以上的置信区间为百分之五十到百分之六十,请问小明未当选的可能性有可能是

这道题考察的是对置信区间的理解 傻了吧唧的直接选了5% 但其实应该这样考虑
超过95%落在百分之五十到六十 则在50%以下的可能性要低于2.5% 选项中只能选择3%

7.某销售车辆公司某一时间段各类商品的销售量如下图,

销售员需统计以下公式所示数据=SUM(SUMIF(C2:C9,{"<10","<6"})*{1,-1}),请问,该公式返回值为

虽然不太懂excel的函数语法 但是大概也能知道这个的意思是 小于十的城1 小于6的乘-1 最后求和 所以结果为4+5+6+8-4-5 = 14

8.SQL语句执行的顺序是

这道题作为选择题 肯定是以from开始 所以直接就选出了结果
但真实顺序是 from where group by having select

9.随机地掷一骰子两次,则两次出现的点数之和等于8的概率为:

最简单的题目了。。。送分题

10.设随机变量X和Y都服从正态分布,且它们不相关,则( )

独立一定不相关 但是不相关不一定独立
A.只有当(X,Y) 服从二维正态分布时,X与Y不相关⇔X与Y独立,本题仅仅已知X和Y服从正态分布,因此,由它们不相关推不出X与Y一定独立,故A错误;
B.若X和Y都服从正态分布且相互独立,则(X,Y)服从二维正态分布,但题设并不知道X,Y是否独立,故B错误;
C.由A、B分析可知X与Y未必独立,故C正确;
D.需要求X与Y相互独立时,才能推出X+Y服从一维正态分布,故D错误.
故选:C

11.某地区每个人的年收入是右偏的,均值为5000元,标准差为1200元。随机抽取900人并记录他们的年收入,则样本均值的分布为()

题目中的右偏就是糊弄人的 中心极限定理,样本量N只要越来越大,抽样样本n的样本均值会趋近于正态分布,并且这个正态分布以u为均值,sigma^2/n为方差。
所以 近似正态分布,均值为5000元,标准差为40元

12.抽取30个手机用户,计算出他们通话时间的方差。要用样本方差推断总体方差,假定前提是所有用户的通话时间应服从()

一个总体的方差的区间估计其前提条件是总体服从正态分布,在置信水平下的置信区间服从卡方分布
重要的抽样分布定理

13.把黑桃、红桃、方片、梅花四种花色的扑克牌按黑桃10张、红桃9张、方片7张、梅花5张的顺序循环排列。问第2015张扑克牌是什么花色?

2015/31 = 65 所以最后一张应该是梅花

14.命题A:随机变量X和Y独立,命题B:随机变量X和Y不相关。A是B的______条件。

对于二维正态分布来说,不相关<=>独立,互为充分必要条件,这是定理;
对于一维变量,不相关不能推出独立,但是,独立一定不相关。

15.假定树根的高度为0,则高度为6的二叉树最多有_______个叶节点。

2的六次个

16.已知一棵树具有10个节点,且度为4,那么:

这道题有点儿问题
树的度为4,说明树的节点中最高度为4,树一共10个节点,最多的可能就是前面都是一个节点连着一个节点,最后一共节点连4个节点。但本题答案最多为7,貌似是将根节点的高度看做1,其实应该在题目中提一下,不然根节点高度为0,就选B了

17.对于以下关键字{55,26,33,80,70,90,6,30,40,20},增量取5的希尔排序的第一趟的结果是:

希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。
{55,26,33,80,70,90,6,30,40,20} 增量为5, 从55开始每隔5个距离取值分为1组,共分为5组,
分别为{55,90} {26,6}{33,30}{80,40}{70,20}
先组内排序取最小值:55,6,30,40,20,
后取剩余值:90,26,33,80,70
原理看下图十分清晰


18.设二叉排序树中关键字由1到999的整数构成,现要查找关键字为321的节点,下面关键字序列中,不可能出现在二叉排序树上的查找序列是:

二叉排序树的特点就是
若左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值
若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值
左、右子树也分别为二叉排序树

看B选项的最后两个数,321 和 362 比较以后,明显321< 362 ,必然会去寻找362的左子树,此时应该去寻找362的左子树,但是366大于362肯定不是左子树

二叉排序树的算法就是
首先将待查关键字key与根节点关键字t进行比较:
a.如果key = t, 则返回根节点指针。
b.如果key < t,则进一步查找左子书。
c.如果key > t,则进一步查找右子树。

19.用13的瓷砖密铺320的地板有几种方式?

这道题有些难 参考知乎的回答https://www.zhihu.com/question/279344915
f(n)表示用1 * 3的瓷砖密铺3 * n 的地板的方案数。用递推的思维想。
想铺好3 * n,可以先铺3 * (n-1),最后一列竖着铺一块3 * 1;也可以先铺好f(n-3),最后的三快横着铺。那么f(n) = f(n-1)+f(n-3)。需要确定一下发,f(0),f(1),f(2)的值,容易知道,f(0)=f(1)=f(2)=1。接下来可以令n=20,用递推的方式求出f(20)=1278。

更容易理解的看如下图片 来源:牛客网解答

20.有20个人去看电影,电影票50元。其中只有10个人有50元钱,另外10个人都只有一张面值100元的纸币,电影院没有其他钞票可以找零,问有多少种找零的方法?

一脸懵逼 卡特兰数问题
https://www.bilibili.com/video/av48045430?from=search&seid=2957501068077370222
C(n,2n)/(n+1)=C(10,20)/11=16796

21.题目描述
好评率是会员对平台评价的重要指标。现在需要统计2018年1月1日到2018年1月31日,用户'小明'提交的母婴类目"花王"品牌的好评率(好评率=“好评”评价量/总评价量):
用户评价详情表:a
字段:id(评价id,主键),create_time(评价创建时间,格式'2017-01-01'), user_name(用户名称),goods_id(商品id,外键) ,
sub_time(评价提交时间,格式'2017-01-01 23:10:32'),sat_name(好评率类型,包含:“好评”、“中评”、“差评”)
商品详情表:b
字段:good_id(商品id,主键),bu_name(商品类目), brand_name(品牌名称)

select round(sum(if(a.sat_name = "好评", 1,0))/count(*), 2) as '好评率'
from a
join b 
on a.goods_id = b.goods_id
where a.sub_time between '2018-01-01' and '2018-01-31' and 
a.user_name = '小明' and 
b.bu_name like '母婴%'  and
b. brand_name = '花王';

参考答案:

SELECT SUM(CASE
           WHEN sat_time = '好评' THEN 1
           ELSE 0
           END)/COUNT(sat_time) AS "好评率"
FROM a JOIN b ON a.good_id = b.good_id
WHERE user_name = '小明' AND sub_time BETWEEN ('2017-1-1') AND ('2017-1-31')
      AND bu_name ='母婴' AND brand_name = '花王';
  1. 考拉运营"小明"负责多个品牌的销售业绩,请完成:
    (1)请统计小明负责的各个品牌,在2017年销售最高的3天,及对应的销售额。
    销售表 a:
    字段:logday(日期,主键组),SKU_ID(商品SKU,主键组),sale_amt(销售额)
    商品基础信息表 b:
    字段:SKU_ID(商品SKU,主键),bu_name(商品类目),brand_name(品牌名称),user_name(运营负责人名称)
    (2)请统计小明负责的各个品牌,在2017年连续3天增长超过50%的日期,及对应的销售额。

第一问
先两表连接
筛选出由小明运营的2017年的数据
对时间和品牌进行分组 统计出每个品牌每一天的总销售额

select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name;

下面就需要分组排序了
对相同的brand 按照brand_amt进行降序排名

select tmp.logday, tmp.brand_name, tmp.brand_amt,
@rank:= if(tmp.brand_name = @pre_brand, @rank +1, 1) as rank
@pre_brand:= tmp.brand_name
from (select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name as tmp,
(select @pre_brand:=null,@rank:=0) as init
oreder by  tmp.brand_name,  tmp.brand_amt desc

最后只需要选出rank<=3的即可

select tmpp.logday, tmpp.brand_name, tmpp.brand_amt
from (select tmp.logday, tmp.brand_name, tmp.brand_amt,
@rank:= if(tmp.brand_name = @pre_brand, @rank +1, 1) as rank
@pre_brand:= tmp.brand_name
from (select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name as tmp,
(select @pre_brand:=null,@rank:=0) as init
oreder by  tmp.brand_name,  tmp.brand_amt desc) as tmpp
where tmpp.rank <= 3;

习惯用定义变量来做了 如果用窗函数也是可以的
其实就是 对brand_name 进行分组 按照brand_amt降序的行号 即为rank Row_Number() Over(Partition by brand_name Order by brand_amt DESC) As rank

select tmpp.logday, tmpp.brand_name, tmpp.brand_amt
from (select tmp.logday, tmp.brand_name, tmp.brand_amt,
Row_Number() Over(Partition by tmp.brand_name Order by tmp.brand_amt DESC) As rank
from (select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name) as tmp) as tmpp
where tmpp.rank <= 3;

参考答案

SQL CREATE VIEW 语法

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
Create view brand_day_sale as(
Select b.brand_name As brand_name, a.logday As logday, Sum(a.sale_amt) As sale
From a join b on a.SKU_ID=b.SKU_ID
Where b.user_name='小明'
And Year(a.logday) = 2017
Group by b.brand_name, a.logday);
  
Select t.brand_name, t.logday, t.sale
From
(Select brand_name, logday, Row_Number() Over(Partition by brand_name Order by sale DESC) As rank, sale
From brand_day_sale
Order by brand_name, sale DESC) t
Where rank <= 3;

第二问
与第一问第一步一致

select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name;

然后三个以上的临时表按时间差连接

select t1.brand_name, t1.logday, 
from (select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name) as t1
join (select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name) t2
on t1.brand_name = t2.brand_name and datediff(t1.logday, t2.logday) = 1
join (select a.logday, b.brand_name, sum(a.sale_amt) as brand_amt
from a
join b 
on a.SKU_ID = b. SKU_ID
where b.user_name = '小明' and year(a.logday) = 2017
group by a.logday asc, b.brand_name) as t3
on t1.brand_name = t3.brand_name and datediff(t1.logday, t3.logday) = 2
where t1.brand_amt/t2.brand_amt >=1.5
and t2.brand_amt/t3.brand_amt >=1.5;

23.考拉海购始终以用户为中心,为用户提供高品质的商品,帮助用户“用更少的钱,过更好的生活”。为了满足不同用户的需求(比如新客户的要求可能跟老客户不同,流失客户需要特殊的关怀) ,请你设计一套具体的方案,合理划分不同用户,并能给出相应的建议。

从以下三个维度划分用户,即每个用户都将被打上以下三种标签
1、新老客标签
用户设备ID是否第一次出现来区分用户是新客还是老客,对于新客可进行新客指引及提供新客首单优惠活动等
2、人群标签
枚举值:男性、70后及70前女性、80后女性、90后女性
此标签数据来源于用户个人填写信息及其行为
各大人群偏好品牌及品类不同,可进行个性化推荐,如给男性推荐男装、运动品牌,给70后女性推荐家居品类,给80后女性推荐母婴产品,90后女性推荐化妆品等,当然这个运营人群标签可根据用户浏览/购买历史进行细化,如有女性用户浏览或购买过母婴品类,即可将其归于80后女性-已婚-有小孩
3、活跃状态标签
根据用户购买情况确定其活跃状态,如30天内有订单视为活跃用户,80天内有订单为高危用户,160天内无订单而有历史订单为流失用户等
枚举值:活跃、高危、沉睡、流失、注册未购买
对于活跃及高危人群可根据其行为推荐偏好品牌以刺激消费
对于沉睡、流失用户可进行push或短信推送优惠券及活动预告
对于注册未购买的用户则可进行相关提示,如购买首单优惠等信息

对于网易考拉老用户,我们可以利用RFM模型进行用户分层,R:最近一次消费Recency;F:消费频次(Frequency);M:Montary消费金额。



我们根据历史日志数据,我们能够找出产品内用户隶属于以上8类中的哪一类,然后指定可以针对性的制定运营策略。
对于新用户,我们可以进行push推动首单红包或者相关活动消息促活。

  • 高价值高活跃用户:根据二八定律,这类用户为公司贡献了巨大的利润,同时有着高的活跃度,体现了对公司的忠诚度。由于用户高价值的属性,一般更看重产品的质量以及售后服务是否周到,因此可以通过push以及短信推荐高质量的产品并且在售后方面有对应的VIP通道;
  • 高价值低活跃用户:这类用户虽然利润高,但是不太活跃,有流失的危险,分析用户行为以及竞品分析得到低活跃度的原因;推送给用户喜欢的产品。
  • 高价值流失用户:分析用户使用习惯,通过优惠激励和登陆有奖使之回流,同时增加用户粘性
  • 低价值高活跃用户:虽然客单价不高,但是往往是一个app活跃度的最大贡献群体,通过登陆有奖、游戏激励以及优惠活动增加用户粘性
  • 低价值低活跃用户:分析低使用度的原因,防止其他群体向这一群体倾斜
  • 低价值流失用户:加强召回机制,增加用户回流。

相关文章

网友评论

      本文标题:网易2018实习生招聘笔试题-数据分析实习生(牛客网)

      本文链接:https://www.haomeiwen.com/subject/hfpgrktx.html