zoukankan      html  css  js  c++  java
  • 概率速度2013年阿里巴巴暑期实习生笔试题2013年5月5日考试

    题记:写这篇博客要主是加深自己对概率速度的意识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

        

    昨天来本想去加入北大的口试,结果去了说不给霸笔,尼玛,好吧,哥又乖乖的回来了,在现有网上有目题了,拿过来做做,好好准备下加入19号的口试!

        

    --------------------------------------------------------------------------------------------------------------

        

    答题说明:

        

    1.答题间时90分钟,请注意掌控间时;

        

    2.试题分为四个部份:单项选择题(10题,20分)、不定向选择题(4题,20分)、填空问答(5题,40分)、综合体(1题,20分);

        

     

        

    --------------------------------------------------------------------------------------------------------------

        

        一、单项选择题

        

        

    1.列下说法错误的是:

        

    A.SATA硬盘的速度大约为500Mbps/s

        B.读取18XDVD盘光据数的速度为1Gbps

        C.千兆以太网的据数读取速度为1Gpbs

        D.读取DDR3内存据数的速度为100Gbps

        

    分析:A和B比拟,怎么盘光的速度比硬盘还快?B必错无疑啊。千兆以太网的速度是1000Mbps,也可以写成1Gbps。DDR3-1600的极限传输速度是12.8GBp/s

        

    2.()不能用于Linux中的程进通信

        

    A.共享内存

        

    B.定名管道

        

    C.信号量

        D.临界区

        分析:Linux中的程进通信式方有:管道,消息队列,共享内存,套接字Socket,信号量

        

    3.设在内存中有P1,P2,P3三道序程,并按照P1,P2,P3的优先级序次行运,其中部内盘算和IO作操间时由下表给出(CPU盘算和IO资源都只能同时由一个序程占用):

        

    P1:盘算60ms---》IO 80ms---》盘算20ms

        

    P2:盘算120ms---》IO 40ms---》盘算40ms

        

    P3:盘算40ms---》IO 80ms---》盘算40ms

        

    实现三道序程比单道行运节俭的间时是()

        

    A.80ms

        

    B.120ms

        C.160ms

        D.200ms

        

    4.两个等价程线发并的执行列下序程,a为全局变量,初始为0,设假printf、++、--作操都是原子性的,则输出不多是()

        

     

    void foo() {
        if(a <= 0) {
            a++;
        }
        else{
            a--;
        }
        printf("%d", a);
    }

        A.01

        

    B.10

        

    C.12

        

    D.22

        

    5.给定fun函数如下,那么fun(10)的输出结果是()

        

     

    int fun(intx)
    {
        return(x==1)? 1 : (x + fun(x-1));
    }

        

    A.0

        

    B.10

        C.55

        

    D.3628800

        

    6.在c++序程中,如果一个整型变量频仍用使,最好将他定义为()

        

    A.auto

        

    B.extern

        

    C.static

        D.register

        

    7.长为n的字符串中匹配长度为m的串子的复杂度为()

        

    A.O(N)

        B.O(M+N)

        C.O(N+logM)

        

    D.O(M+logN)

        

    8.判断一含包n个整数a[]中否是存在i、j、k足满a[i] + a[j] = a[k]的间时复杂度最小值是()

        A.O(n^2)        B. O(n^2*logn)       C. O(n^3)    D. O(nlogn)

        

        每日一道理
    喜马拉雅直冲霄汉,可上面有攀爬者的旗帜;撒哈拉沙漠一望无垠,可里头有跋涉者的脚印;阿尔卑斯山壁立千仞,可其中有探险者的身影;雅鲁藏布江湍急浩荡,可其中有勇敢者的故事。

        

    9.列下序排算法中最坏情况下的间时复杂度不是n(n-1)/2的是

        A.快速排     B.冒泡排   C.直接插入排   D.堆排

        10.发射三次炮弹,射中目标的概率是0.95,叨教发射一次能击中目标的概率是多少?

        A0.63

        B0.50

        

    C.0.32

        

    D.0.86

        

    二、不定向选择题

        

    1.不记得

        

    2.一个栈的入栈数列为:1、2、3、4、5、6;列下哪个是可能的出栈序顺。(项选不记得)

        

    3.列下哪些代码可以使得a和b交换数值。(项选不记得)

        

    4.A和B晚上无聊就开始数星星。每次只能数K个(20<=k<=30)A和B流轮数。最后谁把星星数完谁就得胜,那么当星星量数为多少时候A必胜?(项选不记得)

        

    三、填空问答题

        

    1.给你一个整型数组A[N],实现一个小序程代码(20行内之),使得A[N]逆向,即原数组为1,2,3,4,逆向以后为4,3,2,1

        

     

    void revense(int * a,int n) {
    	int begin = 0, end = n-1;
    	int tmp;
    	while(begin < end)
    	{
    		tmp = a[begin];
    		a[begin] = a[end];
    		a[end] = tmp;
    		++begin;
    		--end;
    	}
    }

        

    2.自选度调方面的问题,目题很长,就是给你三个程线,别分采取先来先配分的策略和最短执行之间的度调策略,然后盘算个每程线从提交到执行实现的间时。目题在实太长,还有几个表格。察考的是作操系统里头作业度调算法先进先出和最短作业优先。

        

    3.有个苦逼的班上族,他天天忘却定闹钟的概率为0.2,班上堵车的概率为0.5,如果他既没定闹钟班上又堵车那他迟到的概率为1.0,如果他定了闹钟但是班上堵车那他迟到的概率为0.9,如果他没定闹钟但是班上不堵车他迟到的概率为0.8,如果他既定了闹钟班上又不堵车那他迟到的概率为0.0,那么求出他在60天里班上迟到的期望。

        

    案答:30.6天

        

    4.战报交流:战场上不同的置位有N个士战(n>4),个每士战晓得前当的一些战况,在现要需这n个士战通过通话交流,互相达传自己晓得的战况信息,每次通话,可以让通话的两边晓得对方的全部报情,设盘算法,用使起码的通话次数,是的战场上的n个兵士晓得全部的战况信息,不要需写序程代码,得出起码的通话次数。

        

    5.有N个人,其中一个明星和n-1个大众,大众都意识明星,明星不意识任何大众,大众和大众之间的意识系关不晓得,在现如果你是机器人R2T2,你每次问一个人否是意识另外一个人的价值为O(1),试计划一种算法找出明星,并给出间时复杂度(没有复杂度不得分)。

        

    案答:
    遍历 1~n 这n个人;
    首先掏出 1号 和 2号,
    如果 1 意识 2, 那么把 1 去掉;
    如果1不意识2,就能够把2去掉了。
    每次较比都去掉一个,如此环循;n-1次以后只有一个人了
    间时复杂度: O(n-1)

        

     

        

    四、综合题

        

    有一个宝淘商户,在某市城有n个仓库,个每仓库的储货量不同,在现要通过货品运输,将每次仓库的储货量酿成分歧的,n个仓库之间的运输线路围城一个圈,即1->2->3->4->...->n->1->...,货品只能通过接连的仓库运输,计划最小的送运本钱(运货量*程路)到达宝淘商户的求要,并写出代码。

        

    解答:这个目题类似的目题有:

        

    目题:http://www.lydsy.com/JudgeOnline/problem.php?id=1045
    有n个小朋友坐成一圈,每人有ai个糖果。每人只能给阁下两人递传糖果。每人每次传
    递一个糖果价值为1,求使全部人得获均等糖果的最小价值。
    分析:
    设假a1分给an的糖果数为k,则可以到得以下的信息:
      a1              a2                       a3   an-1 an
    前当数目:a1-k           a2 a3   an-1 an+k
    所需价值:|a1-k-ave| |a1+a2-k-2*ave| |a1+a2+a3-k-3*ave||a1+..+a(n-1)-k-(n-1)*ave|   |k|
    以sum[i]表现从a1加到ai减掉i*ave的和值,这以上可以化简为
    总价值 = |s1-k|+|s2-k|+...+|s(n-1)-k|+|k|
    不难看出:当k为s1...s(n-1)中的中位数的时候,所需的价值最小

        

    代码转载于络网:

        

     

    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    const int X = 1000005;
    typedef longlong ll;
    ll sum[X],a[X];
    ll n;
    ll Abs(ll x){
        return max(x,-x);
    }
    int main(){
        //freopen("sum.in","r",stdin);
        while(cin>>n){
            ll x;
            ll tot = 0;
            for(inti=1;i<=n;i++){
                scanf("%lld",&a[i]);
                tot += a[i];
            }
            ll ave = tot/n;
            for(inti=1;i<n;i++)
                sum[i] = a[i]+sum[i-1]-ave;
            sort(sum+1,sum+n);
            ll mid = sum[n/2];
            ll ans = Abs(mid);
            for(inti=1;i<n;i++)
                ans += Abs(sum[i]-mid);
            cout<<ans<<endl;
        }
        return0;
    }

        

     

        

     

        

    原文章地址:http://50vip.com/blog.php?i=223

    文章结束给大家分享下程序员的一些笑话语录: 苹果与谷歌之争就是封闭收费与自由免费思想之争。(别急着把google来膜拜哦?那可是一家公司,以赚钱为目标的公司!当年我Party就是这样把广大劳动人民吸引过来的。今天的结果你们都看到了。)

  • 相关阅读:
    函数对象、名称空间与作用域
    函数
    leetcode语法练习(二)
    leetcode语法练习(一)
    字符编码与文件操作
    集合类型内置方法与总结
    列表,元组与字典类型
    数据类型内置方法之数据类型与字符串类型
    [SVG实战]饼图全面解析
    [JavaScript语法学习]重新认识JavaScript
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3063395.html
Copyright © 2011-2022 走看看