ps:在牛客網搜索框搜索"數據分析",點擊搜索分類版塊“試卷”即可看到筆試套題。
套題信息:
客觀題:單選18道,不定項選擇12道
主觀題:編程2道
完成時間: 120分鍾
難度系數: 三星
總分: 100分
1、有一個文件user.txt,每行一條user記錄,共若干行,下面哪個命令可以實現“統計出現次數最多的前3個user及其次數”?
答案1:sort user.txt | uniq -c | sort -rn | head -n 3
答案2:cat user.txt | sort | uniq -c | sort -rn | head -n 3
參考解析:
首先sort進行排序,將重復的行都排在了一起,然后使用uniq -c將重復的行的次數放在了行首,在用sort -rn進行反向和純文本排序,這樣就按照重復次數從高到低進行了排列,最后利用head -n 3 輸出行首的三行。
2、MySQL中t表存在如下數據
+---+---+
| a | b |
+---+---+
| 1 | 2 |
+---+---+
執行如下更新SQL:update t set b = 5 and a= 2 where a = 1之后,a和b值為:
答案:a =1 , b = 0
參考解析:
update t set b = 5, a= 2 where a = 1
題目中用了 and 連接兩個更新賦值(所以說要仔細看)
相當於對b賦了個bool值, 即
update t set b = (5 and a= 2) where a = 1
而a=1 故以上真值為0, 所以出現了 a=1, b=0的結果
3、某網游全天平均在線人數為6000人,玩家每次登錄后平均在線時長為2小時。請你估計一下,平均下來每分鍾約有多少個玩家登錄?
答案:50
參考解析:
平均在線人數為6000人,意味着每分鍾都有6000人同時在線。玩家每次登陸在線時長為2小時,說明這一撥6000人走后還有6000人在兩小時內補上來,所以是6000/120=50,即每分鍾補上來的平均人數
4、有關linux線程的描述,正確的是( )
答案:ABC
D錯
5、進程會在各個狀態之間切換,下面哪些是不可能的
答案:C
參考:
6、某二叉樹有2000個結點,則該二叉樹的最小高度為()
答案:11
參考解析:最小高度說明需要左右兩邊分配均勻,高度為n的二叉樹最多能放2^n-1個節點,n為高度 2^11 - 1>2000,最小高度是11
7、若一序列進棧順序為a1,a2,a3,a4,問存在多少種可能的出棧序列( )
答案:14種
參考解析:
使用卡特蘭公式:n=(2n)!/n!*(n+1)!,將序列長度4代入可得n=14
8、有2個關系模式:
訂單表:R(訂單號,日期,客戶名稱,收貨人)
訂單明細表:S(訂單號,商品編碼,單價,數量)
若要檢索2017/1/1到2017/12/31期間,訂購商品的總金額超過20000元的客戶名稱和總金額,則SQL查詢語句是
答案:C
9、下列屬於有監督學習算法的是:()
答案:D,線性判別分析LDA
參考解析:
譜聚類是一種基於圖論的聚類方法
PCA 線性 無監督降維
主題模型LDA是一種無監督的貝葉斯模型
LDA 線性 有監督降維
10、統計網站的注冊用戶年齡,已知均值是25歲,標准差為2,則用戶年齡在21-29歲的概率至少是多少?
答案:75%
參考解析1:
根據切比雪夫大數定理 P = (1-(1/n)^2)
其中n為abs(邊界與中心值的距離)/標准差,即邊界與均值相距多少個標准差
本題中為n=(29-25)/2=2
帶入第一行的等式,得出P=0.75
參考解析2:
根據切比雪夫不等式
這里sigma=2, epsilon=4
帶入得到0.75
11、假設A國人的平均身高為170cm,標准差為10cm,平均體重為65KG,標准差為5kg,身高與體重均符合正態分布,它們之間的線性相關系數為0.5,那么身高為186cm的A國人平均體重為:
答案:69kg
參考解析:(186-u1)/σ1 * 0.5=(x-u2)/σ2
12、一個序列為(13,18,24,35,47,50,63,83,90,115,124),如果利用二分法查找關鍵字為90的,則需要幾次比較 ?
答案:2
參考解析:
第一次取第(0+10)/2=5個數,值為50,因為90>50,查找{63,83,90,115,124},與中間的數90比較,剛好找到
13、已知一個二叉樹前序遍歷和中序遍歷分別為ABDEGCFH和DBGEACHF,則該二叉樹的后序遍歷為?
答案:DGEBHFCA
參考解析:
前序根左右
中序左根右
后序左右根
由題目前序遍歷,可知根節點 ABDEGCFH 是A,而由中序遍歷 DBGEACHF 可知,左子樹有DBGE,右子樹有CHF,知道了這些再根據前序遍歷和中序遍歷就可以逐個推出樹形。最后即可求出后序遍歷序列
14、一個醫院的病人,40%來自甲地,60%來自乙地,甲地病人為A病的概率為1%,乙地病人為A病的概率為2%,現在這個醫院一個得A病的人,來自甲地的概率為?
答案:0.25
參考解析1:
問題可以視為已知:P(甲)=0.4,P(乙)=0.6,P(A|甲)=0.01,P(A|乙)=0.02,求取P(甲|A)?
P(甲|A) = P(甲,A)/P(A) = P(A|甲)P(甲) /P(A) = (0.010.4)/(0.010.4+0.020.6) = 0.25。
參考解析2:
比方說甲地有400人,乙地有600人! 甲地可能生病有4人,乙地可能生病有12人。 則甲地生病的人數占總生病人數的1/4,即0.25
15、在貝葉斯線性回歸中, 假定似然概率和先驗概率都為高斯分布, 假設先驗概率的高斯准確率參數為a, 似然概率的高斯准確率參數為b, 則后驗概率相當於平方誤差+L2正則,則其正則化參數為
答案:a + b
求解答!
16、以下關於准確率,召回, f1-score說法錯誤的是:
答案:D、f1-score為 准確率*召回率/(准確率+召回率)
解析:f1-score = 2 * 准確率*召回率/(准確率+召回率)
17、在MySQL中,與語句SELECT * FROM user WHERE age NOT BETWEEN 30 AND 70;等價的是()
答案:SELECT * FROM user WHERE age<30 OR age>70;
參考解析:BETWEEN 30 AND 70 是指[30,70] 包含等號
18、把14,27,71,50,93,39按順序插入一棵樹,插入的過程不斷調整使樹為平衡排序二叉樹,最終形成平衡排序二叉樹高度為?
答案:3
參考解析:先寫成排序二叉樹(左子樹小於結點,右子樹大於結點),再轉化為平衡二叉樹(可有多種轉化方式)
二叉排序樹就是任何節點的鍵值一定大於其左子樹中的每一個節點的鍵值,並小於其右子樹中的每一個節點的鍵值。
平衡二叉排序樹要求任何節點的左右子樹高度差不超過1。
19、現有testfile文件內容如下所示 12 12 213 5434 3123 123 34 對所有數字求和,以下做法正確的是:
答:BD
20、以下關於HTTP說法正確是的:
答案:AC
參考解析:
HTTP POST方式比GET更安全;
HTTP POST請求提交參數沒有長度限制
HTTP GET請求提交參數有長度限制
GET 請求可被緩存
GET 請求保留在瀏覽器歷史記錄中
GET 請求可被收藏為書簽
GET 請求不應在處理敏感數據時使用
GET 請求有長度限制
GET 請求只應當用於取回數據
POST 請求不會被緩存
POST 請求不會保留在瀏覽器歷史記錄中
POST 不能被收藏為書簽
POST 請求對數據長度沒有要求
參考鏈接:http://www.w3school.com.cn/tags/html_ref_httpmethods.asp
21、python代碼如下:
1
2
3
foo = [1,2]
foo1 = foo(此處應將foo1替換為foo)
foo.append(3)
答案:foo 值為[1,2,3];foo1 值為[1,2,3]
解析(牛客):
foo1 = foo,這樣兩者指的是同一個數據對象,即同一個內存地址,且對象是一個列表是可變對象,所以一動都動。
22、協同過濾經常被用於推薦系統, 包含基於內存的協同過濾, 基於模型的協同過濾以及混合模型, 以下說法正確的是
答案:AD
參考解析:基於內存的協同過濾(基於用戶的協同過濾推薦、基於物品的協同過濾推薦)一般在數據量較小的應用場景下,可以直接在線使用的實時推薦方法;基於模型的協同過濾推薦一般用於離線計算,它采用機器學習的方法,一般首相將用戶偏好行為數據分成2個數據集(有時可能會將數據集分成k個子集,采用交叉驗證的方式來提高模型精度),一個為訓練集,一個為測試集,使用訓練集數據來訓練出推薦模型,然后使用測試集數據來評估模型的精度,當滿足特定精度時,可以將得到的推薦模型應用於實際線上環境。
23、以下有關SQL性能優化正確的是:
答案:ABCD
索引失效的情形:
1、在索引列中用單行函數,會導致其失效! 2、在索引中用運算,也會導致其失效!
3、觸發影式轉換。
1、表的主鍵、外鍵必須有索引; 2、數據量超過300的表應該有索引; 3、經常與其他表進行連接的表,在連接字段上應該建立索引; 4、經常出現在Where子句中的字段,特別是大表的字段,應該建立索引; 5、索引應該建在選擇性高的字段上; 6、索引應該建在小字段上,對於大的文本字段甚至超長字段,不要建索引; 7、復合索引的建立需要進行仔細分析;盡量考慮用單字段索引代替: 8、正確選擇復合索引中的主列字段,一般是選擇性較好的字段; 9、復合索引的幾個字段是否經常同時以AND方式出現在Where子句中?單字段查詢是否極少甚至沒有?如果是,則可以建立復合索引;否則考慮單字段索引; 10、如果復合索引中包含的字段經常單獨出現在Where子句中,則分解為多個單字段索引;
24、如下哪些sql語句能查詢出每門課都都大於80分的學生姓名,部分數據如下表(student_score)所示
答案:AB
參考解析:
A:子查詢語句找出有(至少一門)成績小於80的學生姓名,主語句要求學生姓名不在子查詢的結果中,正確
B:分數最低的一門大於80,正確
C:有一門大於80,就被選中了,不對
D:sub_name應該換成stu_name,否則不對,會報錯
25、 兩個隨機變量x,y,服從聯合概率分布p(x,y), 以下等式成立的有
答案:AC
求解答!!
26、東東從京京那里了解到有一個無限長的數字序列: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, ...(數字k在該序列中正好出現k次)。東東想知道這個數字序列的第n項是多少,你能幫幫他么
參考答案(python3):
參考解析:
假設第n項為k,從一加到k的值應該是sum=(k+1)*k/2,這個數可能大於或等於n。

