1. 程式人生 > >【程式設計師眼中的統計學(11)】卡方分佈的應用

【程式設計師眼中的統計學(11)】卡方分佈的應用

作者 白寧超
2015年8月9日22:33:00

摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來越重要。本系列統計學的學習基於《深入淺出統計學》一書偏向程式碼實現,需要讀者有一定基礎,可以參見後面PPT學習)。正如(吳軍)先生在《數學之美》一書中闡述的於統計和數學模型對機器智慧發揮重大的作用。諸如:語音識別、詞性分析、機器翻譯等世界級的難題也是從統計中找到開啟成功之門鑰匙的。尤其是在自然語言處理方面更顯得重要,因此,對統計和數學建模的學習是尤為重要的。最後感謝團隊所有人的參與。(

本文原創,轉載註明出處卡方分佈的應用  )

 目錄

【程式設計師眼中的統計學(3)】概率計算:把握機會

【程式設計師眼中的統計學(11)】卡方分佈的應用

1 題引和基本知識介紹

1 什麼是卡方分佈?

  若n個相互獨立的隨機變數ξ₁、ξ₂、……、ξn ,均服從標準正態分佈(也稱獨立同分佈於標準正態分佈),則這n個服從標準正態分佈的隨機變數的平方和$$Q=\sum_{i=1}^{n}ξ_i^2$$構成一新的隨機變數,其卡方分佈規律稱為x^2,分佈(chi-square distribution),其中引數n稱為自由度,正如正態分佈中均值或方差不同就是另一個$x^2$正態分佈一樣,自由度不同就是另一個分佈。記為 Q~x^2(k). 卡方分佈是由正態分佈構造而成的一個新的分佈,當自由度n很大時,X^2分佈近似為正態分佈。 對於任意正整數k, 自由度為 k的卡方分佈是一個隨機變數X的機率分佈。

2 為什麼要引用卡方分佈?

  以特定概率分佈為某種情況建模時,事物長期結果較為穩定,能夠清晰進行把握。但是期望與事實存在差異怎麼辦?偏差是正常的小幅度波動?還是建模錯誤?此時,利用卡方分佈分析結果,排除可疑結果。【事實與期望不符合情況下使用卡方分佈進行檢驗】

3 生活中又怎樣的事例(抽獎機之謎)會出現這種現象呢?

  抽獎機,肯定都不陌生,現在一些商場超市門口都有放置。正常情況下出獎概率是一定的,基本商家收益。倘若突然某段時間內總是出獎,甚是反常,那麼到底是某階段是小概率事件還是有人進行操作了?抽獎機怎麼了?針對這種現象或者類似這種現象問題則可以藉助卡方進行檢驗,暫且不著急如何檢驗,還是補充一下基礎知識,再逐步深入解決問題。【常規事件中出現非常規現象,如何檢查問題所在的情況下使用卡方分佈】

4 問題描述:抽獎機之謎?

問題一:卡方檢驗擬合優度案例

下面是某臺抽獎機的期望分佈,其中X代表每局遊戲的淨收益(每局獨立事件):

  
實際中人們收益的頻數為:
  
在5%的顯著性水平下,看看能否有足夠證據證明判定抽獎機被人動了手腳。

1、算出每個x值的實際頻率與根據概率分佈得出的期望頻率進行比較?
2、利用抽獎機的觀察頻率和期望頻率表計算檢驗統計量?
3、要檢驗的原假設是什麼?備擇假設是什麼?
4、自由度為4且5%水平的拒絕域是多少?
5、檢驗統計量是多少?
6、檢驗統計量是在拒絕域以內還是拒絕域以外?
7、你將接受還是拒絕原假設?

問題二:卡方檢驗獨立性案例

下表顯示各位莊家的觀察頻數,
      
以1%的顯著性水平進行假設檢驗,看看賭局結果是否獨立於坐莊莊家。

1、你是任務是算出所有期望頻數。
2、根據上面所求期望頻數,計算檢驗統計量X^2.
3、確定要進行檢驗的假設以及備擇假設。
4、求出期望頻率和自由度?
5、確定用於做決策的拒絕域。
6、計算檢驗統計量X^2
7、看看檢驗統計量是否位於拒絕域內。
8、作出決策。

