Kinesiska restklassatsen

Den här artikeln behöver källhänvisningar för att kunna verifieras. (2020-06)
Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan.
Sun-tzu's ursprungliga formulering: x ≡ 2 (mod 3) ≡ 3 (mod 5) ≡ 2 (mod 7) med lösningen x = 23 + 105k, där k är ett heltal

Enligt Kinesiska restklassatsen (eller Kinesiska restsatsen) inom talteorin innebär att om heltalen n 1 , , n k {\displaystyle n_{1},\ldots ,n_{k}} är parvis relativt prima och a 1 , a 2 , , a k {\displaystyle a_{1},a_{2},\ldots ,a_{k}} är givna heltal så har kongruenssystemet:

x a 1 ( m o d n 1 ) x a 2 ( m o d n 2 ) x a k ( m o d n k ) {\displaystyle {\begin{array}{lcl}x&\equiv &a_{1}\;(\mathrm {mod} \;n_{1})\\x&\equiv &a_{2}\;(\mathrm {mod} \;n_{2})\\&\vdots &\\x&\equiv &a_{k}\;(\mathrm {mod} \;n_{k})\\\end{array}}}

en unik lösning modulo N = n 1 n 2 n k {\displaystyle N=n_{1}n_{2}\ldots n_{k}} .

En lösning till kongruenssystemet ges av

x = i = 1 k a i b i ( N / n i ) {\displaystyle x=\sum _{i=1}^{k}a_{i}b_{i}(N/n_{i})}

om varje b i {\displaystyle b_{i}} är en lösning till kongruensen

b i ( N / n i ) 1 ( m o d n i ) . {\displaystyle b_{i}(N/n_{i})\equiv 1\;(\mathrm {mod} \;n_{i}).}

Enligt Eulers sats kan man, om n i > 1 {\displaystyle n_{i}>1} , exempelvis ta b i ( N / n i ) φ ( n i ) 1 {\displaystyle b_{i}\equiv (N/n_{i})^{\varphi (n_{i})-1}} (mod n i {\displaystyle n_{i}} ), där φ {\displaystyle \varphi } är Eulers fi-funktion.

Det första kända omnämnandet av satsen gjordes av den kinesiske matematikern Sun-tzu i verket Sun-tzu Suan-ching under 200-talet e.Kr.

Exempel

Jag tänker på ett tal. Om jag delar det med 3 får jag resten 2. Om jag delar det med 7 får jag resten 3. Om jag delar det med 10 får jag resten 3. Vilket är talet?

Vi formulerar problemet som ett kongruenssystem:

x 2 ( m o d 3 ) x 3 ( m o d 7 ) x 3 ( m o d 10 ) {\displaystyle {\begin{array}{lcl}x&\equiv &2\;(\mathrm {mod} \;3)\\x&\equiv &3\;(\mathrm {mod} \;7)\\x&\equiv &3\;(\mathrm {mod} \;10)\\\end{array}}}

Eftersom 3, 7, 10 är parvis relativt prima säger kinesiska restklassatsen att det finns en lösning, och att denna är unik modulo deras produkt, det vill säga modulo 210. Vi har φ ( 3 ) = 2 ,   φ ( 7 ) = 6 ,   φ ( 10 ) = 4 {\displaystyle \varphi (3)=2,\ \varphi (7)=6,\ \varphi (10)=4} , b 1 , b 2 , b 3 {\displaystyle b_{1},b_{2},b_{3}} beräknas med b i ( N / n i ) φ ( n i ) 1 {\displaystyle b_{i}\equiv (N/n_{i})^{\varphi (n_{i})-1}} b 1 70 1 1 ( mod 3 ) {\displaystyle b_{1}\equiv 70^{1}\equiv 1{\pmod {3}}} , b 2 30 5 2 5 = 8 4 4 ( mod 7 ) {\displaystyle b_{2}\equiv 30^{5}\equiv 2^{5}=8\cdot 4\equiv 4{\pmod {7}}} , b 3 21 3 1 ( mod 10 ) {\displaystyle b_{3}\equiv 21^{3}\equiv 1{\pmod {10}}} . b 2 30 5 2 5 {\displaystyle b_{2}\equiv 30^{5}\equiv 2^{5}} 30 7 = 4 {\displaystyle {\frac {30}{7}}=4} med resten 2. Då är alltså enligt x = i = 1 k a i b i ( N / n i ) {\displaystyle x=\sum _{i=1}^{k}a_{i}b_{i}(N/n_{i})} ,

