程序員的數學

菜單導航程序員

一、經常使用數學公式: 等差/等比數列通項和求和、指數、對數、排列組合等函數

二、邏輯且/或/非/異或,和餘數工具

三、數學概括法spa

四、遞歸3d

五、指數爆炸orm

六、反證法對象

 

1、經常使用數學公式blog

1.0  實數:有理數和無理數的總稱,經常使用字母R表示實數集;排序

  有理數是整數和分數的集合,有理數的小數部分是有限或者無限循環的數;小數部分爲無限不循環的數爲無理數遞歸

  天然數:全體非負整數組成的集合,經常使用字母N來表示

  質數:又稱素數,大於1的天然數中,除了1和它自己之外再也不有其餘因數因數:又叫約數,整數a除以整數b(b≠0)的商正好是整數而沒有餘數,則b是a的因數;

  :乘方的結果。a = n^m, 指m個n相乘,把n^m乘方的結果a叫作冪,也叫n的m次冪;

1.1  等差數列

  定義:一個數列從第二項起,每一項與它的前一項的差等於同一個常數。這個數列就叫作等差數列,這個常數也叫等差數列的公差,公差經常使用字母d表示。

  通項公式:formula      ,        a1爲等差數列首項,公差爲d, 爲 第n項 

  求和公式:formula  ,   Sn爲數列前n項之和

  等差中項:等差數列中,如有n+m=2*r,  則任意兩項  的關係爲:

  其餘:跟等差數列知識相關的一個有趣故事是:「高斯求和

1.2 等比數列

  定義:一個數列從第二項起,每一項與它的前一項的比等於同一個常數。這個數列就叫作等比數列,這個常數也叫等比數列的公比,公比一般用字母q表示。

  通項公式: (n∈N*),當q>0時,可把看作是自變量n的函數,點(n, )是曲線 上的一羣孤立的點。

  求和公式:   或   (q≠1)。

  等比中項:  ; 即等比數列中,若q+p = 2r, 則有, 等比中項。

   其餘:跟等比數列知識相關的一個有趣故事是:「棋盤上的麥粒

1.3 指數函數

  定義:通常地,函數(a爲常數且以a>0,a≠1)叫作指數函數, 函數的定義域是R,自變量x就叫作指數,常數a叫底數。

      對於一切指數函數來說,值域爲(0, +∞);指數函數的前係數爲1;

  指數型函數:y = (k≠1), 格式像指數函數,但不是指數函數;

  冪函數:通常地,y=xα(α爲有理數)的函數,即以底數自變量,冪爲因變量指數爲常數的函數稱爲冪函數

      例如函數y=x0 、y=x2、y=x-1(注:y=x-1=1/x、y=x0時x≠0)等都是冪函數

    指數函數經常使用公式:

  1.3.1:    ;         ;  (同底相乘,指數相加;同底相除,指數相減)   

  1.3.2:      (指數的指數,指數相乘)

  1.3.3:

1.4 對數函數

  定義:通常地,對數函數以真數)爲自變量,指數爲因變量,底數爲常量的函數。

     好比ax = n(a>0,且a≠1),那麼數x叫作以a爲底n的對數,記做x=logan,讀做以a爲底n的對數,其中a叫作對數的底數,n叫作真數

     通常地,函數y=logax(a>0,且a≠1)叫作對數函數,也就是說以冪(真數)爲自變量,指數爲因變量,底數爲常量的函數,叫對數函數。

   經常使用公式:

  1.4.1 :;    ;   負數和零無對數;

  1.4.2 :  *  = 1 ;

  1.4.3 :  ;

  1.4.4:

  1.4.5:

  1.4.6:  

  1.4.7:

幾張圖表以下:

 