2 卡方檢驗擬合優度(問題一)

 問題簡述:抽獎機平常收益者總是商家,突然一段時間總是出獎。本來小概率事件頻發,我們利用卡方的檢驗擬合優度看看能否有足夠證據證明判定抽獎機被人動了手腳

1 知識儲備:期望頻數計算

期望頻數=(觀察頻數之和(1000)) X (每種結果的概率) 如:X=(-2)的期望頻數:977=(0.977)X(1000)
利用卡方假設檢驗觀察頻數和期望頻數之間的差別。

  • 1、算出每個x值的實際頻率與根據概率分佈得出的期望頻率進行比較?
    解答:
        

2 知識儲備:卡方檢驗評估差異

卡方分佈:通過一個檢驗統計量來比較期望結果實際結果之間的差別,然後得出觀察頻數極值的發生概率。
計算統計量步驟: (期望頻數總和與觀察頻數總和相等)
  1、表裡填寫相應的觀察頻數和期望頻數
  2、利用卡方公式計算檢驗統計量:(O代表觀察期望,E代表期望頻數)
  $$ x^2=\sum_{}^{}\frac{(O-E)^2}{E} $$
  註釋: 其中x^2表示檢驗統計量,O表示觀察頻數,E代表期望頻數。
  即:對於概率分佈的每一個概率,取期望頻數和實際頻數的差,求差的平方數,再除以期望頻數,然後將所有結果相加。
檢驗統計量意義:O與E之間差值越小,檢驗統計量越小。以E為除數,令差值與期望頻數成比例。
卡方檢驗的標準:如果統計量值(X^2)很小,說明觀察頻數和期望頻數之間的差別不顯著,統計量越大,差別越顯著。

  • 2、利用抽獎機的觀察頻率和期望頻率表計算檢驗統計量?
    解答:
        

3 知識儲備:卡方假設檢驗

卡方分佈的用途:檢查實際結果與期望結果之間何時存在顯著差異。
  1、檢驗擬合優度:也就是說可以檢驗一組給定資料與指定分佈的吻合程度。如:用它檢驗抽獎機收益的觀察頻數與我們所期望的吻合程度。
  2、檢驗兩個變數的獨立性:通過這個方法檢查變數之間是否存在某種關係。
自由度V:用於計算檢驗統計量的獨立變數的數目。
  1、自由度希臘字母V,讀作“紐”,v影響概率分佈
  2、當v等於1或者2時:卡方分佈先高後低的平滑曲線,檢驗統計量等於較小值的概率遠遠大於較大值的概率,即觀察頻數有可能接近期望頻數。圖形:
    
  3、當v大於2時:卡方分佈先低後高再低,其外形沿著正向扭曲,但當v很大時,圖形接近正態分佈。圖形:
     
  4、特定引數v(繆)的卡方分佈以及檢驗統計量可以記作:
    
  5、v的計算: (如例子:v=5-1)
     v=(組數) - (限制數)
顯著性: 卡方分佈指出觀察頻數與期望頻數之間差異顯著性,和其他假設一樣,這取決於顯著性水平。

  1、顯性水平α進行檢驗,則寫作:(常用的顯著性水平1%和5%
    

  2、檢測標準:卡方分佈檢驗是單尾檢驗且是右尾,右尾被作為拒絕域。於是通過檢視檢驗統計量是否位於右尾的拒絕域以內,來判定期望分佈得出結果的可能性。
      
  3、卡方概率表的使用:卡方臨界值表是給定可以查詢的

例如: 5%的顯著性水平,8的自由度進行檢驗。查出15.51,因此只要檢驗統計量大於15.51,檢驗統計量就位於拒絕域內。  

       


卡方分佈假設檢驗: (總是使用右尾)
步驟:
  1、確定要進行檢驗的假設(H0)及其備擇假設H1.
  2、求出期望E和自由度V.
  3、確定用於做決策的拒絕域(右尾).
  4、計算檢驗統計量.
  5、檢視檢驗統計量是否在拒絕域內.
  6、做出決策.
卡方分佈檢驗其實就是假設檢驗的特殊形式。

  • 3、要檢驗的原假設是什麼?備擇假設是什麼?
    解答:
      

4 知識儲備:拒絕域求解

例如: 5%的顯著性水平,8的自由度進行檢驗。查出15.51,因此只要檢驗統計量大於15.51,檢驗統計量就位於拒絕域內。          

  • 4、自由度為4,5%水平的拒絕域是多少?
    解答:
      

5 知識儲備:計算檢驗統計量

前面已經求過。

  • 5、檢驗統計量是多少?
    解答:
      

6 知識儲備:檢驗統計量拒絕域內外判定

1、求出檢驗統計量a
2、通過自由度和顯著性水平查到拒絕域臨界值b
3、a>b則位於拒絕域內,反之,位於拒絕域外。

  • 6、檢驗統計量是在拒絕域以內還是拒絕域以外?
    解答:
      

7 知識儲備:決策原則

如果位於拒絕域內我們拒絕原假設H0,接受H1。
如果不在拒絕域內我們接受原假設H0,拒絕H1

  • 7、你將接受還是拒絕原假設?
    解答:
      

注:只有能得到一組觀察頻數且算出期望頻數,卡方可以檢驗任何概率分佈的擬合優度。

揭曉謎底:抽獎機被人動了手腳!!!!!

3 卡方檢驗兩個變數的獨立性(問題二)

【問題簡述】:抽獎機被人動過手腳,經過技術人員處理得以解決,但是現在新問題出現了,因為老闆發現負責二十一點賭桌的莊家佩服的錢高於合理值。懷疑莊家是內鬼。究竟賭局結果是否取決於坐莊的莊家,即莊家是否暗箱操作,賭局結果與莊家是否有關?此問題需要卡方分佈檢查獨立性破案。

【問題二】下表顯示各位莊家的觀察頻數,
    
以1%的顯著性水平進行假設檢驗,看看賭局結果是否獨立於坐莊莊家。

1 知識儲備:利用概率求期望頻數

1、獨立性檢驗:用於判斷兩種因素是否相互獨立,或者兩者是否有聯絡。
2、期望概率求解步驟:
  1、算出賭局結果和莊家頻數以及各項總和,如下表稱為列聯表
    
  2、算出莊家A的贏局期望。
    a、求出贏局概率:P(贏)=贏局合計/總和
    b、莊家A坐莊概率:P(A)=合計A/總和
    c、假設莊家A和賭局結果獨立,其坐莊出現贏局概率:P(A坐莊贏局)=P(贏) X P(A)
    c、贏局的期望頻數=總和*P(A坐莊贏局)
    即:
    
3、推廣:期望頻數= 行合計 X 列合計 / 總和
4、求出檢驗統計量:(與前面一樣)
  $$x^2=\sum_{}^{}\frac{(O-E)^2}{E}$$

  • 1、你是任務是算出所有期望頻數。
    解答:

  • 2、根據上面所求期望頻數,計算檢驗統計量X^2.
    解答:
        

  • 3、確定要進行檢驗的假設以及備擇假設。
    解答:
      
  • 4、求出期望頻率和自由度?
    解答:
       
  • 5、確定用於做決策的拒絕域。
    解答:
       
  • 6、計算檢驗統計量X^2
    解答:
       

  • 7、看看檢驗統計量是否位於拒絕域內。
    解答:
       

  • 8、作出決策。
    解答:
       

2 自由度計算方法歸納:

列聯表自由度計算,表如下k列,h行
v=(h-1) X (k-1) 註釋:每行計算到最後一個,用總數-其他之後,故一個數限制,同列一列限制。故如上式。

注:

1、在擬合優度檢驗中,v=組數 - 限制數
2、在兩個變數獨立性檢驗中,如列聯表為h行k列則:v=(h-1) X (k-1)

4 本章小結

1 為什麼要引用卡方分佈?

  以特定概率分佈為某種情況建模時,事物長期結果較為穩定,能夠清晰進行把握。但是期望與事實存在差異怎麼辦?偏差是正常小幅度波動或是在建模錯誤如何判別?此時,利用卡方分佈分析結果,排除可疑結果。【事實與期望不符合情況下使用卡方分佈進行檢驗】

2 卡方檢驗擬合優度案例

期望計算

期望頻數=(觀察頻數之和(1000)) X (每種結果的概率) 如:-2:977=(0.977)X(1000)

卡方分佈

通過一個檢驗統計量來比較期望結果和實際結果之間的差別,然後得出觀察頻數極值的發生概率。

計算統計量步驟:(期望頻數總和與觀察頻數總和相等)

  1、表裡填寫相應的觀察頻數和期望頻數
  2、利用卡方公式計算檢驗統計量:(O代表觀察期望,E代表期望頻數)

   $$x^2=\sum_{}^{}\frac{(O-E)^2}{E}$$

   :對於概率分佈的每一個概率,取期望頻數和實際頻數的差,求差的平方數,再除以期望頻數,然後將所有結果相加。

檢驗統計量意義

  O與E之間差值越小,檢驗統計量越小。以E為除數,令差值與期望頻數成比例。 卡方檢驗的標準:如果統計量值(X^2)很小,說明觀察頻數和期望頻數之間的差別不顯著,統計量越大,差別越顯著。

卡方分佈的用途

  檢查實際結果與期望結果之間何時存在顯著差異。
    1、檢驗擬合優度:也就是說可以檢驗一組給定資料與指定分佈的吻合程度。如:用它檢驗抽獎機收益的觀察頻數與我們所期望的吻合程度。     2、檢驗兩個變數的獨立性:通過這個方法檢查變數之間是否存在某種關係。

自由度V

    用於計算檢驗統計量的獨立變數的數目。
     1、自由度希臘字母V,讀作“紐”,v影響概率分佈
     2、當v等於1或者2時:卡方分佈先高後低的平滑曲線,檢驗統計量等於較小值的概率遠遠大於較大值的概率,即觀察頻數有可能接近期望頻數。      3、當v大於2時:卡方分佈先低後高再低,其外形沿著正向扭曲,但當v很大時,圖形接近正態分佈。
     4、特定引數v(繆)的卡方分佈以及檢驗統計量
     5、v的計算: (如例子:v=5-1)
        v=(組數) - (限制數)

顯著性

   卡方分佈指出觀察頻數與期望頻數之間差異顯著性,和其他假設一樣,這取決於顯著性水平。

    1、顯性水平α進行檢驗,則寫作:(常用的顯著性水平1%和5%)
    2、檢測標準:卡方分佈檢驗是單尾檢驗且是右尾,右尾被作為拒絕域。於是通過檢視檢驗統計量是否位於右尾的拒絕域以內,來判定期望分佈得出結果的可能性。
    3、卡方概率表的使用:卡方臨界值表是給定可以查詢的

卡方分佈假設檢驗步驟: 總是使用右尾

  1、確定要進行檢驗的假設(H0)及其備擇假設H1.
  2、求出期望E和自由度V.
  3、確定用於做決策的拒絕域(右尾).
  4、計算檢驗統計量.
  5、檢視檢驗統計量是否在拒絕域內.
  6、做出決策.
卡方分佈檢驗其實就是假設檢驗的特殊形式。

決策原則

如果位於拒絕域內我們拒絕原假設H0,接受H1。 如果不在拒絕域內我們接受原假設H0,拒絕H1

卡方檢驗兩個變數的獨立性(問題二)

獨立性檢驗:

用於判斷兩種因素是否相互獨立,或者兩者是否有聯絡。

期望概率求解步驟:

  1、算出賭局結果和莊家頻數以及各項總和,如下表稱為列聯表
    
  2、算出莊家A的贏局期望。
    a、求出贏局概率:P(贏)=贏局合計/總和
    b、莊家A坐莊概率:P(A)=合計A/總和
    c、假設莊家A和賭局結果獨立,其坐莊出現贏局概率:P(A坐莊贏局)=P(贏) X P(A)
    c、贏局的期望頻數=總和*P(A坐莊贏局)
    即:
    

推廣:

期望頻數= (行合計 X 列合計) / 總和

求出檢驗統計量:(與前面一樣)

  $$x^2=\sum_{}^{}\frac{(O-E)^2}{E}$$

自由度計算方法歸納:

  列聯表自由度計算,表如下k列,h行
          

v=(h-1) X (k-1)

註釋:每行計算到最後一個,用總數-其他之後,故一個數限制,同列一列限制。故如上式。

注:

1、在擬合優度檢驗中,v=組數 - 限制數
2、在兩個變數獨立性檢驗中,如列聯表為h行k列則:v=(h-1) X (k-1)

5 內容擴充套件

統計檢驗量Java程式碼實現

/**
 * 檢驗統計量計算公式 
 * x^2=\sum\frac{(O-E)^2}{E}
 * 其中x^2表示檢驗統計量,O表示觀察頻數,E代表期望頻數
 * @param O int,表示觀察頻數
 * @param E int,表示期望頻數
 * @return TS=x^2 double型保留兩位小數,檢驗統計量
 */
public static double TestStatistic(double[][] data)
{
    int len = data[0].length;
    double TS = 0;//檢驗統計量
    //迴圈疊加計算期望值
    for (int i = 0; i < len; i++) {
        TS += (Math.pow((data[0][i]-data[1][i]),2))/data[1][i];//根據檢驗統計量公式x^2=\sum\frac{(O-E)^2}{E}計算
    }
    //並將結果保留3位小數
    TS=NumFormat.DecFormat(3,TS);
    System.out.println("檢驗統計量:"+TS);

    return TS;
}

卡方獨立性之期望頻數Java程式碼實現

/*
 * 卡方獨立性之期望頻數
 * 公式:期望頻數=((行合計)*(列合計))/總和
 * @param sum1 double,行合計
 * @param sum2 double,列合計
 * @param sum  double,總和
 * @return Enum   double,期望頻數
 */
public static double ExpFre(double sum1,double sum2,double sum)
{
    double Enum=0;
    Enum=(sum1*sum2)/sum;
    NumFormat.DecFormat(2,Enum);
    System.out.println("獨立性期望頻數:Enum="+Enum);
    return Enum;
}

計算自由度Java程式碼實現

/*
 * 計算自由度: 用於計算檢驗統計量的獨立變數的數目。
 * 公式:v=(h-1)-(k-1)
 * h表示表示表格行,k表示列
 * @param h int,組數
 * @param k int,限制數:影響計算結果的數目
 * @return V   int,擬合自由度
 */
public static int NiheFreeNum(int h,int k)
{
    int v=0;
    v=(h-1)*(k-1);
    System.out.println("擬合自由度:V="+v);
    return v;
}

卡方的期望和方差

分佈的均值為自由度 n,記為 $$ E(X^2) = n$$
分佈的方差為2倍的自由度(2n),記為$$ D(x^2) = 2n$$

性質

 1)分佈在第一象限內,卡方值都是正值,呈正偏態(右偏態),隨著引數 n 的增大,分佈趨近於正態分佈;卡方分佈密度曲線下的面積都是1.
 2)分佈的均值與方差可以看出,隨著自由度n的增大,χ2分佈向正無窮方向延伸(因為均值n越來越大),分佈曲線也越來越低闊(因為方差2n越來&越大)。
 3)不同的自由度決定不同的卡方分佈,自由度越小,分佈越偏斜。

