面試題目整理--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,利用切線不斷逼近函數零點,迭代距離可以由切線定義得到。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章