1.5 排列組合

  1.5.1 階乘:階乘是指一個運算符號,一個正整數的階乘factorial)是全部小於及等於該數的正整數,而且0的階乘爲1。

       天然數n的階乘寫做n!,亦即n!=1×2×3×...×n。階乘亦能夠遞歸方式定義:0!=1,n!=(n-1)!×n。

  1.5.2 排列定義:從n個不一樣元素中,任取m(m≤n,m與n均爲天然數,下同)個元素按照必定的順序排成一列,叫作從n個不一樣元素中取出m個元素的一個排列;

        從n個不一樣元素中取出m(m≤n)個元素的全部排列的個數,叫作從n個不一樣元素中取出m個元素的排列數,用符號 A(n,m)表示。

  1.5.3 排列計算公式 

  1.5.4 組合定義:從n個不一樣元素中,任取m(m≤n)個元素併成一組,叫作從n個不一樣元素中取出m個元素的一個組合;

         從n個不一樣元素中取出m(m≤n)個元素的全部組合的個數,叫作從n個不一樣元素中取出m個元素的組合數。用符號 C(n,m) 表示。

  1.5.5 組合計算公式 

  1.5.6 排列和組合區別:排列是講究排序的,而組合不考慮元素排序,通常來講,從n中不一樣元素取出m個元素的排列,要比組合數量多。

       對於組合公式的理解,相對排列而言會繞一點,這裏試圖解釋一下組合公式:

      從n個不一樣元素中取出m個元素的全部組合個數,能夠理解成先從n個不一樣的元素中取出m個元素的全部排列個數爲Anm    (即A(n, m) ),

      而後由於m個元素的排序方式共有m!(即m*(m-1)*(m-2)*...*1, m的階乘)種,而組合不考慮元素排序,至關於數量A(n, m)中重複了m!次,

      因此排序數量A(n, m)  除以 排序方式數量m! ,  則是咱們須要的沒有重複的組合數量了,即C(n, m) = A(n, m) / m!

  

2、邏輯且/或/非/異或,和餘數

2.1 計算機爲何採用二進制計數法

  2.1.1 在10進制計數法中,位數少,可是數字的種類多。(對於人類來講,比較易用)

  2.1.2 在二進制計數法中,數字的種類少哦,可是位數多。(對於計算機來講,這種比較易用)

2.2 指數的法則:對於指數 a^n, n每減1,新的值就變成原來的1/a,即a^(n-1) 爲 a^n的1/a

2.3 零的做用:用來表示佔位;也用來統一標準,簡化規則;

2.4 邏輯

  命題:可以判斷對錯的陳述句叫作命題。命題正確時,則該命題爲「真」(true);反之,命題不正確時,稱該命題爲「假」(false)。

  在創建規則時,須要確認規則有沒有「遺漏」和「重複」;

  沒有「遺漏」,即完整性,明確此規則在什麼狀況下都能適用;沒有「重複」,即具有排他性,明確此規則不存在矛盾之處。

  邏輯從根本上說是對完整性和排他性的組合表達。

  邏輯非:非真爲假,非假爲真;

  邏輯且:A和B都爲真時,纔是真;A和B只要有一個爲假,則爲假;

  邏輯或:A和B只要有一個爲真,則結果爲真;A和B都爲假,則爲假;

  邏輯異或:A和B一真一假,則結果爲真;A和B都爲真,或者都爲假,則結果爲假;

  德·摩根定律:「非A」或者「非B」, 和非「A與B」是等價的; 「非A」而且「非B」,和非「A或B」是等價的;

2.5 卡諾圖:簡化複雜邏輯表達式的有效工具

  2.5.1 二燈遊戲(綠燈、黃燈):

    規則:1)綠燈滅,黃燈亮;   

       2)綠燈、黃燈滅;   

       3)綠燈、黃燈都亮

    命題A  :  綠燈亮

    命題B :  黃燈亮

    邏輯表達式爲:(非A 而且 B) 或者 (非A 而且 非B) 或者 (A 而且 B)

    卡諾圖表示法(打上鉤):

    

  2.5.3 三燈遊戲 (綠燈、黃燈、紅燈)

    規則:1)綠燈、黃燈、紅燈都滅

       2)黃燈滅、紅燈亮

       3)綠燈滅、黃燈亮

       4)綠燈、黃燈、紅燈都亮

    命題A : 綠燈亮

    命題B : 黃燈亮

    命題C : 紅燈亮

    邏輯表達式:(非A 且 非B 且 非C) 或 (非B 且 C)  或 (非A且 B) 或 (A且B且C)

    卡諾圖表示法(打鉤):

      

 

 

