什麼是數學歸納法?
數學歸納法用於證明在自然數上的一些斷言是否成立。
怎麼證明斷言對所有自然數成立?
第一步:證明n=1是成立的
第二步:證明n>1時,如果對於n-1成立,那麼對於n成立
(第二步不是直接證明,而是先假設n-1成立,再利用這個結論證明n是成立的)
例子:用數學歸納法證明 1+2+3+...+n = n(n+1)/2
第一步:
1 = 1*2/2
第二步:
①假設對於n-1的情況下成立
1+2+3+...+(n-1) = (n-1)n/2
②利用假設結論帶進去
1+2+3...+(n-1)+n = (n-1)n/2+n = n(n+1)/2
數學歸納法和寫程式之間的關聯?
比如方法:
int sum(int n) 就是計算加到n的和,我們當然可以把高斯公式帶入,但是試著把數學歸納法的語言翻譯為程式?
第一步:證明n=1是成立的:
if (n == 1) ;
第二步:
①假設對於n-1成立
sum(n-1) 返回加到n-1的和
②把假設的結論帶進去
return sum(n-1) + n;
(這個寫**的過程就是完成數學歸納法證明的過程。)
如何證明遞迴函式正確執行?
寫乙個遞迴函式的過程就是證明乙個遞迴函式正確性的過程,使用數學歸納法證明。
遞迴書寫方法
1.嚴格定義遞迴函式作用,包括引數,返回值,side-effect
2.先一般,後特殊
3.每次呼叫必須縮小問題規模
4.每次問題規模縮小程度必須是1
例子一:
1.鍊錶建立,根據輸入的陣列裡的元素建立鍊錶,返回鍊錶的頭
// 每次問題規模縮小程度必須是1,就是說先看2,3,4,5,再把1和這個結果接起來就行了
node firstnode = new node(values.get(0));
node headofsublist= createlinkedlist(values.sublist(1, values.size())); // sublist當2個引數一樣時返回empty的集合
firstnode.setnext(headofsublist);
return firstnode;
}class node
public static void printlinkedlist(node head)
system.out.println();}}
例子二:
鍊錶的反轉(只能改變引用,value值是final的,不能改變)
思路:先假設從2開始的鍊錶能夠反轉,再反轉從1開始的就行了
}例子三:
列出所有組合
數學歸納法
歸納 是一種從經驗事實中找出普遍特徵的認知方法。根據這個觀察,我們是不是可以大膽假設,前 n 個格仔的麥粒總數就是 2 1 呢?如果這個假設成立,那麼填滿 64 格需要的麥粒總數,就是 1 2 2 2 2 2 2 1 18446744073709551615。數學歸納法的一般步驟是這樣的 證明基本情...
什麼是歸納法 數學歸納法
相鄰變數間存在通用關係 類似於 變數n 1,2,3,可以通過相鄰數加減1獲得。了解一下下圖示例 注 引用於 歸納法證明像是多公尺諾骨牌,將第一塊推到後,後續骨牌均被推到,完成證明。其中的每一張骨牌就是 變數為n的情況下,數學方程式的狀態 若被推倒,即此處變數適應於數學方程式,未被推倒,即數學方程式在...
數學思想 之 歸納法
數學歸納法 mathematical induction 是一種數學證明方法,常用於證明命題 命題是對某個現象的描述 在自然數範圍內成立。隨著現代數學的發展,自然數範圍內的證明實際上構成了許多其他領域 比如數學分析 的基礎,所以數學歸納法對於整個數學體系至關重要。數學歸納法本身非常簡單。如果我們想要...