1. 程式人生 > >京東校招筆試題及解析

京東校招筆試題及解析

//僅供學習,請勿轉載

一:若k為整形,下述while迴圈的次數為()
k =1000;
while(k>1)
{
Print k;
k=k/k;
}
解:log2(1024)=10;9<log2(1000)<10,所以,結果為9

二:基於二次準則函式的H-K演算法較之於感知器演算法的優點是();
解:1.可以判別問題是否線性可分。3:其解的適應性更好
HK演算法思想很樸實,就是在最小均方誤差準則下求得權向量.
他相對於感知器演算法的優點在於,他適用於線性可分和非線性可分得情況,對於線性可分的情況,給出最優權向量,對於非線性可分得情況,能夠判別出來,以退出迭代過程.

三:在統計模式分類中,當先驗概率未知時,可以使用()?
1
:N-P判決,2:最小最大損失準則。 在貝葉斯決策中,對於先驗概率p(y),分為已知和未知兩種情況。 1. p(y)已知,直接使用貝葉斯公式求後驗概率即可; 2. p(y)未知,可以使用聶曼-皮爾遜決策(N-P決策)來計算決策面。而最大最小損失規則主要是使用解決最小損失規則時先驗概率未知或難以計算的問題的。 四:下面函式可以作為聚類分析中的判別函式的有? Bc 五:在()情況下,用分支定界法做特徵選擇計算量相對較少?BD 1:選用的可分性判據J對特徵數目單調不減。2: 一般在( 可分性判據對特徵個數具有單調性)和( Cnm>>n )的條件下,可以使用分支定界法以減少計算量 分支定界法:定義一個滿足單調性條件的評價準則函式,對兩個特徵子集s1和s2而言,如果s1是s2的子集,那麼s1所對應的評價函式必須要小於s2所對應的評價函式值,在定義了該評價函式的前提下,該演算法對最終特徵子集的選擇過程可以用一棵樹來描述,樹根是所有特徵的集合從樹根可分性判據值和事先定義的最佳特徵子集的特徵數目,搜尋滿足要求的特徵子集。 但是,存在三個問題:1.
該演算法無法對所有的特徵依據其重要性進行排序,如何事先確定最優特徵子集中特徵的數目是一個很大的問題。2:合乎問題要求的滿足單調性的可分性判據難以設計。3:當處理高維多分類問題時,演算法要執行多次,計算效率低下的問題將非常明顯。 六:以下()屬於線性分類器最佳準則?acd 1:感知準則函式2:支援向量機3:Fisher準則 解:線性分類器有三大類:感知器準則函式,SVM,Fisher準則。 感知器準則函式:代價函式J=-(W*X+w0),分類的準則是最小化代價函式。感知器是神經網路的基礎。 SVM:支援向量機也是很經典演算法,優化目標是最大間隔,又稱最大間隔分類器,是一種典型的線性分類器。(使用核函式可解決非線性問題) Fisher準則:更廣泛的稱呼是線性判別分析(LDA),將所有樣本投影到一條遠點出發的直線,使得同類樣本距離儘可能的小,不同類樣本距離儘可能的大,具體為最大化“廣義瑞利熵” 七:有兩個樣本點,第一個點為正樣本,它的特徵向量是(0
,-1);第二個點為負樣本,它的特徵向量是(2,3),從這兩個樣本點組成的訓練集構建一個線性SVM分類器的分類面方程式()b 解:先求斜率,再求中點。x+2y=3;斜率:(3-(-1))/(2-0)=2;中點(1,1), 八:下面程式碼片段中,存在編譯錯誤的語句是bcd Byte b1=1,b2=2,b3,b6,b8; Final byte b4=4,b5=6,b7; b3=(b1+b2); b6=b4+b5; b8=(b1+b4); b7=(b2+b5); 解:java中的型別解析知識點,final 根據自己型別轉化,b1+b2變成int型,b3是byte型,無法接受 b4+b5是byte型別,b1+b4是int型別,b2+b5是int型別。 九:SecondNamenode的正確描述是() 1:SecondNamenode會週期的進行fsimage檔案的合併,防止edits檔案過大,導致Namenode啟動時間過長,應該與Namenode部署到同一個節點上。 2:SecondNamenode是對主Namenode的一個補充,對記憶體的需求和Namenode相同。 SecondNamenode是對主Namenode的一個補充,它會週期的執行對HDFS元資料的檢查點。 當前的設計僅僅允許每個HDFS只有單個SecondNamenode結點。 SecondNamenode是有一個後臺的程序,會定期的被喚醒(喚醒的週期依賴相關配置)執行檢查點任務,然後繼續休眠。 它使用ClientProtocol協議與主Namenode通訊。 SecondNamenode最好與Namenode部署到不同的伺服器( 應該在merge的過程中,SecondNamenode對記憶體的需求與Namenode是相同的,所以對於那些 大型的生產系統 中,如果將兩者部署 到同臺伺服器 上,在 記憶體上會出現 瓶頸。) 十:假設x1和x2是兩個以0為均值,1為標準差的正態分佈,那麼x1+x2的概率密度分佈是b 解:以0為均值,sqrt(2)為標準差的正態分佈。 若x1與x2相互獨立,則E(x1+x2)=E(x1)+E(x2)=0;方差:Val(x1+x2)=Val(x1)+Val(x2)=2; 十一: #include<stdio.h> int cnt=0; int fib(int n) { Cnt++; If(n==0) Return 1; Else if(n==1) Return 2; Else Return fib(n-1)+fib(n-2); } Void main() { Fib(8); Printf(“%d”,cnt); } 解:從f(0),f(1)向上加; n=0;cnt=1; n=1;cnt=1; n=2;cnt=3;f(2)=f(1)+f(0)+1=3 n=3;cnt=5; ….. 十二:下面有關Hive的說法正確的是() 1:Hive是基於Hadoop的一個數據倉庫工具,可以將結構化的資料文字對映為一張資料庫表,並提供簡單的SQL查詢功能 2:Hivez在載入資料過程中不會對資料進行任何的修改,只是將資料移動到HDFS中Hive設定的目錄下。 Hive使用類sql語句進行相關操作,稱為HQL,它允許熟悉 SQL 的使用者查詢資料。同時,這個語言也允許熟悉 MapReduce 開發者的開發自定義的 mapper 和 reducer 來處理內建的 mapper 和 reducer 無法完成的複雜的分析工作。 Hive 構建在基於靜態批處理的Hadoop 之上,Hadoop 通常都有較高的延遲並且在作業提交和排程的時候需要大量的開銷。因此,Hive 並不能夠在大規模資料集上實現低延遲快速的查詢,例如,Hive 在幾百MB 的資料集上執行查詢一般有分鐘級的時間延遲。 Hive 並不適合那些需要低延遲的應用,例如,聯機事務處理(OLTP)。Hive 查詢操作過程嚴格遵守Hadoop MapReduce 的作業執行模型,Hive 將使用者的HiveQL 語句通過直譯器轉換為MapReduce 作業提交到Hadoop 叢集上,Hadoop 監控作業執行過程,然後返回作業執行結果給使用者。Hive 並非為聯機事務處理而設計,Hive 並不提供實時的查詢和基於行級的資料更新操作。Hive 的最佳使用場合是大資料集的批處理作業,例如,網路日誌分析。 十三:關於input split和block的描述正確的是() 1:input split是一種記錄的邏輯劃分,而block是對輸入資料的物理分割,兩者之間有著本質的區別 一個split不會包含零點幾或者幾點幾個Block,一定是包含大於一個整數個Block 一個split不會包含兩個File的Block,不會跨界File邊界 Split和Block的關係是一對多的關係 Maptask的個數最終決定於split的長度 十四:以下是strom特點的是() 1:實時性,2:容錯機制3:批處理4:高可靠性 Strom是一個分散式的,容錯的實時計算系統,strom的特點如下:簡單的程式設計模型,類似於Mapreduce降低了並行批處理的複雜度,strom降低了進行實時處理的複雜性。 可以使用各種程式語言,預設支援clojure,java,ruby和python。要增加其他語言的支援,只需實現一個簡單的strom通訊協議即可。 容錯性,strom會管理工作程序和節點的故障。 水平擴充套件,計算在多個執行緒、程序和伺服器之間並行進行的。 可靠地訊息處理,strom保證每個訊息至少完整處理一次,任務處理失敗時,它會負責從訊息源重試訊息。 本地模式,strom有一個本地模式,可以在處理過程中完全模擬strom叢集,這讓你完全快速進行開發和單元測試。 十五:以下幾種模型方法屬於判別式模型(Discriminative Model)的有() 1:條件隨機場 2:區分度訓練 解:常見的判別模型有: 支援向量機 傳統神經網路 線性判別分析 線性迴歸 產生式模型: 高斯 樸素貝葉斯 混合多項式 混合高斯模型 隱馬爾科夫模型 十六:大整數845678992357836701轉化成16進位制的表示,最後兩位字元是() 9D 解:701拿出來Mod(16).結果為為13.最後一位為D 十七:已知資料表A中每個元素距其最終位置不遠,為了節約時間,應該採取的演算法是() 直接插入排序 因為每個資料裡最終目標不遠,說明資料基本有序,直接插入排序是資料越有序越快,最快時間複雜度可達到O(n),選擇排序無論何時都是O(n^2), 快速排序越有序越慢,它要從後到前遍歷找比基準小的,時間複雜度達到O(n),堆排序需要不斷進行調整,時間複雜度為O(nlog2^n) 十八:下列有關k-means演算法說法正確的是: 1:不能自動識別類的個數,隨機挑選初始點為中心點 2:初始聚類中心的選擇對聚類結果的影響很大 十九:在linux中,file.sh檔案的許可權為-rw-r--r-x,其對應許可權用數值形式表示為() Linux許可權中,第一個指是否是目錄,後面分別指對擁有者、所屬組,其他人的許可權,許可權有三位,分別是讀,寫,執行,-代表0,否則代表1,所以,表示為110 100 101 =6 4 5 二十:設圖的相鄰矩陣如下: 0 1 1 1 1 1 0 1 0 0 1 1 0 1 1 1 0 1 0 1 1 0 1 1 0 則G的頂點有5個,邊有8條 解:這是個無向圖 二十一:有一段樓梯臺階有15級,以小明的腳力一步最多隻能跨3級,請問他登上這個樓梯有多少種登法。 解:這是一個遞迴問題,對斐波那契問題的變形,f(15)=f(14)+f(13)+f(12),已知f(1)=1,f(2)=2,f(3)=4 二十二:整數240有幾個因數() 解:質數分解,240=2^4*3*5;所以,因數個數(4+1)*(1+1)*(1+1)=20個 二十三:Navie Bayes是一種特殊的Bayes分類器,特徵變數是X,類別標籤是C,它的一個假定是:() 解:特徵變數X的各個維度是類別條件獨立隨機變數。 二十四: 程式設計題:有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或者二級,要走上m級,共有多少種走法?注:從一級到一級有0種走法。 給定一個正整數int n,請返回一個數,代表上樓的方式數。保證n小於等於100.為了防止溢位,請返回結果Mod 100000007 二十五: 小東和三個朋友一起在樓上拋小球,他們站在樓房的不同層,假設小東佔站的樓層距離地面N米,球從他手裡自由落下,每次落地後反跳回上一次下落高度的一半,並以此類推知道全部落到地面不跳,求4個小球一共經過多少米?(數字都為整數) 解:利用極限思想 Res=x+2*x*(1/2+1/4+1/8+…………)=3*x 第二套: 單選題 1:在區間[-2,2]裡任取2個實數,它們的平方和>1的概率是大約是( 80% ) 1-小圓的面積/矩形的面積 2:已知一組資料的協方差矩陣P,下面關於主分量說法錯誤的是() K-L變換與PCA變換是不同的概念,PCA的變換矩陣是協方差矩陣,K-L變換的變換矩陣可以有很多種(二階矩陣、協方差矩陣、總類內離散度矩陣等等)。當K-L變換矩陣為協方差矩陣時,等同於PCA。 解:1:主分量分析的最佳準則是對一組資料進行按一組正交基分解, 在只取相同數量分量的條件下,以均方誤差計算截尾誤差最小。2:在經主分量分解後,協方差矩陣成為對角矩陣3:主分量是通過求協方差矩陣的特徵值得到 3:從根開始按層次(第0層->第1層->第2層)遍歷一顆二叉樹,需要使用什麼輔助資料結構?( queue ) 4:Which of the following statements are true?(acd) A :We can create a binary tree from given inorder and preorder traversal sequences. B:We can create a binary tree from given preorder and postorder traversal sequences. C:For an almost sorted array, insertion sort can be more effective than Quicksort. D:Suppose T(n) is the runtime of resolving a problem with n elements, T(n) = Θ(1) if n = 1; T(n) = 2T(n/2) + Θ(n) if > 1; so T(n) is Θ(n log n). E:None of the above. 5:下列哪種排序演算法是不穩定演算法cd 快速排序 堆排序 6:對於一個分散式計算系統來說,以下哪三個指標不能同時完成?abd 1:一致性2:可用性3:區分容錯性 7:以下關於PMF(概率質量函式),PDF(概率密度函式),CDF(累積分佈函式)描述錯誤的是() 解: 1:CDF是PDF在特定區間上的積分2:PMF描述的是離散型隨機變數在特定取值點的概率3:有一個分佈的CDF函式H(x),則H(a)等於P(X<=a) 8:在分類問題中,我們經常會遇到正負樣本資料量不等的情況,比如正樣本為10w條資料,負樣本只有1w條資料,以下最合適的處理方法是() 解:將負樣本重複10次,生成10w樣本量,打亂順序參與分類 9:Hadoop的核心概念之一是map/reduce,關於map/reduce以下描述錯誤的是( ) 解:1:map/reduce是“分而治之”思想的實現模型2:使用者不能直接設定map task的數量,而只能通過修改 Input Split的最小值,間接改變map task的數量3:map階段對輸入的資料劃分成小塊並在各個節點上並行處理,等所有節點的資料都處理完了,轉入reduce階段,對各個節點處理的結果進行合併,最終輸出歸併後的結果 10:在Logistic Regression 中,如果同時加入L1和L2範數,會產生什麼效果() 可以做特徵選擇,並在一定程度上防止過擬合 11:執行程式 for file do tr a-z A-Z < $file > $file done的結果是( )檔案中的小寫轉換為大寫 12:幼兒園10個小朋友排成一列,其中3個小朋友是女孩,求女孩排在一起的概率是( 1/15 ) 所有人排列的情況是10! 把三個小女孩看做整體排列是8! 三個小女孩排列是3! 最後結果就是 (8!X3!)/10! 消除8!就是 3!/(10X9) 就是1/15 13:獨立部署模式下的spark各角色作用描述正確是( ) 1:Driver負責Spark作業的解析、生成Stage並排程Task到Executor上 2:Master是Standalone模式的主控節點,負責接收Client提交的作業,管理Worker 14:下列處理方式中,可達到Spark效能優化是( ) 1:預設情況下,shuffle檔案數目為map tasks * reduce tasks 2:通過修改spark.default.parallelism引數可調整reduce的數目。通常,reduce數目應設定為core數目的2315:執行下列語句後的顯示結果是什麼?( ) from math import sqrt print sqrt(3)*sqrt(3) == 3 FALSE 16:Suppose that a Selection Sort of 80 items has completed 32 iterations of the main loop. How many items are now guaranteed to be in their final spot (never to be moved again)? 32 17:設某公路上經過的貨車與客車的數量之比為2:1,貨車中途停車修理的概率為0.02,客車為0.01,今有一輛汽車中途停車修理,求該汽車是貨車的概率( 0.8 ) 18:Nave Bayes是一種特殊的Bayes分類器,特徵變數是X,類別標籤是C,它的一個假定是:() 19:以下程式碼的輸出結果是? public class B { public static B t1 = new B(); public static B t2 = new B(); { System.out.println("構造塊"); } static { System.out.println("靜態塊"); } public static void main(String[] args) { B t = new B(); } } 構造塊 構造塊 構造塊 靜態塊 20:Linux檔案許可權一共10位長度,分成四段,第三段表示的內容是()。 檔案所有者所在組的許可權