C 實現數學歸納法證明過程

2021-10-24 22:36:17 字數 1435 閱讀 5748

證明基本情況(通常是 n = 1的時候)是否成立;

假設 n = k - 1 成立,在證明 n = k 時也是成立的(k 為任意大於1的自然數)。

極客時間程式設計師的數學基礎課專欄第四講

#ifndef mathematical_induction_h

#define mathematical_induction_h

/**

* @description 數學歸納法證明

* @param state n=k時的狀態值,需要有預設建構函式,預設建構函式構造出初始狀態,即n=1時的狀態值,且需要過載==運算子

* @param hypothesis 需要證明的假設f(n),為函式物件

* @param statetransitionfunc 狀態轉移函式,從n=k-1時的狀態轉移到n=k時的狀態,為函式物件

*/template

<

typename state,

typename hypothesis,

typename statetransitionfunc>

class

mathematicalinduction

/**

* @description 數學歸納法證明過程

* @param n n時刻

* @param state 返回n時刻的狀態值

* @return bool n時刻假設f(n)是否成立

*/bool

prove

(int n, state &state)

// 如果n=k-1時假設成立,則證明n=k時假設是否成立

else

}private

:

hypothesis m_hypothesis;

statetransitionfunc m_transitionfunc;};

#endif

#include

"mathematical_induction.hpp"

#include

#include

using

namespace std;

// 用數學歸納法證明等比數列f(n)=2^(n-1)的前n項和為2^n-1

// 狀態

class

state

bool

operator==(

const state &rhs)

const};

// 命題

class

hypothesis};

// 狀態轉移函式

class

statetransitionfunc};

intmain()

數學歸納法

歸納 是一種從經驗事實中找出普遍特徵的認知方法。根據這個觀察,我們是不是可以大膽假設,前 n 個格仔的麥粒總數就是 2 1 呢?如果這個假設成立,那麼填滿 64 格需要的麥粒總數,就是 1 2 2 2 2 2 2 1 18446744073709551615。數學歸納法的一般步驟是這樣的 證明基本情...

什麼是歸納法 數學歸納法

相鄰變數間存在通用關係 類似於 變數n 1,2,3,可以通過相鄰數加減1獲得。了解一下下圖示例 注 引用於 歸納法證明像是多公尺諾骨牌,將第一塊推到後,後續骨牌均被推到,完成證明。其中的每一張骨牌就是 變數為n的情況下,數學方程式的狀態 若被推倒,即此處變數適應於數學方程式,未被推倒,即數學方程式在...

數學思想 之 歸納法

數學歸納法 mathematical induction 是一種數學證明方法,常用於證明命題 命題是對某個現象的描述 在自然數範圍內成立。隨著現代數學的發展,自然數範圍內的證明實際上構成了許多其他領域 比如數學分析 的基礎,所以數學歸納法對於整個數學體系至關重要。數學歸納法本身非常簡單。如果我們想要...