面试题目整理--20181108

       今天上午去面试了一下算法工程师,整理一下面试的问题。整体来说,面试难度不大,后来才知道这个部门是做数据处理以及特征工程的,已经被问到特征工程好几次了,只是简单看过PCA, SVD等降维技术看来有必要把特征工程给学习一下。

1.一张表字段  id  name  grade ,其中每个学生可能存储多个成绩,要求返回每个学生的最大成绩。

使用group by以及max函数即可,如果要取每个学生的前两个成绩应该怎么做。

2. 使用python读入一个文件,求出每列的均值

from numpy import *
fr = open('data.txt')
str = [line.strip().split(',') for line in fr.readlines()]
d = mat([list(map(float, line)) for line in str])
m = mean(d, axis=0)

3.利用python声明一个类,类名Student  字段  id,name  构造方法以及返回Id和name的方法

class Student:

    id = 0
    sname = ''
    
    def __init__(self, id, sname):
	    self.id = id
	    self.sname = sname
		
    def getStudentIdAndName(self):
	    return self.id, self.sname
	
def test():
    s = Student(1, 'sam')
    return s.getStudentIdAndName()

python类里面还是有很多细节,写了好久才实现完整。

4.linux中根据进程名杀死进程

ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9

kill命令:

信号编号9  SIGKILL  直接杀死进程

kill -15  SIGTERM  当进程收到此信号,结果如下:

程序立刻停止;当程序释放相应资源后再停止;程序可能仍然继续运行  多数进程会释放资源然后停止,如果等待IO,则会阻塞。

5.求a的平方根,a>1 使其误差err小于1xe-5.

牛顿迭代法求解平方根:

要求

令:   即求f(x)的零点。

由泰勒展开式:

得到f(x)的近似表达式:

求f(x)=0,即求:

将f(x)代入:

得到递推表达式如上:

程序如下:

def squart(a, err):
    x = a
    while x*x-a>err:
	    x = (x + a/x)/2
    return x

也可以从切线角度理解牛顿迭代:

零点是x*,选定初始点x0,利用切线不断逼近函数零点,迭代距离可以由切线定义得到。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值