即解 (n已知),算出來的結果向上取整即可
求根公式:
27、東東對冪運算很感興趣,在學習的過程中東東發現了一些有趣的性質: 9^3 = 27^2, 2^10 = 32^2 東東對這個性質充滿了好奇,東東現在給出一個整數n,希望你能幫助他求出滿足 a^b = c^d(1 ≤ a,b,c,d ≤ n)的式子有多少個。 例如當n = 2: 1^1=1^1 1^1=1^2 1^2=1^1 1^2=1^2 2^1=2^1 2^2=2^2 一共有6個滿足要求的式子
解答鏈接:
28、以下屬於凸函數的是
答案:AD
29、以下關於二項分布說法正確的是
答案:BC
30、 0 在機器學習中,經常采用線性變換,將基變換為正交基, 下列矩陣式正交矩陣的是
答案:AAT=I,則A為正交矩陣。
關於轉置矩陣
關於矩陣相乘:矩陣相乘只有在第一個矩陣的列數和第二個矩陣的行數相同時才有意義 。(以下是例子)
補充:關於求矩陣的行列式:
31、用瀏覽器訪問www.jd.com時,可能使用到的協議有?
答案:ABD
參考解析:當接入網絡時可能會用到PPP協議;而當計算機不知道某主機的MAC地址時,用IP地址查詢相應的MAC地址時會用到ARP協議;而當訪問Web網站時,若DNS緩沖沒有存儲相應域名的IP地址,用域名查詢相應的IP地址時要使用DNS協議,而DNS是基於UDP協議的,所以可能用到UDP協議,SMTP只有使用郵件客戶端發送郵件,或是郵件服務器向別的郵件服務器發送郵件時才會用到
32、有A,B 兩個國家,人口比例為4:6,A國的犯罪率為0.1%,B國的為0.2%。現在有一個新的犯罪事件,發生在A國的概率是?
答案:0.25
參考解析:同14,是同一考點