2.6 餘數的做用:分組,將較大的數字除一次就能分組

  2.6.1 思考題:今天是週三,那麼100天后是周幾? 一億天之後呢?(運用餘數思考)

  2.6.2 思考題:今天是週三,10^100天后是周幾?(當計算有難度的時候,能夠試圖經過找規律來簡化問題)

  2.6.3 思考題:1234567^987654321的個位數是什麼?(找規律:找出規律,再結合餘數,把大數字簡化成小數字)

  2.6.4 思考題(黑白棋讀心術):

     1)魔術師和他的徒弟在臺上表演,臺下有觀衆,魔術師蒙着眼睛,徒弟不容許說話,若干黑白棋(每一個黑白棋像硬幣樣,只是一面黑色,一面白色);

        2)讓觀衆在桌子上隨機放7枚黑白棋的棋子排成一列。魔術師蒙着眼睛,看不到棋子;

     3)讓魔術師的徒弟在看完這7枚棋子後,在後面添加了一枚棋子,與其餘棋子並排。這時有8枚棋子,魔術師依然蒙着眼睛;

     4)這時讓觀衆能夠將其中1枚棋子翻轉,或者不翻轉任何棋子。此間,徒弟和觀衆不發一言,魔術師依然蒙着眼睛,不知道觀衆有沒有翻轉棋子;

     5)魔術師摘下眼罩,觀察8枚棋子,而後立刻就能判斷:「觀衆翻轉了棋子」 或 「沒有翻轉棋子」,識破觀衆的行爲。

    問:魔術師是如何識破觀衆的行爲的?

   2.6.5 思考題(尋找戀人):

    在一個小王國中,有8個村子(A~H)。以下圖所示,各個村之間道路相連(黑點表示村子,線表示道路)。而你要尋找流浪在這個王國的你惟一的戀人。

    你的戀人住在這8個村子中的某一個裏,她每過1個月便順着道路去另外一個村子,每月都必定會換村子,而後選擇哪一個村子是隨機的,預測不了。

    例如:若是戀人這個月住在G村,那麼下一個月可能會住在「F、C、H中的某一個村子「。

    目前你手上掌握的確鑿信息只是:1年前(12個月前),戀人住在G村。

    如今問:這個月戀人住在A村的機率?(奇數、偶數)

    

  2.6.6 思考題(鋪設草蓆):

    以下圖所示,有這樣一個房間,使用圖中右下角所示的草蓆可以正好鋪滿房間嗎?(前提是不能使用半張草蓆)

    若是不能鋪滿的話,請說明理由?

    

  2.6.7 思考題(哥尼斯堡七橋問題):

    以下圖所示,在好久之前,有一個叫哥尼斯堡的小城。小城被河流分割成了4塊陸地。人們爲了鏈接這些陸地,建設了7座橋。

    如今要你找出走遍7座橋(a、b、c、d、e、f、g)的方法,可是,必須遵照如下條件:

      1)走過的橋不能再走

      2)能夠屢次通過同一塊陸地

      3)能夠從任一陸地爲起點

      4)不須要再回到起點

    最後,若是可以走遍7座橋的話,請說明一下方法。若是不能,也請證實一下。

    

 

3、數學概括法

3.1 斷言:判定一個特定前提爲真的陳述

3.2 數學概括法:數學概括法是證實有關整數的斷言對於0以上的全部整數(0、一、二、3...)是否成立時所用的方法。

3.3 數學概括法的證實方法步驟:

  1)步驟1:證實「P(0)成立」。步驟1也叫基底(base)

  2)步驟2:證實不論k爲0以上的哪一個整數,「若P(k)成立,則P(k+1)也成立」。步驟2也叫概括(induction)

  若步驟1和步驟2都能獲得證實,就證實了「斷言P(n)對於0以上的全部整數n都成立」。

3.4 數學概括法實例(求奇數的和):

  3.4.1 斷言Q(n) : 1 + 3 + 5 + 7 + ... + (2*n-1) = n^2

  3.4.2 用數學概括法來證實「斷言Q(n)對於1以上的全部整數n都成立」

  3.4.3 步驟1:基底的證實

     證實Q(1)成立。由於Q(1) = 1^2, 因此確實成立。步驟1證實完畢。

  3.4.4 步驟2:概括的證實

    證實k爲1以上的任意整數時,「若Q(k)成立,則Q(k+1)也成立」。

    假設Q(k) = 1 + 3 + 5 + 7 + ... + (2*k-1) = k^2 成立

    則來證實等式Q(k+1)成立

    

    Q(k+1)的左邊和右邊計算結果相同。

    由此,從Q(k)到Q(k+1)推導成功,步驟2獲得了證實。

    至此,經過數學概括法的步驟1和步驟2都證實了斷言Q(n)。也就是說,經過數學概括法,證實了斷言Q(n)對於1以上的任意整數n都成立。

     

