Kinesiska restklassatsen

Från testwiki
Version från den 24 mars 2022 kl. 11.13 av 89.107.221.228 (diskussion)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till navigering Hoppa till sök

Mall:Källor

Sun-tzu's ursprungliga formulering: Mall:Nowrap Mall:Nowrap Mall:Nowrap Mall:Nowrap Mall:Nowrap Mall:Nowrap

Enligt Kinesiska restklassatsen (eller Kinesiska restsatsen) inom talteorin innebär att om heltalen n1,,nk är parvis relativt prima och a1,a2,,ak är givna heltal så har kongruenssystemet:

xa1(modn1)xa2(modn2)xak(modnk)

en unik lösning modulo N=n1n2nk.

En lösning till kongruenssystemet ges av

x=i=1kaibi(N/ni)

om varje bi är en lösning till kongruensen

bi(N/ni)1(modni).

Enligt Eulers sats kan man, om ni>1, exempelvis ta bi(N/ni)φ(ni)1 (mod ni), där φ ä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:

x2(mod3)x3(mod7)x3(mod10)

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, b1,b2,b3beräknas med bi(N/ni)φ(ni)1 b17011(mod3), b230525=844(mod7), b32131(mod10). b230525307=4 med resten 2. Då är alltså enligt x=i=1kaibi(N/ni),

x=i=13aibi(210/ni)=2170+3430+3121=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 5632210=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 n1,,nk ä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(ni,nj) är 1 för varje val av i och j sådana att 1i<jk. Detta är ekvivalentMall: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 n1,,nk skilda från 0. I så fall är för varje ni produkten av alla de övriga k-1 många talen lika med kvoten N/ni, där N är produkten av alla de k talen. I exemplet ovan är k=3, n1=3, n2=7 och n3=10. Därför blir N=3710=210, N/n1=210/3=70=710, N/n2=210/7=30=310, och N/n1=210/10=21=37. 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/ni. 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

xa1(modn1)xa2(modn2)xak(modnk)

är också en lösning till bara de två första kongruenserna. Den första kongruensen är ekvivalent med att det finns ett heltal y1, sådant att x=a1+y1n1. På samma sätt motsvarar den andra kongruensen att x=a2+y2n2. Detta ger den vanliga diofantiska ekvationen n1y1n2y2=a2a1, där n1, n2 och a2a1 är kända konstanter, och y1 och y2 ä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 xb1(modn1n2) för något heltal b1 Man kan nu på samma sätt behandla denna kongruens och den tredje ursprungliga kongruensen (alltså xa3(modn3)) som en vanlig diofantisk ekvation, och ersätta dessa två kongruenser med en enda kongruens xb2(modn1n2n3). 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

x2(mod3)x3(mod7)x3(mod10)

ger de två första kongruenserna den diofantiska ekvationen 3y17y2=32=1. Denna kan på vanligt sätt lösas genom att man utför Euklides algoritm, först framlänges:

7=23+1

och sedan baklänges:

1=723=3(2)7(1),

(y1,y2)=(2,1) är en lösning, och (y1,y2)=(2+7k,1+3k) (k𝐙) är den allmänna lösningen. Detta ger

x=2+3y1=2+3(2+7k)=4+21k

eller med andra ord x4(mod21). I nästa rekursionssteg kombineras detta med x3(mod10), vilket ger den diofantiska ekvationen 21k10y3=3+4=7, Euklides algoritm fram- och baklänges ger

21=210+1

respektive

1=21210=121210,

vilket uppmultiplicerat med 7 ger att (k,y3)=(7,14) är en lösning, och (k,y3)=(7+10t,1421t) den allmänna lösningen. Detta ger slutligen

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