6 參考文獻

7 開源共享 

相關推薦

程式設計師眼中統計學11分佈應用

作者 白寧超 2015年8月9日22:33:00 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越

程式設計師眼中統計學7正態分佈的運用:正態之美

作者 白寧超 2015年10月15日18:30:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來

程式設計師眼中統計學4離散概率分佈的運用:善用期望

/** * @ClassName ScoreUtil * @Description 分數處理工具類 * @author candymoon * @Date 2014-4-25 */ public class ScoreUtil { /** * 使用jav

程式設計師眼中統計學8統計抽樣的運用:抽取樣本

作者 白寧超 2015年10月15日18:30:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來

程式設計師眼中統計學6幾何分佈、二項分佈及泊松分佈:堅持離散

/** * 在n次伯努利試驗中,試驗r次才得到第一次成功的機率 P(X=r)=pq^{r-1} * @param p double型保留一位小數,表示成功的概率 * @param q double型保留一位小數,表示失敗的概率即1-p * @param r 整型,實驗次數 *

程式設計師眼中統計學12相關與迴歸:我的線條如何?

作者 白寧超 2015年10月25日22:16:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來

程式設計師眼中統計學6.1原創實現幾何分佈演算法以及應用

作者 白寧超 2015年8月14日16:07:23 摘要:本文繼統計學幾何分佈、二項分佈、泊松分佈研究的深入,基於各種分佈基礎概念和核心知識介紹之後。就各種分佈的實現和真實環境下應用方是目的。本文就演算法文件規範和程式碼註釋進行梳理,利用其基本核心演算法,實現我們要達到的目的。大家通用的一些統計

程式設計師眼中統計學2集中趨勢度量:分散性、變異性、強大的距

// 用於統計輸入了多少資料 static int n = 0; static String a1[]; static int b1[]; /** * @Title: set * @Description: 資料賦值 *

程式設計師眼中統計學6.2原創實現二項分佈演算法以及應用

package DistTools; /** * * @(#)GeoDist.java * @Description:描述:本演算法中在n次伯努利試驗中:試驗n次得到r次成功的概率、二項分佈的期望、二項分佈方差的具體實現。 * @Definitions:定義:在相互獨立事件中

程式設計師眼中統計學5排列組合:排序、排位、排

/** * 獲取無重線排列總數目 * 描述:從n個元數中選取m個元數進行全排列,得出一共有多少種排法 * 公式:A(m,n)=m!/(n-m)! * 優缺點:輸入資料必須互不相同。求階乘時,使用了for迴圈,避免了遞迴方法導致記憶體溢位的風險。

程式設計師眼中統計學9總體和樣本的估計:進行預測

作者 白寧超 2015年10月15日18:30:07 摘要:程式設計師眼中的統計學系列是作者和團隊共同學習筆記的整理。首先提到統計學,很多人認為是經濟學或者數學的專利,與計算機並沒有交集。誠然在傳統學科中,其在以上學科發揮作用很大。然而隨著科學技術的發展和機器智慧的普及,統計學在機器智慧中的作用越來

程式設計師眼中統計學1資訊圖形化:第一印象

package pictuer; import java.awt.Dimension; import java.awt.Font; import java.io.PrintStream; import java.text.DecimalFormat; import java.text.Simpl

程式設計師眼中統計學3概率計算:把握機會

/** * 計算條件概率 * * @param pOfA 概率P(A) * @param pOfAB 概率P(AB) * @return 概率P(B|A) */ public static float Cond

python 歷險記——一個 Java 程式設計師的告白

引言 想學爬蟲還是 python 專業啊,之前一直在用 java, 現在決定嚐嚐鮮,使用 python及爬蟲框架來完成網路資料採集。 程式語言之間都是相通的,比如都需要模組化,引入其他檔案來實現功能,使用列表等容器來處理資料,都要使用 json 或 xml 來解析和傳輸資料。 你會發現通過 類比 的方式,帶

我的程式設計師之路開篇

高中的時候,有次學校開了一個計算機語言培訓班,學費也不貴,學的是BASIC,第一次去試聽,老師講了a,b的值互換問題和進位制之間轉換問題,我聽得頭都大了,想不到還有這樣一種高中生都難以理解的東西,直到高考結束,成績還不錯,報考的是哈工大威海校區的軟體工程專業。 我不知道等待我的是什麼樣的難題

java常見面試題:Java程式設計師面試題

不知不覺中,已經將面試題更新到第六篇了,龐大的java面試題庫,想要刷完似乎不大可能,需要一點一點的積累。 1、java 中會存在記憶體洩漏嗎,請簡單描述。   答:會;存在無用但可達的物件,這些物件不能被GC 回收,導致耗費記憶體資源。 2、靜態變數和例項變數的區別?

關於Google神牛Jeff Dean的笑話,非程式設計師勿入

During his own Google interview, Jeff Dean was asked the implications if P=NP were true. He said, “P = 0 or N = 1.” Then, before the interviewer had ev

python 歷險記之面向物件——一個 Java 程式設計師的告白

前言 在上篇文章 中,我使用了與 java類比 以及 程式碼例項 的方式涉及了 python 3 中 string, 資料結構(Dict, List, 元組)等重要的主題。 今天我會繼續探險,去征服 python 3 中的面向物件, let's go 讓我們出發吧! 類和物件 剛接觸 python 中的類和物

java常見面試題:Java程式設計師面試題

本期的java面試題是偏向資料庫方面的,對相關技術知識匱乏的,或者對這方面不大自信的同學,面試之前可以參考一下這套題,這只是節選,試運營一下,如果不能滿足你們的需求,可以直接評論留言! 1、檢視的優缺點 答:優點: 1)對資料庫的訪問,因為檢視可以有選擇性的選取資料庫

java常見面試題:Java程式設計師面試題

上一次更新的java面試題,很多小夥伴反應很簡單,其實上一期更新的就是更偏基礎的面試題,但這並不意味著,面試就這麼簡單,在java的學習中,有從Java基礎、框架、設計模式等等都是重點學習的點。在本文的面試題分享中,我們循序漸進,儘量挑一些重點的內容來分享! 1、當一個物件