2012-10-9杭州阿里巴巴,研发笔试题目

本文详细解析了端口测试、贝叶斯公式、全概率公式应用、数组排序优化算法、字符串序列分析及实现,提供了算法解决方案与代码示例。

首先声明:答案不是不保证正确定。如果有不同的意见和正确答案,给以给我留言。






11题:netstat -an

 telnet ip port 均可以测试端口。








18题和答案来自于:http://blog.youkuaiyun.com/v_july_v/article/details/7974418

http://blog.youkuaiyun.com/v_july_v/article/details/7974418点评:
贝叶斯公式 + 全概率公式作答(参看链接:http://www.doc88.com/p-132711202556.html具体解答如下图所示:

第19题和20题目个答案来自于:http://blog.youkuaiyun.com/twtsa/article/details/8055143


a[i]在排序后的位置是[i-k, i+k],a[i+2k]在排序后的位置是[i+k, i+3k],必然有a[i] <= a[i+2k]

所以数组a里实际上有2k个各自有序的、交错的子序列,如a1={a[0], a[2k], a[4k]...},a2={a[1], a[2k+1], a[4k+1], ...} 

所以可以用2k-路归并排序,用一个大小为2k的小顶堆辅助归并,时间复杂度是O(n*log2k),小于O(nk)。


个人方案:时间复杂为o(n*lgk),

基本思想:

方案:申请一个大小为k的堆,用0-k-1个数组的元素初始化这个堆。现在把第k个数组元素和堆顶相比较,如果比堆顶元素小,直接输出该第k个元素。如果大,淘汰堆顶的元素(输出堆顶元素),把第k个元素加到堆中,调整堆,调整的复杂度是lgk,这样需要操作n次,复杂度是n(lgk)。

 ps:借助外排序的败者树的思想。


20题:字符串数组seq[] = a,b,c,d,aa,ba,ca,da,ab,bb,cb,db,ac...,aaa,baa,...

(1)aaa是第几个字符串

(2)ababacd是第几个

(3)第1000个字符串是什么

(4)编写函数find(),返回字符串在seq中是第几个(语言不限)

分析:

(1).长度,很容易推导出长度是n的字符串在第4^(n-1)个之后,aaa是1位和2位全排列后的第一个,即第4^(3-1)+4^(2-1)之后的第一个,也即第21个

(2)字符,每个字符可以判断出它之前的字符全排列了多少次,

字    符: a b a b a c d

全排列: 0 1 0 1 0 2 3

4^次幂: 0 1 2 3 4 5 6

即1*4^1+1*4^3+2*4^5+3*4^6 = 14405(考场不让用计算器...换成2的次幂来算)

(3)把1000转为二进制是 11 11 10 10 00

他们分别对应4进制里的 3    3   2   2   0

对应字符就是 d d c c a,倒序就是accdd,这里算出来的是1001的字符串

第1000个是上一个, 即 accdd-1 = dbcdd

(4)可执行代码如下:

[cpp]  view plain copy
  1. #include <iostream>  
  2. #include <string>  
  3. using namespace std;  
  4.   
  5. long find(char seq[]){  
  6.     long sum=1;  
  7.     long tmp=1;  
  8.     int len = strlen(seq);  
  9.     for (int i=0;i<len;i++)  
  10.     {  
  11.         sum+=(seq[i]-'a')*tmp;  
  12.         tmp*=4;  
  13.     }  
  14.     return sum;  
  15. }  
  16.   
  17. int main(){  
  18.     cout<<find("ababacd")<<endl;  
  19.     cout<<find("dbcdd")<<endl;  
  20.     return 0;  
  21. }  

个人思想与理解:





【激光质量检测】利用丝杆与步进电机的组合装置带动光源的移动,完成对光源使用切片法测量其光束质量的目的研究(Matlab代码实现)内容概要:本文研究了利用丝杆与步进电机的组合装置带动光源移动,结合切片法实现对激光光源光束质量的精确测量方法,并提供了基于Matlab的代码实现方案。该系统通过机械装置精确控制光源位置,采集不同截面的光强分布数据,进而分析光束的聚焦特性、发散角、光斑尺寸等关键质量参数,适用于高精度光学检测场景。研究重点在于硬件控制与图像处理算法的协同设计,实现了自动化、高重复性的光束质量评估流程。; 适合人群:具备一定光学基础知识和Matlab编程能力的科研人员或工程技术人员,尤其适合从事激光应用、光电检测、精密仪器开发等相关领域的研究生及研发工程师。; 使用场景及目标:①实现对连续或脉冲激光器输出光束的质量评估;②为激光加工、医疗激光、通信激光等应用场景提供可靠的光束分析手段;③通过Matlab仿真与实际控制对接,验证切片法测量方案的有效性与精度。; 阅读建议:建议读者结合机械控制原理与光学测量理论同步理解文档内容,重点关注步进电机控制逻辑与切片数据处理算法的衔接部分,实际应用时需校准装置并优化采样间距以提高测量精度。
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值