精华内容
下载资源
问答
  • paxos算法

    2020-12-25 17:17:25
    paxos算法解决集群一致性问题。 问题描述: 有一个集群,集群就是由多个节点组成系统,每个节点...要求集群满足一致性:在任一时刻,集群中值都唯一,即无论从哪个可访问节点访问一个值,得到结果都.

    目录

    一、问题描述

    二、算法推导

    三、算法内容

    四、leaner获取chosen的值

    五、progess


     

     

    paxos算法解决集群的一致性问题。

     

    一、问题描述

    有一个集群,集群就是由多个节点组成的系统,每个节点可以担当以下的一个或几个角色:

    a)proposer:提议者,可以提出一个提议(proposal),提议的内容就是设置某个值

    b)acceptor:判决者,可以针对一个提议判断是否通过。一个acceptor通过提议不代表集群通过提议,集群通过提议的方法待定。

    c)leaner:使用提议的结果

    要求集群满足一致性:在任一时刻,集群中的值都是唯一的,即无论从哪个可访问的节点访问一个值,得到的结果都是相同的,是确定且唯一的。

    再具体一点,需要满足:a)只有提出的提议可以被通过并设置;b)在一次提议过程中,只有一个提议可以被集群通过;c)没有被集群通过的提议无法被获取到,也就是说被部分节点通过,而没有被集群通过的提议无法被获取到

     

    二、算法推导

    paxos made simple论文中,推导paxos算法的过程大致是:先提出一个算法,再看存在什么问题,针对存在的问题补充/修改算法,我这里也是参照论文中的过程进行介绍。

     

    同论文的表示方法,算法用Px表示,例如P1,P2,P1a。

    参考论文,集群通过一个proposal用chosen表示。proposal被chosen的条件:半数以上的acceptor都通过proposal,这样可以保证不会同时存在两个proposal被chosen。

     

    P1.acceptor必须通过接收到的proposal

    如果再附加条件,每个acceptor只能通过一个proposal,会导致:多个proposal同时提出proposal,部分acceptor通过proposal A,部分通过proposal B,部分通过proposal C,但都没有达到半数以上,这样子的结果就是没有一个proposal能被chosen。

    所以修改条件:单个acceptor可以同时通过多个proposal,但这可能造成多个proposal被chosen,不同proposal的值一般不同,这样就导致存在多个值被chosen了,不满足一致性。再进行以下修改。

     

    P2.每个proposal有一个number(版本),不同的proposal的版本必须不同。可以存在多个proposal被chosen,但被chosen的proposal中,number大的proposal的值,必须和number小的proposal的值相同,值记为v。

    我们暂时先不管P2如何实现,可能是number大的proposal的值在accept时被修改成v,也可能是在proposer提出proposal时就必须是v。

    如果P2满足,那么一致性是可以满足的,因为不同proposal的number都不同,只有一个最小的number,v就是这个number对应的proposal的值。

     

    再看看P2如何满足:

    P2a.当一个版本为m值为v的proposal被chosen之后,在所有acceptor上,如果有版本高于m的proposal被通过,它的值必须是v。

    比如:

    • proposal[m,v]被chosen,某个acceptor收到一个proposal[n,v1],且n大于m,这个proposal是不能通过的
    • 某个acceptor中已经有一个通过的proposal[n,v1],且n大于m,然后proposal[m,v]被chosen,这种情况也是不允许的

     

    要实现P2a,有两个问题:

    a)对新接收的proposal,一个acceptor如何知道v。因为部分acceptor可能是没有收到版本为m值为v的这个proposal的,就不能直接拿到v。

    b)在版本为m的proposal被chosen之前,如何保证accetpor不通过版本高于m且值不为v的proposal。

     

    修改P2a为P2b:

    P2b.当一个版本为m值为v的proposal被chosen之后,proposer提出版本比m高的proposal时,值必须是v。

    P2b其实是P2a的充分非必要条件,使用P2b的话,实现时就是proposer去查询被chosen的proposal的值v,解决上面的问题a。

    要解决问题b,还要求一个隐含条件:proposer提出提议[n,v]有一个前置条件,版本小于n且值不为v的proposal不可能被chosen。

     

    再看看如何实现P2b,先分析一下目前的状况:

    • 如果一个proposal[m,v]被chosen,那么一定存在一个集群的acceptor子集C通过了这个proposal,C中的acceptor个数过半。
    • 假设要进行一个proposal[n,?],那么可能存在版本为m~n-1的proposal,这些版本的proposal的值都是v。这里我们是先假设P2b已经满足了,然后对一个新的proposal[n,?]分析一下如何能获取到v。
    • 我们取集群的任意一个acceptor自己S,S的acceptor个数过半,那么自己S和自己C必然存在交集。

    根据以上的几个分析,提出P2c来满足P2b:

    P2c.对于一个proposal[n,v],要提议这个proposal,必须满足:

    存在一个acceptor子集S,S的acceptor个数过半,且满足两个条件之一:1)S中的所有acceptor都满足:没有通过任何版本小于n的proposal;2)v是S中所有acceptor已经通过的proposal中,版本最大的proposal中的值。

     

    P2c只保证了proposal[n,v]被chosen之后的场景,不能保证被chosen之前,proposer不提出版本小于n,且值不为v的proposal。也就是之前的问题b,再看看这个问题如何解决。

    proposer的算法步骤:

    1.proposer选择一个版本n,并发送请求到所有或部分acceptor,要求这些acceptor:

    a)保证不通过版本小于n的proposal

    b)返回该acceptor已通过的proposal中,版本小于n的proposal中,版本最大的proposal,包括proposal的版本和值

    这一步称作prepare

    2.如果一个proposer接收到半数以上的acceptor的回复,那么proposer就可以进行proposal的提议,proposal的版本是n,值是v。v有两种情况,一种是prepare过程中没有一个acceptor返回已通过的proposal,那么proposer自己提议一个v,另一种就是有拿到proposal,那么就使用版本最大的proposal的值。

    proposer发送prorosal[n,v]到acceptor,acceptor判断是否通过这个请求,这一步叫做accept。

     

    然后是acceptor的算法步骤:

    1.acceptor可以回复任何prepare请求,并记下prepare过的最大版本号m。但为了节约,acceptor可以只在每次收到超过已记录的最大版本的prepare请求时才回复。

    2.acceptor需要忽略版本号小于m的所有accept请求

     

    为了满足以上要求,P1需要修改成P1a:

    P1a.acceptor回复过的prepare请求的最大版本号为m,那么acceptor只能通过版本号大于等于m的proposal

     

    三、算法内容

    phase1. prepare

    (a)proposer选取一个版本n,发送number为n的prepare请求到半数以上的acceptor

    (b)acceptor接收到版本n的prepare请求,而当前回复过的prepare请求的最大版本为m,那么当n>m时,acceptor记录版本n并回复请求;当n<m时,acceptor忽略prepare请求。不同proposal版本号必须不同,不会出现m=n的情况。

    补充说明:b中acceptor回复的内容包含已经accept过的版本号最大的proposal[n,v],但如果没有accept过的proposal,那就不用返回值

     

    phase2. accept

    (a)proposer接收到半数以上的acceptor对版本n的prepare请求的回复之后,可以发送accept请求给这些acceptor,内容是proposal[n,v],v有两种情况,一种是进行prepare时没有收到返回的proposal,那么proposer自己设置值v;另一种是有收到prepare返回的proposal,那就选择一个版本最大的proposal的值设置为v。

    (b)acceptor接收到accept请求,内容是proposal[n,v],而当前进行过prepare请求回复的最大版本为m,如果n>=m,那么就accept这个proposal,否则就忽略accept请求。因为经过了prepare请求,正常不会出现n>m的情况。

     

    为了优化性能,可以做一些修改,例如:

    acceptor要忽略prepare或者accept请求时,告知proposer,有更高版本的prorosal正在进行中,不用再发消息给其他acceptor了。

     

    四、leaner获取chosen的值

    方法1:每个acceptor回复accept请求后,同时通知给所有leaner。leaner判断proposal被chosen后,就进行learn。安全性高,资源消耗较大。

    方法2:每个acceptor回复accept请求后,都只通知某个特定的leaner,leaner判断proposal被chosen后,仅进行learn,并通知其他leaner。存在可用性问题,资源较节省。

    折中方法是选择部分leaner进行通知。

     

    五、progess

    算法存在一个问题:如果有两个proposer,proposer1成功进行phase1后,proposer2使用更高版本进行phase1,那么proposer1进行phase2时就达不到大多数而失败,然后再用更高的版本重新进行phase1,导致proposer2的phase2失败。。。如此循环,就没有proposal可以被chosen了。

    可以指定只有一个特定的proposer能发起proposal,需要一个选举特定proposer的算法,multi-paxos解决了该问题。

    展开全文
  • 精华游戏算法整理(经典)

    热门讨论 2008-11-19 22:38:41
    取而代之的,它只是描述算法的原理,使你可以在进一步的阅读中理解其他相关的资料。 最后,这篇文章没有程序细节。你尽可以用任意的计算机程序语言实现它。如你所愿,我在文章的末尾包含了一个指向例子程序的链接...
  • 以下是某牛blog上关于算法描述的转载,本人编写代码仅有的算法资料也就是这些. 收缩有向图中强连通分量大约图论线性算法中最具技巧性一种了。我们首要目的对于每个顶点设定一个Belong值,也就是它从...

     

    以下是某牛blog上关于算法描述的转载,本人编写代码仅有的算法资料也就是这些.

     

          收缩有向图中的强连通分量大约是图论的线性算法中最具技巧性一种了。我们的首要目的是对于每个顶点设定一个Belong值,也就是它从属于哪个顶点所代表的强连通分量,至于重新建立图的边,不过是将所有边扫描一遍看是否在新图中出现而已,比较容易。

    下面是利用一遍DFS求强连通分量的方法:对于每个顶点,设立Num、Low、Used、Alive四个属性,一个Stack保存当前正在被遍历的顶点;每访问一个顶点,将它的Num和Low设立为当前时间戳,Used、Alive设为True,并将顶点入栈,对于它的每条边,若边的终点未Used,则访问,而后用终点的Low值更新它的Low值,对于每个Used且Alive的终点,用它的Num值更新当前值;访问完毕当前顶点后,若Low与Num相等,说明找到了一个强连通分量,它包括栈中所有在当前顶点上方的顶点,将它们出栈并记下Belong值,出栈的顶点的Alive要置为false。

          注意这里的Low值与求割顶和桥时的Low值的定义不太相同,它是与当前顶点双连通的最低顶点,所以才要用Alive来标记是否能到达当前顶点。

     

    转载结束.....

         

          强连通分量的判定对图算法的优化有很大的意义,缩点与不缩点在效率上有很大的差别,许多问题在DFS下变的十分容易,如时间戳等标记的技巧使用,辅之以白色路径定理,在很多图论算法中有着重要的应用.

          本算法的基本思想认为dfs经过的路径中,若有一点可返回访问过的点,则到该点访问过的所有点在一个强连通分量之中。注意理解喔~~~

     

          以下是1269的代码:

     

     

    #include <iostream>
    #include 
    <stack>
    using namespace std;
    typedef 
    struct  
    {
        
    long v,next;
    }Edge;

    typedef 
    struct
    {
        
    long Num;
        
    long Used;
        
    long Alive;
        
    long Low;
        
    long belong;
        
    void init(long pos)
        {
            Num
    =Used=Alive=Low=0;
            belong
    =pos;
        }
    }Node;

    const long MAXN=100010;
    long N,M;//点,边
    Edge e[MAXN];//边数组
    long p[MAXN/10];//辅助数组
    Node vec[MAXN/10];//
    stack<long> s;
    long Permit;//时间戳

    inline 
    void init()
    {
        
    long i;

        
    while (!s.empty())
        {
            s.pop();
        }

        Permit
    =0;

        memset(p,
    -1,sizeof(p));

        
    for (i=0;i<=N;++i)
        {
            vec[i].init(i);
        }

        
    for (i=0;i<M;++i)
        {
            
    long from,to;
            scanf(
    "%ld %ld",&from,&to);
            e[i].next
    =p[from];
            e[i].v
    =to;
            p[from]
    =i;
        }

    }

    inline 
    void update(long &a,long b)
    {
        
    if(a>b) a=b;
    }


    inline 
    void dfs(long pos)
    {
        s.push(pos);
        vec[pos].Low
    =vec[pos].Num=++Permit;
        vec[pos].Used
    =vec[pos].Alive=true;

        
    long j;
        
    for (j=p[pos];j!=-1;j=e[j].next)
        {
            
    long to=e[j].v;
            
    if (vec[to].Used)
            {
                
    if (vec[to].Alive)
                {
                    update(vec[pos].Low,vec[to].Num);
                }
            }
            
    else
            {
                dfs(to);
                update(vec[pos].Low,vec[to].Low);
            }
        }

        
    if (vec[pos].Num==vec[pos].Low)
        {
            
    long t;
            
    while ((t=s.top())!=pos)
            {
                vec[t].belong
    =pos;
                vec[t].Alive
    =false;
                s.pop();
            }
            vec[pos].belong
    =pos;
            vec[pos].Alive
    =false;
            s.pop();
        }

    }

    inline 
    void Tarjan()
    {
        
    long i;
        
    for (i=1;i<=N;++i)
        {
            
    if (!vec[i].Used)
            {
                dfs(i);
            }
        }
    }

    int main()
    {
        
        
    while (scanf("%ld %ld",&N,&M)!=EOF)
        {
            
    if (N==0&&M==0)
            {
                
    break;
            }
            init();
            Tarjan();

            
    long i;
            
    long t=vec[1].belong;

            
    bool doit=true;

            
    for (i=2;i<=N;++i)
            {
                
    if (vec[i].belong!=t)
                {
                    doit
    =false;
                    
    break;
                }
            }
             
    if (doit)
             {
                 printf(
    "Yes\n");
             }
            
    else
             {
                 printf(
    "No\n");
            }
        }
        
    return 0;
    }

    转载于:https://www.cnblogs.com/zhuangli/archive/2008/08/23/1274821.html

    展开全文
  • finalizeObject类一个方法,在垃圾收集器执行时候会调用被回收对象方法,可以覆盖此方法提供垃圾收集时其他资源回收,例如关闭文件等。 16、sleep() 和 wait() 有什么区别? sleep线程类(Thread)...
  • 数据分析笔试题【小红书 2019】

    千次阅读 2019-08-16 20:23:51
    2. 偏态分布一般用以下哪个指标描述集中趋势 中值 (偏态分布,平均值代表性比较差 ,所以使用中值) 3. 在以下不同场景中,使用分析方法不正确有 D A. 根据商家最近一年经营及服务数据,用聚类算法...

    2019年 第一批

    1. 想要了解上海市中学生的身高,从中抽取了1000个样本,这项调查中的样本是  从中抽取的1000名中学生的身高

    2.  偏态分布一般用以下哪个指标描述集中趋势   中值 (偏态分布,平均值的代表性比较差 ,所以使用中值)

    3.  在以下不同的场景中,使用的分析方法不正确的有  D

    A. 根据商家最近一年的经营及服务数据,用聚类算法判断出小红书商家在各自主营类目下所属的商家层级
    B. 用关联规则算法分析出对护肤内容有兴趣的用户,是否对彩根据妆内容感兴趣
    C. 根据用户最近购买的商品信息,用决策树算法识别出用户是男是女
    D. 根据商家近几年的成交数据,用聚类算法拟合用户未来一个月可能的消费金额公式  (聚类时无监督聚类算法,应该用回归)

    4.  用算法拦截可疑笔记,描述拦截的笔记中有多少是真的可疑笔记是  准确率

    解释:在预测为可疑笔记中有多少是真的可疑!

    5.  【查几种检验方法】当总体分布未知的情况下,可以采用以下哪种检验方法? D

    A. T检验 (F检验可以判断是否齐方差,T检验则需要根据是否齐方差决定使用T检验还是T'检验)
    B. 方差分析  
    C. F检验
    D. KS检验

    6. 在做数据分析中,如何处理异常或是缺失数据,请选择一下你认为正确的答案D

    不处理
    删除元组
    数据补齐
    以上全对

    7.  下列哪一项不是描述连续变量的  ABC

    二项分布
    泊松分布
    超几何分布
    正态分布  (连续变量的描述)

    离散变量的概率分布,常用的有二项分布、泊松(Poisson)分布。其余的还有两点分布、几何分布、超几何分布等概率分布。

    8.  下列关于相关系数的说法,正确的是  AC

    A. 相关系数的数值越大,说明两个变量之间的相关程度越高
    B.若相关系数r=0,则表明两个变量之间不存在任何相关关系 (R=0只是表示无线性相关,也可能存在非线性相关 )
    C. 若相关系数>0,则称两个变量正相关;若相关系数<0,则称两个变量负相关
    D. 相关系数取值范围是(-1,1) 

    9. 如下SQL建表语句:
    create  table  goods_info(goods_id  INT  primary key, goods_name  char(8)  not null,category  char(20),amount  INT),那么可以插入到该表中的数据是?AD

    (1234, '口红', ‘化妆品’, 5)
    (NULL, '口红', 化妆品, '5')
    ('1234', NULL, NULL, '5')
    (1234, '口红', NULL, NULL)

    10. 已知一个家庭有两个小孩,且已知家中至少有一个男孩,则家中至少有一个女孩的概率是1(填分数)  2/3

    解释:

    B: (Boy);G: 女(Girl)

    BB: 1/4 ; GG: 1/4 ; BG: 1/4 ; GB: 1/4;

    已知GG不可能,因此 (BG + GB) / (BB + BG + GB) = 2/3

    11.  having、where、group by语句同时出现在一段sql代码中,那么他们正确的出现的顺序是where——group by ——having

    12.  某地区居民以同样多的人民币,2006年比2005年少购买5%的商品,则该地的物价上涨了1%(保留一位小数)  5.3%

    假设钱为x,去年买了m数量,今年则买了m(1-5%)数量;则单价上涨:\frac{x}{m(1-0.05))}-\frac{x}{m}=\frac{x}{m}*(\frac{100}{95}-\frac{100}{100})=0.053*\frac{x}{m}

    问答题:

    1. 

    需求:当前希望分析产品上线两周后,页面的使用人群特点(年龄、性别、城市)和页面上不同入口点击率(页面上各种按钮、超链接等等的点击次数/页面访问次数)的关系。

    拿到的数据格式为csv格式,每行数据包括:用户操作时间、用户id、用户对应的信息(好几列,年龄、性别、城市)、操作行为(访问、点击)、被操作模块名称(访问行为此列为空,点击行为此列为被点击入口的名称),示例如下

    任务:对过去两周产品的使用人群特点和入口点击率进行描述和可视化作图,说明上两周的现状情况。要求:从整体角度描述提到两个指标的变动情况;将不同入口点击率按照人群特点进行划分,描述不同人群的入口点击偏好、对某个入口点击率的差异。

    问题1:简述一下拿到这个数据文件后你根据任务所规划的处理步骤(画图or文字描述皆可,文字描述需要写清步骤序号)。

    问题2:列出你能够使用以及知道了解的软件名称-对应功能名称-用来处理什么内容(功能名称可以是程序包、具体某个包后插件下的function、使用的图的类型名称等),请把答案是属于“掌握”(知道名字,辅以简单查询后可以自己做出来)还是“了解”(听过这个名字,但没有实践应用过)分成两个部分。

    (举例:掌握:excel-图表-柱状图-作图说明不同年龄群有多少人)

    我的回答:

    1. 数据清洗,删除或者填充确实值,对于不合理的数据进行筛选并处理。

    2.对于使用人群特点,主要是针对年龄、性别、城市这几列数据进行统计分析:1)首先针对其中的某一特征如年龄进行划分group,然后对于剩下的两组特征,进行组合情况的分析,可以探讨在不同年龄阶段的(性别、城市)情况,2)或者根据城市进行数据的划分group,然后组合剩下的特征进行划分,3)可以从上述情况中分析出,那一组特征下的频率属于高频率,进而针对性的加强优化!

    3入口点击率的分析:首先过滤掉所有操作行为为访问的数据条,然后基于所有的'点击'数据,进行操作对象的统计和分布图可视化,凸显出页面上所有按钮的点击率分布,进而进行针对性的优化、全局分布和引导资源的超链接。

    别人贡献:

    首先进行数据预处理过程,进行必要的检查,数据重复,缺失值,异常值等问题
    分析人群特点:可以按照总体特征的分布情况对人群进行分类,总结人群特点,比如按年龄或者城市分档,也可以两者结合起来作为一个人群特点进行分析。
    入口点击率:对总体入口点击率进行趋势分析;然后拆分计算入口点击率,进行细分对比。可以结合人群特点进行分析,挑出重点进行阐述。比如点击率最高的集中是哪个年龄层的用户,某个年龄层内最高的点击率的操作对象是什么,等等。
    掌握:excel-图表-柱状图、折线图、甘特图、双层饼图-作图说明用户年龄分层情况和点击率的分布情况
    掌握:excel-数据透视表-(切片器)-通过数据透视表进行用户年龄分布和入口点击率的分布情况
    掌握:python-matplotlib-hist-作图说明用户人群特点的年龄、城市分布情况

    2.  

    假设:浦东机场近日因车位紧张导致车流堵塞;为了解决这个问题,领导打算扩建停车场并且让你预估需要添加的车位数量。

    1、请写出你认为需要的辅助数据

    2、如果给你题1中你需要的数据,请阐述你如何使用这些数据预估车位数量。、

    别人贡献参考:

    1.需要历史访问车次数据,访问的时间,离开的时间+现有车位数量

     

    2.

    统计平均每辆车停车时长t1

    以t1作为time interval统计平均每t1时间段内访问车辆数量lambda

    以t1作为时间区间,每区间内访问车辆数量为k的概率P(k)满足泊松分布P(k) = exp(-lambda)*lambda^k/k!

    此时,我们有,下一个时间段t1内访问车次的数量为k1的概率P(k1),此时上一个时段进来的车辆已经开始陆续离开(平均停留时间t1)

    因此,假如我们要求95%的概率不会出现拥堵,则可以让p(k1) = 0.95 求出 k1。则k1 - 现有车位,就是我们要扩建的数量。

     

    2019年 第二批

    1. 从含有N个元素的总体中抽取n个元素作为样本,使得总体中的每一个元素都有相同的机会(概率)被抽中,这样的抽样方式称为   简单随机抽样

    解释: 

    简单随机抽样:对总体不做任何划分,随机抽取

    分层抽样:挑选对总体影响较大的特征作为分层依据,在每层中抽取一定比例的样本,比如:抽取某小学学生的身高,可按照年纪划分成6层,在每层中抽取一定比例的学生组成样本。

    系统抽样:比如100个学生,给每个学生编号,平均分成5等分,每一份都选编号为1,5,9的学生

    整群抽样:100个学生分成4个群,随机选择其中的2个群,群里所有学生都要参与抽样。

    2.   一组数据,均值>中位数>众数,则这组数据   右偏态

    解释:(从小到大:众中平:右)

    左偏分布(负偏态)中:mean(平均数)<median(中位数)<mode(众数)

    右偏分布(正偏态)中:mode(众数)<median(中位数)<mean(平均数)

      左偏——正态分布——右偏

    3.   对一个特定情形的估计来说,置信水平越低,所对应的置信区间  越小

    解释:

    置信区间小,置信水平低(发生的概率越低),但精度高,

    置信区间大,置信水平高,精度低

    4.  关于logistic回归算法,以下说法不正确的是 B (逻辑回归是一个二分类问题)

    logistic回归是当前业界比较常用的算法,用于估计某种事物的可能性
    B. logistic回归的目标变量可以是离散变量也可以是连续变量
    logistic回归的结果并非数学定义中的概率值
    logistic回归的自变量可以是离散变量也可以是连续变量 (工业界中我们通常将连续变量离散化再带入logistic回归。 )

    5.  下列关于正态分布,不正确的是C

    正态分布具有集中性和对称性
    期望是正态分布的位置参数,描述正态分布的集中趋势位置
    C 正态分布是期望为0,标准差为1的分布 (期望为0,标准差为1的是标准正态分布 )
    正态分布的期望、中位数、众数相同

    6.  以下关于关系的叙述中,正确的是(  )。 B

    表中某一列的数据类型可以同时是字符串,也可以是数字
    B. 关系是一个由行与列组成的、能够表达数据及数据之间联系的二维表
    表中某一列的值可以取空值null,所谓空值是指安全可靠或零
    表中必须有一列作为主关键字,用来惟一标识一行

    7.  想要了解一个地区人群的一般收入水平,以下什么指标不能使用?AE  (有争议,答案给的BE)

    A. 方差
    B. 几何平均数
    众数
    中位数
    E. P值 (P值是假设检验中衡量显著性的)

    8.  以下属于聚类算法的是 D

    ARIMA
    朴素贝叶斯
    支持向量机
    D. K-MEANS

    9.样本中各观察值均加5后     平均值、中值、众数加5,但是标准差、方差不改变

    10.  一批零件共10个,其中有3个不合格品,从中一个一个不放回取出,则第三次才取得不合格品的概率是1(填小数)  0.175

    \frac{7\times 6\times 3}{10\times 9\times 8}=0.175

    11.  某业务线的营业收入为:200,220,250,300,320万元,则平均增长量为()万元    30

    平均增长量 = (末段值-首段值)/ 时间差      (320-200)/4=30

    12.  

    请写sql语句:

    想要了解班级内同学的考试情况,现有一张成绩表表名为A,每行都包含以下内容(已知表中没有重复内容,但所有的考试结果都录入在了同一张表中,一个同学会有多条考试结果):

    student_id,course_name,score

    现在需要知道:

    1. 每门课程得到成绩的同学人数

    2. 每门课程的平均成绩

    3. 如果对于每门课程来说,60分以下为不及格,高于60为及格,统计每门课程及格和不及格的人数

    1.2. 
    select 
        course_name 
        ,count(distinct student_id) as student_num
        ,avg(score) as avg_score
    from A 
    group by 1 
    
    3. 
    select 
        course_name
        ,case when score < 60 then '不及格'
            else '及格' end as level
        ,count(student_id) as student_num
    from A 
    group by 1,2 

     13. 经一番研究后,我们开发出了一个新的商品详情页中'相关商品'模块的算法,并且打算通过AB Test(50%用户保留原先的算法逻辑为控制组,50%用户使用新的算法逻辑为实验组)来进行评估。假如你是此次实验的数据分析师,请问你会怎么评估控制组和实验组的表现?请按重要性列出最重要的三个指标并给出你的分析过程。

    参考:

    1.相关商品的点击率=相关商品链接点击次数/当前页面浏览次数

    2.相关商品的购买率=购买行为发生次数/相关商品浏览行为次数

    3.当前商品与相关商品一同购买的概率=共同购买/当前商品购买

     

    考察大条知识点:需要复习

    1  抽样知识

    2  偏态(左偏态 右偏态:众中平)的集中趋势反映用:中值;      正态分布的众数=平均值=中值

    3  P R  F1

    4  检验方法  (T检验  F检验  KS检验   方差分析)

    5  数据预处理

    6  离散变量  连续变量 及其常用的分布;离散:二项+泊松+几何+超几何   连续:正态分布

    7   相关系数   

    8 置信区间  置信度

    9  逻辑回归 (二分类模型,输出一定是离散的,但输入可离散可连续)

    10  SQL语句

     

     

     

    展开全文
  • 算法的空间复杂度指算法程序中指令(或语句)的条数 C. 算法的有穷性指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对 (2) 以下数据结构中不属于线性数据结构的(C) A. 队列 B. 线性表 C. 二叉树 ...
  • (13) 面向对象程序设计方法中涉及对象系统中用来描述客观事物一个______。 答:实体 (14) 软件需求分析阶段工作,可以概括为四个方面:______、需求分析、编写需求规格说明书和需求评审。 答:需求获取...
  • Egret 童话 与 现实

    2021-01-03 14:33:25
    <p>7yue老师文章里第一个阐述问题就是 Egret 为什么选择 TypeScript ,总结一下有以下几点: <ol><li>TypeScript ES6 超集,将来ES6普及时,可以平滑过渡到ES6</li><li>TypeScript 弥补了...
  • 2.5.9 对于INVERSE ARP的描述正确的? 百度篇 3.1.0 在函数内定义一个字符数组,用gets函数输入字符串的时候,如果输入越界,为什么程序会崩溃? 3.1.1 C++中引用与指针的区别 3.1.2 C/C++程序的内存分区 ...
  • 《数据结构 1800题》

    热门讨论 2012-12-27 16:52:03
    13.以下哪个数据结构不是多型数据类型(D )【中山大学 1999 一、3(1分)】 A.栈 B.广义表 C.有向图 D.字符串 14.以下数据结构中,(A )非线性数据结构【中山大学 1999 一、4】 A.树 B.字符串 C.队 ...
  •  28、下列关于windows NT Server的描述哪个是正确的?  A、windows NT Server 的内部采用64位体系结构  B、windows NT Server 以“域”为单位集中管理网络资源  C、windows NT Server只支持TCP/IP协议  D、...
  • 【多线程】sleep()和wait()分别是哪个的方法,有什么区别? 79 【多线程】sleep()和yield()区别 79 【多线程】对synchronized理解?用在代码块和方法上有什么区别? 80 【多线程】Volatile理解 82 【*多线程】...
  • 操作系统(内存管理)

    热门讨论 2009-09-20 12:55:25
    以下是算法的略述: 清单 5. 主分配程序的伪代码 1. If our allocator has not been initialized, initialize it. 2. Add sizeof(struct mem_control_block) to the size requested. 3. start at managed_...
  • java 面试题 总结

    2009-09-16 08:45:34
    finalizeObject类一个方法,在垃圾收集器执行时候会调用被回收对象方法,可以覆盖此方法提供垃圾收集时其他资源回收,例如关闭文件等。 13、sleep() 和 wait() 有什么区别? sleep线程类(Thread)...
  • 二十三种设计模式【PDF版】

    热门讨论 2011-05-30 14:13:49
    我上面这些描述其实都一种模式,创建模式大师,但是拘泥于模式人永远工匠. 再回到传统建筑中,中国传统建筑过分注重模式了,所以建筑风格发展不大,基本分南北两派,大家有个感觉,旅游时,到南 方,你发现...
  • 如果您空间有限,而内存需求变化,那么您需要一些方法来满足这些需求: 确定您是否有足够内存来处理数据。 从可用内存中获取一部分内存。 向可用内存池(pool)中返回部分内存,以使其可以由程序...
  • 27.下面有关子类继承父类构造函数的描述,其中正确的( )。 A) 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。 B) 子类无条件地继承父类不含参数的构造函数。 C) 子类必须通过super...
  •  ◇ 软件修改报告:软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。 可行性分析报告 1 引言 1.1 编写目的:阐明编写可行性...
  • c语言编写单片机技巧

    2009-04-19 12:15:17
    答:对于复杂而开发时间紧项目时,可以采用C语言,但前提要求对该MCU系统C语言和C编译器非常熟悉,特别要注意该C编译系统所能支持数据类型和算法。虽然C语言最普遍一种高级语言,但不同MCU厂家其...
  • (3)引入进程意义是描述多道程序设计系统中程序动态执行过程。 2、进程定义及特征 (1)程序和进程区别 (2)进程五个基本特征:动态性、并发性、独立性、制约性、结构性 3、进程...
  • 黑客(hacker)实际褒义词,维基百科解释喜欢用智力通过创造性方法来挑战脑力极限人,特别他们所感兴趣领域,例如软件编程或电气工程。个人电脑、软件和互联网等划时代产品都黑客创造出来,如...
  • 黑客(hacker)实际褒义词,维基百科解释喜欢用智力通过创造性方法来挑战脑力极限人,特别他们所感兴趣领域,例如软件编程或电气工程。个人电脑、软件和互联网等划时代产品都黑客创造出来,如...
  • 1.4 本书采用的方法 2 1.5 研究代码重要性 2 1.6 Xinu操作系统 2 1.7 本书其余部分组织 3 1.8 小结 3 深入研究 4 第2章 操作系统中TCP/IP软件结构 5 2.1 引言 5 2.2 进程概念 5 2.3 进程优先级 6...
  • 13. 冒泡排序算法的时间复杂度什么? O(n^2) 14. 写出float x 与“零值”比较的if语句。 if(x>0.000001&&x) 16. Internet采用哪种网络协议?该协议的主要层次结构? tcp/ip 应用层/传输层/网络层/数据链路层/物理...

空空如也

空空如也

1 2
收藏数 38
精华内容 15
关键字:

以下哪个是算法的描述方法