x = i = 1 3 a i b i ( 210 / n i ) = 2 1 70 + 3 4 30 + 3 1 21 = 563 {\displaystyle x=\sum _{i=1}^{3}a_{i}b_{i}(210/n_{i})=2\cdot 1\cdot 70+3\cdot 4\cdot 30+3\cdot 1\cdot 21=563}

en lösning. Men lösningen är inte unik: genom att lägga på multipler av 210 får vi nya lösningar. Exempelvis är 563 2 210 = 143 {\displaystyle 563-2\cdot 210=143} en lösning. Enligt satsen får vi alla lösningar genom att lägga på multipler av 210, så 143 är den minsta positiva lösningen.

Detaljförklaringar

Att heltalen n 1 , , n k {\displaystyle n_{1},\ldots ,n_{k}} är parvis relativt prima betyder att varje tänkbart urval av två av dessa är relativt prima, alltså att den största gemensamma delaren SGD( n i , n j {\displaystyle n_{i},n_{j}} ) är 1 för varje val av i och j sådana att 1 i < j k {\displaystyle 1\leq i<j\leq k} . Detta är ekvivalent[särskiljning behövs] med att inget enda av de k talen innehåller någon primtalsfaktor som något annat av talen innehåller.

I de intressanta tillämpningarna är också antalet k minst 2, och alla talen n 1 , , n k {\displaystyle n_{1},\ldots ,n_{k}} skilda från 0. I så fall är för varje n i {\displaystyle n_{i}} produkten av alla de övriga k-1 många talen lika med kvoten N / n i {\displaystyle N/n_{i}} , där N är produkten av alla de k talen. I exemplet ovan är k = 3 {\displaystyle k=3} , n 1 = 3 {\displaystyle n_{1}=3} , n 2 = 7 {\displaystyle n_{2}=7} och n 3 = 10 {\displaystyle n_{3}=10} . Därför blir N = 3 7 10 = 210 {\displaystyle N=3\cdot 7\cdot 10=210} , N / n 1 = 210 / 3 = 70 = 7 10 {\displaystyle N/n_{1}=210/3=70=7\cdot 10} , N / n 2 = 210 / 7 = 30 = 3 10 {\displaystyle N/n_{2}=210/7=30=3\cdot 10} , och N / n 1 = 210 / 10 = 21 = 3 7 {\displaystyle N/n_{1}=210/10=21=3\cdot 7} . I praktiken är det oftast lättare att räkna ut dessa tal som produkter än som kvoter.

Satsen säger att en unik lösning existerar modulo N. Det betyder att systemet har många lösningar, men att alla lösningar är kongruenta modulo N, eller med andra ord bara skiljer sig åt med multiplar av N. En lösning presenteras också i form av ett ofta litet svårberäknat uttryck, där man behöver lösa ett antal kongruenser modulo de olika N / n i {\displaystyle N/n_{i}} . I exemplet användes Eulers fi-funktion för att lösa dessa kongruenser. En fördel med att använda just detta uttryck för lösningen är att det går rätt lätt att teoretiskt bevisa att detta verkligen löser det ursprungliga kongruenssystemet. Rent räknemässigt är dock det ofta lättare att använda Euklides algoritm rekursivt, för att i varje rekursionssteg lösa en diofantisk ekvation av standardtyp.

Omformulering som k-1 "vanliga" diofantiska ekvationer

Varje lösning till kongruenssystemet

x a 1 ( mod n 1 ) x a 2 ( mod n 2 ) x a k ( mod n k ) {\displaystyle {\begin{array}{lcl}x&\equiv &a_{1}\;{\pmod {n_{1}}}\\x&\equiv &a_{2}\;{\pmod {n_{2}}}\\&\vdots &\\x&\equiv &a_{k}\;{\pmod {n_{k}}}\\\end{array}}}

