精华内容
下载资源
问答
  • 数据分析笔试

    千次阅读 2017-09-09 11:18:13
    最近也进行了几场数据分析笔试,看到了这篇文章总结的知识点,还是比较常考的。 文章地址:http://dy.163.com/v2/article/detail/C484KJCU05119G2C.html 知识点1:贝叶斯公式  贝叶斯公式:P(B|A)=P(A|B)*P(B)...

    最近也参加了几场数据分析的笔试,看到了这篇文章总结的知识点,还是比较常考的。

    文章地址:http://dy.163.com/v2/article/detail/C484KJCU05119G2C.html

    知识点1:贝叶斯公式

      贝叶斯公式:P(B|A)=P(A|B)*P(B)/P(A)

      其中P(A)可以展开为

      P(A)=P(A|B1)P(B1)+P(A|B2)P(B2)+…+P(A|Bn)*P(Bn)

      (这在很多问答题或者选择题中都有用到)

    知识点2:关联规则分析

      主要考的是支持度和置信度。

    知识点3:聚类

      聚类之间类的度量是分距离和相似系数来度量的,距离用来度量样品之间的相似性(K-means聚类,系统聚类中的Q型聚类),相似系数用来度量变量之间的相似性(系统聚类中的R型聚类)。

      最常用的是K-means聚类,适用于大样本,但需要事先指定分为K个类。

      处理步骤:

      1)、从n个数据对象中任意选出k个对象作为初始的聚类中心

      2)、计算剩余的各个对象到聚类中心的距离,将它划分给最近的簇

      3)、重新计算每一簇的平均值(中心对象)

      4)、循环2-3直到每个聚类不再发生变化为止。

      系统聚类适用于小样本。

    知识点4:分类

      有监督就是给的样本都有标签,分类的训练样本必须有标签,所以分类算法都是有监督算法。

      监督机器学习问题无非就是“minimizeyour error while regularizing your parameters”,也就是在规则化参数的同时最小化误差。最小化误差是为了让我们的模型拟合我们的训练数据,而规则化参数是防止我们的模型过分拟合我们的训练数据,提高泛化能力。

      1.朴素贝叶斯

      1)基础思想:

      对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此分类项属于哪个类别。

      2)优点:

      可以和决策树、神经网络分类算法相媲美,能运用于大型数据库中。

      方法简单,分类准确率高,速度快,所需估计的参数少,对于缺失数据不敏感。

      3)缺点:

      假设一个属性对定类的影响独立于其他的属性值,这往往并不成立。(喜欢吃番茄、鸡蛋,却不喜欢吃番茄炒蛋)。

      需要知道先验概率。

      2.决策树

      1)基础思想:

      决策树是一种简单但广泛使用的分类器,它通过训练数据构建决策树,对未知的数据进行分类。决策树的每个内部节点表示在一个属性上的测试,每个分枝代表该测试的一个输出,而每个叶结点存放着一个类标号。

      在决策树算法中,ID3基于信息增益作为属性选择的度量,C4.5基于信息增益比作为属性选择的度量,CART基于基尼指数作为属性选择的度量。

      2)优点 :

      不需要任何领域知识或参数假设。

      适合高维数据。

      简单易于理解。

      短时间内处理大量数据,得到可行且效果较好的结果。

      3)缺点:

      对于各类别样本数量不一致数据,信息增益偏向于那些具有更多数值的特征。

      易于过拟合。

      忽略属性之间的相关性。

      3.支持向量机

      1)基础思想:

      支持向量机把分类问题转化为寻找分类平面的问题,并通过最大化分类边界点距离分类平面的距离来实现分类。

      2)优点 :

      可以解决小样本下机器学习的问题。

      提高泛化性能。

      可以解决文本分类、文字识别、图像分类等方面仍受欢迎。

      避免神经网络结构选择和局部极小的问题。

      3)缺点:

      缺失数据敏感。

      内存消耗大,难以解释。

      4.K近邻

      1)基础思想:

      通过计算每个训练样例到待分类样品的距离,取和待分类样品距离最近的K个训练样例,K个样品中哪个类别的训练样例占多数,则待分类样品就属于哪个类别。

      2)优点 :

      适用于样本容量比较大的分类问题

      3)缺点:

      计算量太大

      对于样本量较小的分类问题,会产生误分。

      5.逻辑回归(LR)

      1)基础思想:

      回归模型中,y是一个定型变量,比如y=0或1,logistic方法主要应用于研究某些事件发生的概率。

      2)优点 :

      速度快,适合二分类问题。

      简单易于理解,直接看到各个特征的权重。

      能容易地更新模型吸收新的数据。

      3)缺点:

      对数据和场景的适应能力有局限,不如决策树算法适应性那么强

    知识点5:分类的评判指标

      准确率和召回率广泛用于信息检索和统计分类领域

      1)准确率(precision rate):提取出的正确信息条数/提取出的信息条数

      2)召回率(recall rate):提取出的正确信息条数/样本中的信息条数

      ROC和AUC是评价分类器的指标

      3)ROC曲线:

      ROC关注两个指标

      True Positive Rate ( TPR,真正率 ) = TP / [ TP + FN] ,TPR代表预测为正实际也为正占总正实例的比例

      False Positive Rate( FPR,假正率 ) = FP / [ FP + TN] ,FPR代表预测为正但实际为负占总负实例的比例

      在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR

      4)AUC:AUC(Area Under Curve)

      被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而AUC作为数值可以直观的评价分类器的好坏,值越大越好。

      5)如何避免过拟合?

      过拟合表现在训练数据上的误差非常小,而在测试数据上误差反而增大。其原因一般是模型过于复杂,过分得去拟合数据的噪声和outliers。

      常见的解决办法是正则化是:增大数据集,正则化

      正则化方法是指在进行目标函数或代价函数优化时,在目标函数或代价函数后面加上一个正则项,一般有L1正则与L2正则等。规则化项的引入,在训练(最小化cost)的过程中,当某一维的特征所对应的权重过大时,而此时模型的预测和真实数据之间距离很小,通过规则化项就可以使整体的cost取较大的值,从而在训练的过程中避免了去选择那些某一维(或几维)特征的权重过大的情况,即过分依赖某一维(或几维)的特征。

      L1正则与L2正则区别:

      L1:计算绝对值之和,用以产生稀疏性(使参数矩阵中大部分元素变为0),因为它是L0范式的一个最优凸近似,容易优化求解;

      L2:计算平方和再开根号,L2范数更多是防止过拟合,并且让优化求解变得稳定很快速;

      所以优先使用L2 norm是比较好的选择。

    知识点6:二叉树(前、中、后遍历)

      (这里的前中后是指的根节点的遍历次序)

      1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树;

      2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树;

      3)后序遍历(LRD),首先遍历左子树,然后访问遍历右子树,最后访问根结点。

      

    知识点7:几种基本排序算法

      1)冒泡排序(Bubble Sort)

      冒泡排序方法是最简单的排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。

      冒泡排序是稳定的。算法时间复杂度是O(n^2)。

      2)插入排序(Insertion Sort)

      插入排序的基本思想是,经过i-1遍处理后,L[1..i-1]己排好序。第i遍处理仅将L[i]插入L[1..i-1]的适当位置,使得L[1..i]又是排好序的序列。

      直接插入排序是稳定的。算法时间复杂度是O(n^2)。

      3)堆排序

      堆排序是一种树形选择排序,在排序过程中,将A[n]看成是完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系来选择最小的元素。

      堆排序是不稳定的。算法时间复杂度O(nlog n)。

      4)快速排序

      快速排序是对冒泡排序的一种本质改进。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,右边各数都比它大。

      快速排序是不稳定的。最理想情况算法时间复杂度O(nlog2n),最坏O(n ^2)。

    知识点8:SQL知识

      1)左连接、右连接、inner连接,full连接

      2)修改表:

      alter table 教师 add 奖金 int

      alter table 教师 drop 奖金

      alter table 教师 rename 奖金 to 津贴

      3)表权限的赋予:

      

      4)怎样清空表数据,但不删除表结构

      delete from tablename或者delete * from table_name

      truncate table tablename

      5)外键能不能为空

      外键可以为空,为空表示其值还没有确定;

      如果不为空,刚必须为主键相同。

    知识点9:统计学基础知识

      1)四分位极差、左右偏分布、p值

      2)方差分析:

      用于两个及两个以上样本均数差别的显著性检验,基本思想是:通过分析研究不同来源的变异对总变异的贡献大小,从而确定控制变量对研究结果影响力的大小。

      3)主成分分析:

      是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量,转换后的这组变量叫主成分。

      4)幸存者偏差:

      意思是指,当取得资讯的渠道,仅来自于幸存者时(因为死人不会说话),此资讯可能会存在与实际情况不同的偏差。

      原文地址:http://www.dashengzb.cn/articles/a-263.html

    展开全文
  • 数据分析笔试经典sql题解

    千次阅读 2020-03-05 19:57:34
    前言:sql是数据分析师笔试必考的考点之一,常考的题型有行列转换...下面分享几道数据分析笔试中常考的经典sql题。(本文默认大家了解窗口函数语法) 1、行列转换(京东数据分析笔试题) 表sales year m1 ...

     

    欢迎关注微信公众号:开心数据

    前言:sql是数据分析师笔试必考的考点之一,常考的题型有行列转换、联表查询,这些都比较简单,一般考的最难的就是hivesql窗口函数联表查询,普通的聚合函数每组(Group by)只返回一个值,而窗口函数则可为窗口中的每行都返回一个值。常考的窗口函数也就那几个,也是数据分析工作中经常用到的,row_number、rank、dense_rank(要搞清楚他们的区别),以及ntile,lead等等。下面分享几道数据分析笔试中的经典sql题。(本文默认大家了解窗口函数语法)

    1、行列转换(京东数据分析笔试题)

    表sales

    yearm1m2m3m4
    19911.11.21.11.3
    19921.21.31.31.4

    请转换成这个样子

    yearmonthamount
    199111.1
    199121.2
    199131.1
    199141.3
    199211.2
    199221.3
    199231.3
    199241.4

    参考题解:

    select * from(
    select year,case when m1 then 1 else null end month,m1 amount from sales
    union all 
    select year,case when m2 then 2 else null end month,m2 amount from sales
    union all
    select year,case when m3 then 3 else null end month,m3 amount from sales
    union all 
    select year,case when m4 then 4 else null end month,m4 amount from sales)t
    order by year,month

     

    2、某外卖平台交易表user_goods_table有如下字段

    • user_name
    • goods_kind  外卖种类

    求每个用户购买外卖品类的偏好分布,并取出每个用户购买最多的外卖品类

    这就需要用到窗口函数,每一行返回一个聚合值

    参考题解

    select a.user_name,a.goods_kind from (
    select user_name,goods_kind,
           row_number() over(partition by user_name order by count(goods_kind) desc) r
    from user_goods_table)a
    where a.r=1
    

     

    3、连续7天登陆的客户

    login_users 有如下字段

    • uid
    • logdate

    关键在于如何判断连续,利用窗口函数row_number,对uid分组排序后,用登陆日期减去排序的序号,如果是连续的话,那得到的日期flag_date就会相同,再利用uid和falg_date分组并求和,再筛选出大于7的就行

    参考题解

    select t1.uid,count(1) as cnt from (
    select uid,logdate,rank,date_sub(t.logdate,t.rank) as flag_date from(
    select uid,logdate, row_number() over(partition by uid order by logdate ) as rank from 
    login_users)t)t1
    group by t1.uid ,flag_date having cnt>=7
    

     

    4、某顶尖支付平台交易表sales字段user_name,amount,求支付金额在前20%的用户

    参考题解:

    select b.user_name from
    (select user_name,
           ntile(5) over(partition by user_name order by sum(amount) desc) as level
    from sales )b
    where b.level=1
    

     

    5、以下两张表

    1、统计每个类目每天的成交店铺数、成交额和用户均成交额

    2、统计2019-06-25当天每个类目成交额前10%的店铺清单(类目/店铺ID/成交额)

    参考题解1:关联的时候注意关联条件有两个,date和mall_id

    select a.date,b.cate,count(1),sum(gmv),avg(gmv)
    from mall_gmv_1d a
    left join  mall_cate_1d b
    on a.date = b.date and a.mall_id = b.mall_id
         where gmv > 0
         group by a.date,b.cate
    

    参考题解2:

    select t.date,t.mall_id,t.total from(
    select a.mall_id,b.cate,sum(a.gmv) total,
           ntile(10) over(partition b.cate order by sum(gmv) desc) r
    from mall_gmv_1d  a
    left join mall_cate_1d b
    on a. mall_id=b.mall_id
    where a.date='2019-06-25'
    group by a.mall,b.cate)t
    where t.r=1

     

    展开全文
  • 中国电信数据分析笔试题.pdf_python面试
  • 数据分析笔试

    千次阅读 2020-03-06 19:56:00
    数据分析笔试题 网易数据分析 1. 通常可以通过关联规则挖掘来发现啤酒和尿布的关系, 那么如果对于一条规则A →B, 如果同时购买A和B的顾客比例是4/7, 而购买A的顾客当中也购买了B的顾客比例是1/2, 而购买B的顾客当中...

    数据分析笔试题

    网易数据分析

    1. 通常可以通过关联规则挖掘来发现啤酒和尿布的关系, 那么如果对于一条规则A →B, 如果同时购买A和B的顾客比例是4/7, 而购买A的顾客当中也购买了B的顾客比例是1/2, 而购买B的顾客当中也购买了A的顾客比例是1/3,则以下对于规则A →B的支持度(support)和置信度(confidence)分别是多少?
    知识点
    关联规则 支持度 置信度
    笔记
    关联规则:反映一个事物与其他事物之间的相互依存性和关联性
    常用的频繁项集的评估标准有支持度,置信度和提升度
    支持度:几个关联的数据在数据集中出现的次数占总数据集的比重,即项集出现的比例
    支持度
    置信度:一个数据出现后,另一个数据出现的概率,即条件概率
    在这里插入图片描述
    提升度:表示含有Y的条件下,同时含有X的概率,与X总体发生的概率之比
    在这里插入图片描述
    解答
    本体中规则A →B的支持度是同时购买AB的比例,即4/7,置信度是购买A的人中购买B的比例,即1/2

    2.设{xn}服从独立同分布, E[xn] = 0, Var[xn]=1, 则当n趋向于无穷大时,下式值为:
    在这里插入图片描述
    知识点 概率论
    分析
    独立同分布,相关系数为0,对式子取期望
    E(X2)=E2(X)+Var(X)=1;
    E(Xi, Xi+1)=0;

    3.最小二乘估计是线性无偏估计中方差最小的
    知识点 无偏估计 最小二乘

    4.小明在一次班干部二人竞选中,支持率为百分之五十五,而置信水平0.95以上的置信区间为百分之五十到百分之六十,请问小明未当选的可能性有可能是
    知识点 统计 假设检验
    分析
    置信水平0.95以上的置信区间为50%-60%,则区间[0%, 50%]⋃[60%,100%]的概率为5%。
    仅当落在区间区间[0%, 50%]时,小明落选,则概率为
    (50-0)((50-0)+(100-60) * 5% = 5/9 * 5% ≈ 2.78% ≈ 3%
    双尾 双尾5% 单尾肯定小于5%

    5.一个快递公司对同一年龄段的员工,进行汽车,三轮车,二轮车平均送件量的比较,结果给出sig.=0.034,说明
    知识点 假设检验 统计
    分析
    p值表示接受原假设最小的显著性水平,p值越小,拒绝原假设的理由越充分

    6.以下关于python数据结构说法正确的是
    知识点 tuple dict list
    笔记
    list
    1.列表(链表的数据结构)有序的项目, 通过索引进行查找,使用方括号”[]”
    2.list可以动态更新,也可以进行嵌套.
    tuple
    1.将整个元素集是用小括号括起来,是有序集合
    2.tuple是不可变的list,创建了一个tuple就不能以任何方式改变它
    3.没有 append、extend、remove或pop方法以及index方法
    dict
    1.整个元素集合用大括号括起来,有序集合
    2.键可以是数字、字符串或者是元组等不可变类型
    set
    1.set是建立一系列无序的,不重复的元素
    2.创建set的方式是调用set()并传入一个list,list的元素将作为set的元素set([])
    注意 python3.6后的版本,dict中的键值对是有序的,之前版本无序

    7.若要在员工信息表EMP中增加一列WANGYI_NO(网易id),可用( )
    在这里插入图片描述
    8.对于SQL语句select * from t where a=100 and b=200,哪个索引可以使用到()
    在这里插入图片描述
    知识点 SQL 索引
    笔记
    1.复合索引:Mysql从左到右的使用索引中的字段,一个查询可以只使用索引中的一部份,但只能是最左侧部分。例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找 .当最左侧字段是常量引用时,索引就十分有效
    2. sql条件查询+排序 适合加索引

    9.哪个不是DDL(数据库定义语言)语句?
    知识点 数据库语言类型
    笔记
    DDL语法:
    创建:create
    删除:drop
    修改:alter
    修改表名:rename table 旧表名 to 新表名
    数据库控制语言DCL
    grant授权

    10.截取logfile文件中含有suc的行,并且只输出最后一列,下列操作正确的是:
    在这里插入图片描述
    知识点 linux grep awk
    germ
    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来
    1.-o 只输出文件中匹配到的部分
    2.匹配符 *
    在这里插入图片描述3.通过"-v"参数可以打印出不符合条件行的内容
    awk
    常用形式awk ‘{pattern + action}’ {filenames}
    pattern 表示 AWK 在数据中查找的内容,而 action 是在找到匹配内容时所执行的一系列命令
    awk ‘{print $NF}’ : 打印每行中的最后一个字段

    11.将当前命令sh test.sh任务在后台执行,下列最优雅的的做法是
    在这里插入图片描述
    知识点
    Linux
    分析
    nohup (no hang up)命令
    用途:不挂断地运行命令。
    语法:nohup Command [ Arg … ] [ & ]
    例子: nohup sh example.sh &
    描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示”and”的符号)到命令的尾部

    12.将一个整数序列整理为升序,两趟处理后序列变为10,12,21,9,7,3,4,25,则采用的排序算法可能是________。在这里插入图片描述
    知识点 排序算法
    笔记

    1. 冒泡:i*j 两两比较,小的放前
    2. 选择:i*j两两比较,遍历j后,找到最小的放前面
    3. 插入:默认第一个排好序(只有一个,也没得比较),第一步:第二个与第一个比较排序;第二步:第三个插入前面排好序的序列;第三步,第四个插入前面的序列,以此类推
    4. 希尔:类似插入排序,但第一步:分i//2堆(随机分配)同步进行插入排序(第一堆排完,再第二堆,再第三堆…);第二步:分i//4堆依次排;…最后一步:一整堆进行插入排序,耗时i;
    5. 归并:分而治之,dynamic programming
    6. 快排:定义分区函数,主函数递归排序
    7. 堆排:建立二叉树,树内排序,找到最大值取出,更新树,再取出第二大的数…以此类推
    8. 计数:不用比较,牺牲空间换时间,开辟key为min到max的数组,遍历原序列,统计数的个数;再对key按顺序输出即可。
    9. 桶排:计数排序的升级,计数用了max-min+1个桶,桶排序用k个桶(数量更少),桶内排好序(用传统方法,或递归用桶排),再对桶按顺序输出即可。
    10. 基数:同样基于计数排序,先按个位数入列(0-9个列),排好第一步;再按十位数入列,排好第二步;…依次到最大位数入列,排好输出即可。
      分析
      插入排序:第n趟前n+1个有序
      选择排序:第n趟前n个位置正确
      快速排序:第n趟有n个元素位置正确
      堆排序:第n趟前或后n个位置正确

    13.若有33个长度不等的初始归并段,做7路平衡归并排序,为组织最佳归并树,应增加长度为0的初始归并段的个数是________。
    在这里插入图片描述
    知识点 平衡归并排序
    笔记
    1.插入排序、选择排序、归并排序等等,这些算法都属于内部排序算法,即排序的整个过程只是在内存中完成
    2.当待排序的文件比内存的可使用容量还大时,文件无法一次性放到内存中进行排序,需要借助于外部存储器(例如硬盘、U盘、光盘),这时就需要外部排序算法来解决
    3.外部排序算法由两个阶段构成:
    按照内存大小,将大文件分成若干长度为 l 的子文件(l 应小于内存的可使用容量),然后将各个子文件依次读入内存,使用适当的内部排序算法对其进行排序(排好序的子文件统称为“归并段”或者“顺段”),将排好序的归并段重新写入外存,为下一个子文件排序腾出内存空间;
    对得到的顺段进行合并,直至得到整个有序的文件为止。
    4.例如:有 10 个初始归并段到一个有序文件,共进行了 4 次归并,每次都由 m 个归并段得到 ⌈m/2⌉ 个归并段,这种归并方式被称为 2-路平衡归并
    5.对于外部排序算法来说,影响整体排序效率的因素主要取决于读写外存的次数,即访问外存的次数越多,算法花费的时间就越多,效率就越低。
    6.一般情况下对于具有 m 个初始归并段进行 k-路平衡归并时,归并的次数为:s=⌊logk⁡m ⌋(其中 s 表示归并次数)
    7.对于如何减少访问外存的次数的问题,就等同于考虑如何使 k-路归并所构成的 k 叉树的带权路径长度最短
    8.若想使树的带权路径长度和最短,就是构造赫夫曼树,通过以构建赫夫曼树的方式构建归并树,使其对读写外存的次数降至最低(k-路平衡归并,需要选取合适的 k 值,构建赫夫曼树作为归并树)。所以称此归并树为最佳归并树。
    9.在一般情况下,对于 k–路平衡归并来说,若 (m-1)MOD(k-1)=0,则不需要增加虚段;否则需附加 k-(m-1)MOD(k-1)-1 个虚段

    14.将4个不一样的球随机放入5个杯子中,则杯子中球的最大个数为3的概率是?
    知识点 概率
    分析
    前三个球有针对的放,概率为(1/5)(1/5)(1/5)
    选定盛装三个球的杯子:5个可能
    最后一个球放的杯子有四种选择:4个可能
    四种球不同,最后一个球的可能性为4个可能
    [5*(1/5)(1/5)(1/5)]*(4/5)*4=16/125

    15.从数字集合{1,2,3,4,… ,20}中选出4个数字的子集,如果不允许两个相连的数字出现在同一集合中,那么能够形成多少个这种子集?
    知识点 概率 排列组合 插空法
    分析
    插空法 ,把4个数插到16个数形成的17个空格中
    笔记
    某些元素不相邻的排列组合题,即不邻问题,可采用插空法,即在解决对于某几个元素要求不相邻的问题时,先将其它元素排好,再将指定的不相邻的元素插入已排好元素的间隙或两端位置
    1.基本题型为:n个相同元素,不同个m组,每组至少有一个元素;求共有多少种不同方法?
    答:在 n 个元素的n-1 个间隙中放置 m-1 块隔板把它隔成 m 份
    2.有 n 个相同的元素,要求分到 m 组中,问有多少种不同的分法?
    答:这种问题是允许有些组中分到的元素为 “0”,也就是组中可以为空的。对于这样的题,我们就首先将每组都填上 1 个,这样所要元素总数就 m 个,问题也就是转变成将( n+m )个元素分到 m 组,并且每组至少分到一个的问题,也就可以用插板法来解决。

    16.有2堆宝石,A和B一起玩游戏,假设俩人足够聪明,规则是每个人只能从一堆选走1个或2个或3个宝石,最后全部取玩的人获胜,假设2堆宝石的数目为12和13,请问A怎么可以必胜?
    在这里插入图片描述
    知识点 博弈
    笔记
    面对平衡态(奇异态)的输,面对非平衡态赢,(12,13)相当于(0,n),一次取n,此时为非平衡态,先取的赢。
    取石子游戏
    问题介绍:一个古老的博弈游戏,发源于中国,它是组合数学领域的一个经典问题。它有许多不同的玩法,基本上是两个玩家,玩的形式是轮流抓石子,胜利的标准是抓走了最后的石子。
    玩家设定: 先取石子的是玩家A,后取石子的是玩家B。
    经典的三种玩法:
    1.巴什博奕(Bash Game):有1堆含n个石子,两个人轮流从这堆物品中取物,规定每次至少取1个,最多取m个。取走最后石子的人获胜。
    2.尼姆博奕(Nimm Game),有k堆各n个石子,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限。取走最后石子的人获胜。
    3.威佐夫博奕(Wythoff Game),有2堆各n个石子,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取1个,多者不限。取走最后石子的人获胜。
    解析:平衡状态,又称作奇异局势。当面对这个局势时则会失败。任意非平衡态经过一次操作可以变为平衡态。每个玩家都会努力使自己抓完石子之后的局势为平衡,将这个平衡局势留给对方。因此,玩家A能够在初始为非平衡的游戏中取胜,玩家B能够在初始为平衡的游戏中取胜。
    玩法一:
    显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r为任意自然数,s≤m),那么先取者要拿走s个物品,如果后取者拿走k(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就能最后获胜。
    即,若n=k*(m+1),则后取者胜,反之,存在先取者获胜的取法。n%(m+1)=0. 先取者必败
    奇异局势是n=(m+1)*i,玩家的策略是若当前的石子个数为(m+1)*i+s,那么就将s个石子取走,使其达到奇异局势。
    玩法二:
    https://blog.csdn.net/petersmart123/article/details/69058910
    分析
    A先拿,拿走13个里的一个, 然后B拿1个,A就拿同堆的3个,B拿2个,A就拿同堆的2个,B拿3个,A就拿同堆的1个

    17 编程题
    小易有一些彩色的砖块。每种颜色由一个大写字母表示。各个颜色砖块看起来都完全一样。现在有一个给定的字符串s,s中每个字符代表小易的某个砖块的颜色。小易想把他所有的砖块排成一行。如果最多存在一对不同颜色的相邻砖块,那么这行砖块就很漂亮的。请你帮助小易计算有多少种方式将他所有砖块排成漂亮的一行。(如果两种方式所对应的砖块颜色序列是相同的,那么认为这两种方式是一样的。)
    例如: s = “ABAB”,那么小易有六种排列的结果:
    “AABB”,“ABAB”,“ABBA”,“BAAB”,“BABA”,“BBAA”
    其中只有"AABB"和"BBAA"满足最多只有一对不同颜色的相邻砖块。
    笔记全排列问题 剑指offer
    18.编程题
    小易为了向他的父母表现他已经长大独立了,他决定搬出去自己居住一段时间。一个人生活增加了许多花费: 小易每天必须吃一个水果并且需要每天支付x元的房屋租金。当前小易手中已经有f个水果和d元钱,小易也能去商店购买一些水果,商店每个水果售卖p元。小易为了表现他独立生活的能力,希望能独立生活的时间越长越好,小易希望你来帮他计算一下他最多能独立生活多少天。
    在这里插入图片描述

    展开全文
  • 阿里巴巴校园招聘2017 数据分析笔试题(1).pdf
  • 中国电信数据分析笔试——三道编程题 1 找丑数 若一个数的因子只有2,3,5,那么这个数称为丑数,1是第一个丑数,2是丑数,7不是丑数 。 要求给定一个整数N, 返回第N个丑数 思路:递归,基线条件第一个丑数为1 ;...

    中国电信数据分析笔试——三道编程题

    1 找丑数

    若一个数的因子只有2,3,5,那么这个数称为丑数,1是第一个丑数,2是丑数,7不是丑数 。
    要求给定一个整数N, 返回第N个丑数
    思路:递归,基线条件第一个丑数为1 ;递归条件:第N个丑数为N-1个丑数后面的那个丑数 。如何判定丑数?
    a = 2^i 3^j 5^k ,则为a丑数

    N =int(input())
    def whoisNthugly(N):
        if N == 1: 
            return 1 
        if N>1:
            r = whoisNthugly(N-1)+1
            i,j,k= 0,0,0
            while 1:
                a=r
                while a!=1 :  # a==1 找到丑数
                    if a%2==0: 
                        a = a/2 
                    elif a%3==0: 
                        a = a/3
                    elif a%5==0: 
                        a = a/5 
                    else : 
                        r+=1
                        break
                return r
    N=10
    whoisNthugly(N) 
    >12 
    

    2 找子列

    给定一组整数,要求找到一组子列使其和最大,但原数组中相邻的数只能选一个。返回其和
    思路:分而治之,不断转化为简单的情况。 基线条件:若列表长度为0, 和为0;若长度为1或2,和为较大的那个数 。
    递归条件:若列表长度大于3, 找到最大的数a, 将a和与a相邻的数删除生成子列,该列表的和为a加子列的和

    def findbiggset(li):
        if len(li)==0:return 0
        if len(li)==1 or  len(li)==2 :
            return max(li)
        else : 
            a = max(li)
            k=li.index(max(li))
            if k==len(li)-1:
                li = li[:-2]
            elif k==0:
                li=li[2:]
            else : 
                li = li[:k-1]+li[k+2:]
            #print(li)
        return a+findbiggset(li)
            
        
    li=[2,4,2,5,6]
    findbiggset(li)
    >10 
    

    3 a,b,c,d 属于[0,9] ,使得abcd+bcda=8888的abcd有几种 ?

    思路:没想到好的方法,总的可能也不多,遍历。

    u=0
    for a in range(10):
        for b in range(10):
            for c in range(10):
                for d in range(10):
                    i = a*10**3+b*10**2+c*10+d
                    j = b*10**3+c*10**2+d*10+a
                    if i+j==8888:
                        #print(a,b,c,d,b,c,d,a)
                        u+=1
    print(u)
    >9
    
    展开全文
  • 2020年小红书校招数据分析笔试

    千次阅读 2020-10-20 11:40:00
    今天给大家带来2020年小红书校招的数据分析笔试题的详解1、如果在小红书商城中某一商户给一产品定价,如果按照全网最低价500元定价,那么客人就一定会选择在此购买;价格每增加1元,客人的流...
  • 阿里巴巴2020秋招数据分析笔试 笔者经历内推被拒,然后去上海参加某会议期间神奇收到笔试邀请短信匆匆准备之后于2019.8.28晚19点参加笔试,数据分析笔试只有60分钟的时间(我同学投的算法岗由90分钟笔试时间),笔试...
  • 2020届腾讯暑期实习生技术研究与数据分析笔试 抱着一颗尝试的心态,投了腾讯的暑期实习生,昨晚刚笔试完,不出意外的凉凉,完全不会写=。= 全懵逼,呃,最后记了一下题目,现在分享下,给大家参考参考。 此次笔试...
  • 时间:9.28投递的迅雷数据分析岗,10.15收到笔试通知于10.19号19:00-20:35参加迅雷2021校招数据分析笔试题 B卷。 试卷回忆版:共有三种题型:单选题(20个,每个3.5分)、多选题(2个,每个3分)、问答题3个(一个8...
  • 这篇博文通过五道经典的大厂数据分析笔试题,尽可能的让大家能更熟悉hive 窗口函数、自连接、行转列、列转行、TopN。
  • 题目链接:欢聚时代数据分析师校招笔试试题汇总 在做了这套题之后,发现大部分是行测题+产品题,也有数据分析相关的题型。针对做错的一些题和产品分析的题做个简单解析。 1、cookie有什么用? 正确答案:A
  • 在网上找的新浪的数据分析笔试题 2012新浪校园招聘数据分析师职位笔试题目。A卷(统计方向)60分钟 填空题。 1、KMO值在( )范围内,因子分析才是有效的。 解答:kmo检验统计量是用于比较变量间简单相关系数和偏...
  • 数据分析笔试题目(一)

    万次阅读 多人点赞 2019-03-07 14:14:49
    1.某超市研究销售纪录数据后发现,买啤酒的人很大概率也会购买尿布,这种属于数据挖掘的哪类问题?(A) A. 关联规则发现 B. 聚类 C. 分类 D. 自然语言处理 2.以下两种描述分别对应哪两种对分类算法的评价标准...
  • 字节跳动-数据分析笔试回忆20181008

    万次阅读 多人点赞 2018-11-05 22:40:32
    这是一篇博主含泪写下的笔经   120min时长,五部分。 ...十分钟,推理计算题,理论应该是10个但我最后只有6min时间 进去只显示了7个 ...:时间从19到21点,因为有各部分点进去和...纪念人生第三场笔试 默哀  
  • 数据分析笔试记录--广联达

    千次阅读 2019-08-28 10:00:18
    广联达笔试题目类型:15单选 60 2问答 20 2编程 20单选问答编程相关问题数据不平衡处理方法K折交叉验证集成学习 题目类型:15单选 60 2问答 20 2编程 20 单选 1.“点击率问题”是这样一个预测问题,99%的人是不会...
  • 数据分析笔试题收集(一)

    万次阅读 多人点赞 2018-08-01 19:02:54
    ,在“自底向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。 经典算法为: CURE; 采用抽样技术...
  • 昨天参加了广联达的笔试题,其实这道SQL并不是很难,奈何我都没做对,所以今日复盘一下。 题目:表post_table,有3个字段,uid : 会员id, post_time:发帖时间,content:发帖内容 create table post_table(uid int , ...
  • 58招聘商家后台APP上线了一个新的模块,目的是提升商家购买率,请设计一套分析方案,衡量模块上线后对购买率是否有提升(购买率=支付陈工次数/PV) 二. 某电商平台针对合作商家提供了一个广告产品,商家购买广告位后...
  • 「2020」拼多多数据分析笔试题 | 附解答

    千次阅读 热门讨论 2020-07-07 19:06:38
    19届同学反馈,pdd的数据分析SQL部分出的很好,20届感叹道,说的太对了。 pdd的笔试题一共五道,考试时只划分为一个部分,答题时间90分钟。 第一部分:SQL查询题3道 第一题:活动运营数据分析 表1——订单表...
  • 【Daticist】|(一)字节跳动数据分析笔试

    万次阅读 多人点赞 2019-07-28 15:20:19
    1、负责分字节跳动旗下国内外产品及业务的数据分析工作; 2、分析各项影响产品提升与增长的因素、各项业务细节,结合业务方向,给出可落地的整体的产品优化方案; 3、与产品/运营/研发等配合,推进优化方案落地执...
  • 【拼多多】数据分析笔试+三面面经

    千次阅读 2019-09-08 10:28:06
    今年投的是拼多多的学霸批,然后走完了整个流程,包括笔试+三次面试,现在在等最终结果。 【笔试笔试主要考察SQL,包括留存率问题;多表查询,join,排名函数等考点之类的。 【一面】 一面面试官,聊了一个...
  • 2020年PDD数据分析笔试题 | 附解答

    千次阅读 2020-04-09 09:23:00
    前言19届同学反馈,拼夕夕的数据分析SQL部分出的很好,20届感叹道,说的太对了。拼夕夕的笔试题一共五道,考试时只划分为一个部分,答题时间90分钟。第一部分:SQL查询题3道第一题...
  • 小红书数据分析笔试题整理

    千次阅读 2019-09-03 23:21:11
    销量下降的原因分析 利用结构化思维拆分销量。 对 “店铺销量构成” 进行拆解并分析不同类目的销量,进一步明确问题根源(哪几类商品销量下降最严重)。接下来我们针对每种品类去分析影响销量的因素有哪些,可能...
  • 2021届秋招——腾讯数据分析笔试

    千次阅读 2020-08-28 14:39:08
    直接逐行逐列遍历,对于第 i 行第 j 列的元素 T[i][j],分析一下它的几种可能性如下: 1、T[i][j] == ‘Y’,此时只需看看它的左上角元素是否也为 ‘Y’ or ‘G’ 即可,如果是,那么该元素可以被上面的元素以同一笔...
  • 数据分析笔试错题要点及解析

    千次阅读 2018-08-01 14:27:39
    1、为数据的总体分布建模,把多维空间划分成组等问题,属于数据挖掘中的哪一类任务:建模描述 2、假设12个销售价格记录组已经排序如下:5, 10, 11, 13, 15,35, 50, 55, 72, 92, 204, 215 使用如下每种方法将它们...
  • 数据分析笔试——常见概率题(from牛客)

    千次阅读 热门讨论 2018-09-28 10:40:04
    假设每个人都不会投自己,投其他每个人是等概率的。 答:分母:每个人可以投其他5个人,共5^6种可能;分子:C(1,6)六种可能,六个人选一个死,所以p=6/3125 2、20个员工被安排为4排,每排5个人,我们任意选其中4人...
  • 从以上的数据分析再综合用户群的分析,我们可以发现,周末每日的销售额大幅度偏低是有原因的。原因在于用户群为办公室女性,显然结合数据可以分析的出,此用户群更多是在工作日的时间在此平台购物消费,而周末在平台...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,605
精华内容 16,242
关键字:

数据分析笔试