雙子貓 wrote:
依據你的算法:<
...(恕刪)
看不懂mod..只用高中數學的證法..
求證一:兩數列相減之後,必為9倍數....
證明:(大家都知道)....不證了...
故得證。假設其為 9K, K為任意自然數
求證二:9K-7的每一位數相加後,除以9 必餘2.
證明:
令9K= a + 10b + 100c + 1000d +........ (a,b,c,d為每一位數....為小於等於9之正整數)
→ (a + b + c + d +.....) 必為9整除,此為已知 ①
則9K-7 = (a - 7) +10b + 100c + 1000d + .....
因為不知 a-7 是否會產生負數,故假設:
假設一:若a≧7
則9K-7 的每一位數相加= a- 7 + b + c + d....= (a+b+c+d+...)-7
由已知①可知,(a+b+c+d+...)-7 以9除之必餘2。此為已知 ②
假設二:若a<7
則9K-7 = (a - 7 + 10) + 10 (b-1) + 100c + 1000d +......= (a + 3) + 10 (b-1) + 100c +....
每一位數相加= (a +3) + (b -1) + c + d....= (a+b+c+d+...)+2
由已知①可知,(a+b+c+d+...)+2 以9除之必餘2。此為已知③
由已知②③可知...9K-7的每一位數相加後,除以9 必餘2。(K為任意自然數)
故得證...
好久沒有寫證明題了..希望大家看的懂.....


不過pango在證明二的假設還少了一個,就是連續借位的狀況。例如:
2111111換個順序變成1211111,相減後會變成90000。這個時候減7就會發生連續借位的狀況。
因為01不能打上下標,請恕我改了一下表示式。數字字串改成:
F = A[0] + 10*A[1] + 100*A[2] + .......+ 10^(n-1)*A[n-1] + 10^n*A[n] + 10^(n+1)*A[n+1]......
F為一個九的倍數的數字,方括弧內數值為下標,不是運算值。
假設三:若A[0]<7且發生連續零的連續借位,直到 10^n 處才為非零,故計有n-1個連續零。
因發生連續借位的條件是被借位的數字為連續零,表示A[1],A[2],A[3],...A[N-1]皆為0。
所以數字疊加:
A[0] + A[1] + A[2] + A[3] +......A[n-1] + A[n] + A[n+1] + ......相當於
A0 + 0 + 0 + 0 +......+ 0 + A[n] + A[n+1] +......
= A0 + A[n] + A[n+1] + ......
其中,F為九的倍數,故A0 + A[n] + A[n+1] + ......也必為九的倍數。---式1
零被借位會變成9。發生連續借位,原先連續零的數位都會變成連續9,故計有n-1個連續9。所以:
9K-7 = (A[0] - 7 + 10) + 90 + 900 + 9000 +......10^(n-1)*9 + 10^n*(A[n]-1) + 10^(n+1)*A[n+1]......
每一位數相加= (A[0] + 3) + 9 + 9 + 9 + 9 + 9 + ......+ 9 + (A[n]-1) + A[N+1] +......
= ((A0 + 3) + (A[n]-1) + A[n+1] + ......) + 9*(n-1)
= (A0 + A[n] + A[n+1] + ......) + 2 + 9*(n-1)
帶入式1,(A0 + A[n] + A[n+1] + ......)為九的倍數,9*(n-1)也為九的倍數,故上式以九除之必餘2。
內文搜尋

X