är också en lösning till bara de två första kongruenserna. Den första kongruensen är ekvivalent med att det finns ett heltal y 1 {\displaystyle y_{1}} , sådant att x = a 1 + y 1 n 1 {\displaystyle x=a_{1}+y_{1}\cdot n_{1}} . På samma sätt motsvarar den andra kongruensen att x = a 2 + y 2 n 2 {\displaystyle x=a_{2}+y_{2}\cdot n_{2}} . Detta ger den vanliga diofantiska ekvationen n 1 y 1 n 2 y 2 = a 2 a 1 {\displaystyle n_{1}y_{1}-n_{2}y_{2}=a_{2}-a_{1}} , där n 1 {\displaystyle n_{1}} , n 2 {\displaystyle n_{2}} och a 2 a 1 {\displaystyle a_{2}-a_{1}} är kända konstanter, och y 1 {\displaystyle y_{1}} och y 2 {\displaystyle y_{2}} är obekanta heltal. Om man löser denna ekvation på vanligt sätt, och använder denna lösning för att beskriva x, så får man att de två första kongruenserna uppfylls precis om x b 1 ( mod n 1 n 2 ) {\displaystyle x\equiv b_{1}{\pmod {n_{1}n_{2}}}} för något heltal b 1 {\displaystyle b_{1}} Man kan nu på samma sätt behandla denna kongruens och den tredje ursprungliga kongruensen (alltså x a 3 ( mod n 3 ) {\displaystyle x\equiv a_{3}{\pmod {n_{3}}}} ) som en vanlig diofantisk ekvation, och ersätta dessa två kongruenser med en enda kongruens x b 2 ( mod n 1 n 2 n 3 ) {\displaystyle x\equiv b_{2}{\pmod {n_{1}n_{2}n_{3}}}} . På detta sätt kan man fortsätta att ersätta två gamla kongruenser med en ny, tills man har reducerat hela systemet till en enda kongruens modulo N.

Tillämpning i det första exemplet

I exemplet

x 2 ( m o d 3 ) x 3 ( m o d 7 ) x 3 ( m o d 10 ) {\displaystyle {\begin{array}{lcl}x&\equiv &2\;(\mathrm {mod} \;3)\\x&\equiv &3\;(\mathrm {mod} \;7)\\x&\equiv &3\;(\mathrm {mod} \;10)\\\end{array}}}

ger de två första kongruenserna den diofantiska ekvationen 3 y 1 7 y 2 = 3 2 = 1 {\displaystyle 3y_{1}-7y_{2}=3-2=1} . Denna kan på vanligt sätt lösas genom att man utför Euklides algoritm, först framlänges:

7 = 2 3 + 1 {\displaystyle {\begin{array}{lcrcl}7&=&2\cdot 3&+&1\\\end{array}}}

och sedan baklänges:

1 = 7 2 3 = 3 ( 2 ) 7 ( 1 ) {\displaystyle 1=7-2\cdot 3=3\cdot (-2)-7\cdot (-1)} ,

( y 1 , y 2 ) = ( 2 , 1 ) {\displaystyle (y_{1},y_{2})=(-2,-1)} är en lösning, och ( y 1 , y 2 ) = ( 2 + 7 k , 1 + 3 k ) {\displaystyle (y_{1},y_{2})=(-2+7k,-1+3k)} ( k Z {\displaystyle k\in {\bf {Z}}} ) är den allmänna lösningen. Detta ger

x = 2 + 3 y 1 = 2 + 3 ( 2 + 7 k ) = 4 + 21 k {\displaystyle x=2+3y_{1}=2+3(-2+7k)=-4+21k}

eller med andra ord x 4 ( mod 21 ) {\displaystyle x\equiv -4{\pmod {21}}} . I nästa rekursionssteg kombineras detta med x 3 ( mod 10 ) {\displaystyle x\equiv 3{\pmod {10}}} , vilket ger den diofantiska ekvationen 21 k 10 y 3 = 3 + 4 = 7 {\displaystyle 21k-10y_{3}=3+4=7} , Euklides algoritm fram- och baklänges ger

21 = 2 10 + 1 {\displaystyle {\begin{array}{lcrcl}21&=&2\cdot 10&+&1\\\end{array}}}

respektive

1 = 21 2 10 = 1 21 2 10 {\displaystyle 1=21-2\cdot 10=1\cdot 21-2\cdot 10} ,

vilket uppmultiplicerat med 7 ger att ( k , y 3 ) = ( 7 , 14 ) {\displaystyle (k,y_{3})=(7,14)} är en lösning, och ( k , y 3 ) = ( 7 + 10 t , 14 21 t ) {\displaystyle (k,y_{3})=(7+10t,14-21t)} den allmänna lösningen. Detta ger slutligen

x = 4 + 21 k = 4 + 21 ( 7 + 10 t ) = 143 + 210 t {\displaystyle x=-4+21k=-4+21(7+10t)=143+210t} ,

vilket på grund av uniciteten mycket riktigt är samma lösning som den första metoden gav.

Externa länkar

  • http://solmu.math.helsinki.fi/2012/3/kiinalainen.pdf