4、遞歸

4.1 思考題(漢諾塔):

  有三根細柱(A、B、C)。A柱上套着6個圓盤。這些圓盤大小各異,按從大到小的順序自下而上擺放。

  如今要把A柱上的6個圓盤所有移到B柱上。而且在移動圓盤時須遵照如下規則:

  1)一次只能移動柱子最上端的一個圓盤

  2)小圓盤上不能放大圓盤。

  將1一個圓盤從一根柱子移到另外一根柱子,算移動「1次」。那麼,將6個圓盤所有從A移到B最少須要移動幾回呢?

  (能夠先經過3個圓盤、5個圓盤找出遞歸規律)

  

  先來看看3層漢諾塔的解法(移動7次):

  

  發現移動2個圓盤的規律:

  

 

4.2 遞歸的思惟方式:將複雜問題轉換成較爲簡單的同類問題。在問題中找出遞歸結構,根據遞歸結構創建遞歸公式。

4.3 思考題(不斷繁殖的動物):

  有一種動物,它出生2天后就開始以天天1只的速度繁殖後代。假設第一天,有一隻這樣的動物(該動物剛出生,從第三天起繁殖後代)。

  問到第11天,共有多少隻?

 

5、指數爆炸

5.1 思考題(摺紙問題):

  假設如今有一張厚度爲1mm的紙,紙質很是柔軟,能夠對摺無數次。每對摺一次,厚度便翻一番。

  已知地球距月球約39萬千米,請問對摺多少次後厚度可以超過月地距離呢?

5.2 指數爆炸:數字每次翻倍,而後咱們會發現這種數字會急速增加。這種狀況咱們叫它「指數爆炸」,也能夠稱爲「指數式增加」

5.3 思考題(尋找犯人,二分法查找)

  有15個犯罪嫌疑人排成一排,其中只有一個是真正的「罪犯」。

  你要經過問他們「罪犯在哪裏?」來找出 真正的罪犯。

  假設選擇其中1人問:「罪犯在哪裏?」會獲得如下3鍾答案,其中有一個是正確的。

  1)「我是罪犯」(詢問對象是罪犯時)

  2)「罪犯在我左邊」

  3)「罪犯在我右邊」

  這時,僅經過3次問話就能從15人中找到真正的罪犯。那麼,應該怎麼問話呢?(找出地推結構以及遞推公式)

  

  

 

 

6、反證法

6.1 反證法

  1)首先,假設「命題的否認形式」成立

  2)根據假設進行論證,推導出矛盾的結果

  一言以蔽之,反證法就是「先假設命題的否認形式成立,而後再進行推理,引出矛盾」

6.2 反證法實例:爲何不存在「最大的整數」?

  假設存在「最大的整數」,並將它設爲M。

  那麼M+1就比M大,這與M是最大的整數的假設相矛盾。

  所以不存在「最大的整數」。

6.3 反證法實例2:請證實質數是無窮的

  假設「質數不是無窮的」,即「質數的個數是有限的」成立。

  假設質數的個數是有限的,因此全部質數的集合就能夠寫爲:

  2,3,5,7,..., P

  如今,將全部的質數(2,3,5,7,..., P)相乘,並設相乘的結果+1爲Q。

  即Q = 2*3*5*7*...*P + 1

  由於假設質數是有限個的,因此這個Q的大小也是有限的。

  而Q比全部的質數相乘的結果大1,所以Q比任何質數(2,3,5,7,...,P)都大。

  「Q比任何質數都大」也就意味着「Q不是質數」。

  另外一方面,這個Q除以2,3,5,7,...,P中的任一一個數,餘數都是1(不能整除)。

  這就代表,Q只能被1和Q自己整除,因此根據質數的定義可得「Q是質數」。

  所以「Q不是質數」和「Q是質數」都成立,這是矛盾的。

  所以,經過反證法證實了「質數是無窮的」。

 6.4 反證法的主意事項

  反證法從「要證實的命題的否認形式」出發,即必須先假設錯誤的假設成立。

  但到引出矛盾結論爲止的論證過程自己必須正確,之因此這麼說由於若是中途的論證出現錯誤,就不能得出「由於最初的假設錯誤,因此產生矛盾」的結論。

 

參考資料:百度百科,和《程序員的數學.(日)結城浩》

相關文章
相關標籤/搜索