阿里巴巴研发笔试题解析:概率、编程与逻辑思维

版权申诉
0 下载量 190 浏览量 更新于2024-09-09 收藏 556KB PDF 举报
"阿里巴巴2016研发工程师笔试题及答案(一).pdf" 这份文档是阿里巴巴2016年研发工程师笔试题的一部分,包含了多道与计算机科学和技术相关的题目,涵盖编程、数据结构、概率论等多个领域。以下是题目的详细解析: 1. 光线反射问题:题目描述了一个光线从点A出发,经过AD和CD两条直线上的多次反射,最终垂直到达点B。已知角CDA=8°,要求求出最多可能的反射次数。根据反射定律,入射角等于反射角,因此每次反射都会改变光线的方向,直到它垂直于AD或CD。由于题目指出B点可能在AD上也可能在CD上,且从B点原路反射回A点的次数不计入,所以要找到最多反射次数的极限情况。当B点位于AD上时,光线最多反射40次(20次在AD上,20次在CD上);当B点位于CD上时,光线最多反射38次。因此,答案是40。 2. C++对象创建问题:题目给出了几个C++语句,要求确定它们创建了多少个`CSomething`对象。通过分析每个语句: - `CSomethinga();` 创建1个对象 - `CSomethingb(2);` 创建1个对象 - `CSomethingc[3];` 创建3个对象 - `CSomething&ra=b;` 不创建新对象,ra是b的引用 - `CSomethingd=b;` 不创建新对象,d是b的副本 - `CSomething*pA=c;` 不创建新对象,pA是c的指针 - `CSomething*p=newCSomething(4);` 创建1个对象 总共创建了1 + 1 + 3 + 1 = 6个对象。答案是6。 3. 商品浏览概率问题:这是一个关于概率的题目,商品A在t时刻有人浏览,下一时刻无人浏览的概率是0.35,反之是0.65。要求在100000个时间单位后,商品仍然有人浏览的概率。根据马尔可夫链的性质,可以计算出连续100000个时间单位后仍然有人浏览的概率。这是一个几何分布的问题,初始状态是有人浏览,概率为0.65,没人浏览的转移概率是0.35。因此,在100000个时间单位后,商品仍有人浏览的概率是$(0.65)^{100000}$。根据题目选项,选择最接近的值,答案是0.5371。 4. 猜数字游戏问题:这是一个逻辑推理题。牛妹已经猜了三次,分别得到了0A4B,1A3B,2A2B的反馈。要得到4A0B,意味着所有数字都正确且位置也正确。根据前三次的猜测,我们可以推断出正确数字是2341。牛妹至少还需要一次猜测来确认位置,因此答案是1。 5. 二叉树后续遍历问题:题目要求找到二叉树后续遍历输出为A,B,C的所有可能二叉树的数量。后续遍历的顺序是左子树->右子树->根节点。对于这棵二叉树,根节点是C,A和B分别作为左子树和右子树。A和B可以是任意的二叉树,A有1种可能,B有2种可能(因为二叉树只有1个或2个节点时,后续遍历结果只有一种)。因此,总共有1 * 2 = 2棵这样的二叉树。 6. 数据结构问题:这个问题没有提供具体内容,可能是一道关于数据结构(如数组、链表、树等)的问题,需要具体题目描述才能解答。 总结来说,这份笔试题涉及的知识点包括光学反射定律、C++对象创建与管理、概率统计、逻辑推理和二叉树的遍历。解答这些问题需要扎实的计算机科学基础和一定的数学能力。