為什麼有理數一定能表示為一個有限小數或無限循環小數,以及怎麼把一個無限循環小數化為它的既約分數形式?
不知道如何證明如果有理數化成小數形式如果是無限小數,那麼它一定是循環的。
碰到怎麼知道它作為分數是什麼?
感謝周周邀請,這個問題也困擾了我多年。在知乎上余翔有一個證明。這裡我按照真實思考的順序來說,把它說得再細一點、通俗一點、長一點。
一、問題重述要證明:有理數=有限小數+無限循環小數,咱們首先來做幾個說明:
- 有理數又稱為比例數,因此有理數和分子分母是整數的分數是等價的。每個有理數都有一個既約分數和它對應,既約分數是指分子和分母不僅是整數,而且二者的最大公約數是1。
- 有限小數是有理數一定正確。
- 我們可以把需要證明的有理數的範圍縮小到(0, 1)之間,如果在這個範圍內結論成立,那麼推廣到全部有理數上結論也成立。
- 無限循環小數是形如的小數,其中前面的m個小數位沒有循環,循環節是。
為了證明題目,需要證明下面兩個結論:
- 無限循環小數一定是有理數。
- 有理數一定是有限小數或者無限循環小數。
二、證明無限循環小數一定是有理數
首先我們任取一個無限循環小數,從它開始循環的地方切一刀,把前面和後面的部分分開:
因為分數/有理數的四則運算還是分數/有理數,所以為證明q是有理數,只需要證明可以寫成分數的形式。
我們把循環節提出來,把再分解一次:
後面的無限循環小數的循環節是連著k-1個是0,然後跟一個1,恰好滿足:。原因是:
因此我們得到:
這樣就證明了是有理數。
三、證明有理數一定是有限小數或者無限循環小數
我們隨便拿來一個既約真分數。也就是分子分母互質,並且值在(0,1)之間的分數。我們要證明它一定是有限小數或者無限循環小數。
思路:
因為由上面的分析我們知道是循環節為c的循環小數,我們首先試探任意有理數是否一定存在循環小數的相等形式:(這個等式不一定成立,但是可以啟發我們)。假設這個等式成立,則:
交叉相乘,得到。因為a、b互質,為了能讓等式成立,就必須使b是的約數。因此,只要是某個連續若干個9組成的整數的約數,那麼上面那個式子就一定成立。因此,我們需要嘗試找一個整數n,滿足b能整除。這啟發我們構造一個特殊的數列。
構造:
對任意,我們定義一個數為連續m個9組成的整數除以b的餘數:,如果有一個,那麼咱們的目的就達到了。
同餘除法有一點點複雜,經過一定計算我們可以得到一個遞推公式:
繼續推導可以得到一個一般遞推公式:
因為一個數除以b的餘數只能是0到b-1之間的b個整數,一共只b種可能,因此不斷把k增大,一定有某兩個f的值相同了。咱們不妨就假設,這說明:
因此是的約數。
雖然這並不能說能整除其中一個(除非是素數),但是可以說能分解成兩部分,各整除其中一部分:我們令,滿足整除,整除。前者可得整數滿足;對於後者,我們首先由的定義得知,其中是某個整數,從而兩邊加1得,進而由既整除又整除得到能夠整除,得知存在另一個整數滿足。
因此我們得到:
咱們令
則可以得到:
和上一節的結論一比較,就可以知道這一定是一個有限小數或循環小數之。由於分數a、b的選擇是任意的,證明完畢。
循環 ==&> 有理數:trivial
有理數 ==&> 循環:只需證明對任意,集合,只能取有窮個值即可。這等價為
為有窮集合。記,我們有原集合為,顯然這是有窮的。
符號太多不讓發。。。發截圖好了
用等比級數就可以了。。。
其實你就用小學學的那種豎式除法,找幾個除不開的分母去算。算過幾個之後,你就明白這是為什麼了……
S1
證:有理數必然表示成周期小數(完善匿名知友的回答)
1.簡單起見,設一正有理數為P/Q,其中P , Q 屬於 正整數
設P mod Q = R0 且 P = Q * N + R0 (其中N為P/Q的商)
將餘數R0右移至十分位(R0乘以10,即將位權為的R0轉變為位權為的10*R0),並再次除以Q 以獲得商N1和餘數R1,則有
[其中,為P/Q的小數在十分位的值]
按照同樣方法可得到(將處於十分位的R1移至百分位)
...
[其中,為P/Q的小數在位的值,();
為餘數,,的位權為;]
…
最終的小數結果為
(約減到時小數和分數誤差為 ,
即)
由於,則至多次就會有重複的餘數。
一旦出現重複值,那麼之後的和也會跟著重複
那就說明這個小數必然是有周期存在的,且周期不大於。
也可以從另一角度來看,
,將小數左移n位
,
由於,必為有限個值,而n可以取無限個數,那麼
必存在,而
帶入Eq.1.4 易得 ,易歸納的得,也就是小數部分以T為循環。
2.有限小數的出現是因為=0.
3.對於負有理數,可先轉化為正有理數,之後轉為上述證明
S2
計算周期小數對應的分數的方法比較多,這裡根據S1中的分析結合樓主給的小數進行計算
[樓主給的例子0.1688311..的分數為:168831/999999=13/77]
將原來的公式Eq.1.1 化為:
兩邊同乘以
其中, 為S1中項後的余值
設為所選擇的小數循環部分的首位(),循環周期為T【在0.1688311..中T=6】
則
由Eq.2.1
可見Eq.2.4 和等比級數極值形式相同(),原小數完全可以轉化為等比級數求解。
樓主的例子中小數部分沒有非循環部分,所以
,如果有的話
S3
總:
1.公式Eq.2.4其實也可以通過多組等比數列加和求出,無限循環小數可分解為不循環部分和循環部分,其中循環部分可以根據其周期T分解為T個q=10^-T的等比數列,也可以整個看做q=10^-T的一個等比數列。
2.證明的角度是從公式入手的,當相同時,就是一個新的周期的開始。的可取值範圍限制在Q內,所以必然會重複出現。這一想法來源於一位匿名知友,另一名匿名知友直接從集合的角度考慮問題,通過考慮和,利用小數部分左移後的集合的有窮性,更容易的證明了該問題,本質上,上述兩種證明方式原理相同,後者從全局角度考慮問題,兩者有一個共通的公式,其中為餘數,為商,為左移n位運算,那麼&<,則不管左移多少位,小數部分=的值屬於一個有限的集合,且只要左移至多q+1次(每次左移一位),必會出現小數部分完全相等的情況,那麼可以推斷這兩次左移之間數為一循環.知友王小龍的解答前部分非常易懂,利用循環小數等比數列的性質證明其為有理數,後部分通過反過來尋找有理分數中的等比級數項分母的因子證明有理數都可以表示為小數。
3.不過,個人認為一個分數(1/3)和一個無限循環小數(0.3333333...)還是有些區別的,在S1中的誤差( *)經過無窮次計算都會存在,那麼兩者等價的前提是忽略這個無窮小變數,這等價於兩邊取極限,不看成取極限則相差一個無窮小量。
在10進位里討論這個問題真的大丈夫?雖然答案是顯然的。。但是二進位明顯好解釋,循環不就是進位么。。
推薦閱讀: