乾糧 — 電腦程式設計藝術(The Art of Computer Design) – 2

來源:互聯網
上載者:User

1.2   數學準備

在這一節,我們將會對本書中所用到的一些基本的數學記號和公式進行講解.如果你不想過多的設計這些複雜的數學推導,至少應該熟悉一下各個公式的含義,以便能夠更好的使理解這些公式.

我們主要在兩個方面用到數學公式和記號,一是用來描述整個演算法的各個部分,二是用來分析演算法的效能.

1.2.1          數學歸納法

令P(n)為關於n(n為整數)的一個命題,例如,P(n)可以是:n乘以(n+3)是一個偶數,或者”如果n≥10,則2n>n3”,如果我們想證明P(n)的正確性,那麼,我們可以依照一下的步驟來:

a)       證明P(1)為真

b)       證明 ”如果P(1),P(2),P(3),…,P(n)都為真,那麼P(n+1)也為真.

 

例如,很久以前人們就已經發現了如下的等式:

1 = 12

1+3 = 22

1+3+5 = 32 ………………………………………………………………………………………………………………….(1)

1+3+5+7 = 42

1+3+5+7+9 = 52

於是我們可以大膽的假設

1+3+5+…+(2n-1) = n2 …………………………………………………………………………………………………..(2)

現在我們暫且把(2)式稱為P(n),並希望能夠證明P(n)對於任意的正整數n都成立,根據數學歸納法的步驟,我們需要:

a)       P(1) 為真,因為 1 = 12

b)       如果 P(1),P(2),……,P(n)都為真.那麼由於P(n)為真,於是等式(2)成立,在等式(2)的兩邊同時加上 (2n+1)則

1+3+…+(2n-1)+(2n+1) = n2 + 2n + 1 = (n+1)2

這樣就證明了 P(n+1) 也為真

 

我們可以吧上面的步驟看做一個演算法的證明步驟.

演算法I: (構造一個證明).給出一個正整數n,這個演算法將輸出P(n)為真的證明

I1: [證明P(1)] 設k <- 1,並且根據a)輸出一個P(1)的證明

I2: [k=n?] 如果k=n,那麼演算法終止,所需的證明已經輸出

I3: [證明P(k+1)]根據b),輸出一個關於”如果P(1),P(2),…,P(n)都為真,則P(k+1)為真”的證明.而且輸出”我們已經證明了P(1),P(2),…,P(k),因此P(k+1)為真”

I4: [遞增k] k加 1並轉到I2.

該演算法的框圖:

 

由於這一演算法顯然給出了P(n)對任何給定的n的一個證明,因而我們知道,上述的證明技術(a),(b)在邏輯上是正確的(me:有點牽強啊,記得當初高代課,我們證明過,寫了兩大黑板的).這個證明方法就叫做數學歸納法證明.

需要注意的是,要把”數學歸納法”的概念和”歸納推理”區別開來.一個科學家通過特定的觀察並且通過”歸納”,從而建立起說明這些事實的一般理論或假設.例如他可以通過觀察(1)中的5個式子並且給出關係式(2).因此,歸納充其量不過是人們對某些事物的一些猜測.在數學領域裡,我們將把這說成一個經驗結果或一個猜測.

例如我們可以看看下面這個例子: 令P(n) 表示對n的劃分的數目,也就是說,不管n的次序,把n寫成若干個整數和的不同的方法的數目.由於:

5 = 1+1+1+1+1 = 2+1+1+1=3+1+1=2+2+1=3+2=4+1=5

因此我們有P(5) = 7.前幾個值顯然的我們可以得到

P(1) = 1, P(2) = 2, P(3)=3, P(4)=5, P(5)=7

那麼,至此我們可以通過 “歸納”(me:注意,是歸納,不是數學歸納),而得出一個假設,P(n)將會跑遍所有質數. 為檢驗這個假設,我們來計算P(6) 而P(6) =11 和我們的推測是相符的.

(但是,很不榮幸的是,P(7)卻等於15,完了,我們必須進行新的假設,)

而,另一方面,數學歸納法也完全不同於我們平常的”歸納”方法.它是有理有據的,而不是完全猜測的(me:有點熟悉,好像政治課本裡面經常有這種語句). 實際上,由於對每個n都有一個結論,因而是無限多個的命題的一個證明.它之所以叫做數學歸納法,僅僅是因為,人們在應用數學歸納法之前需要稍微判定一下,他需要證明的是什麼.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.