Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Standard view
Full view
of .
0 of .
Results for:
P. 1
Chinese Reminder Theorem

# Chinese Reminder Theorem

Ratings: (0)|Views: 263|Likes:

### Availability:

See more
See less

02/17/2014

pdf

text

original

Chinese Reminder Theorem
The Chinese Reminder Theorem is an ancient but important calculation algorithm inmodular arith-metic. The Chinese Remainder Theorem enables one to solve simultaneous equations with respectto different moduli in considerable generality. Here we supplement the discussion in T&W, §3.4,pp. 76-78.
The problem
Here is the statement of the problem that the Chinese Remainder Theorem solves.Theorem (Chinese Remainder Theorem). Let m1 , . . . , mk be integers with gcd(mi , mj ) = 1whenever i = j. Let m be the product m = m1 m2 · · · mk . Let a1 , . . . , ak be integers. Consider thesystem of congruences:()
x ≡ a1x ≡ a2...x ≡ ak(mod m1 )(mod m2 )(mod mk ).Then there exists exactly one x Zm satisfying this system.
The algorithmThe solution to the system (*) may be obtained by the following algorithm.Theorem (Chinese Remainder Theorem Algorithm). We may solve the system (*) asfollows.(1) For each i = 1, . . . , k, let zi = m/mi = m1 m2 . . . mi−1 mi+1 . . . mk .−1(2) For each i = 1, . . . , k, let yi = zi (mod mi ). (Note that this is always possible becausegcd(zi , mi ) = 1.)(3) The solution to the system (*) is x = a1 y1 z1 + · · · + ak yk zk .Proof. Why does the Chinese Remainder Theorem algorithm work? The notation makes theproofsurprisingly simple to state. Let’s study x = a1 y1 z1 + · · · + ak yk zk and compute x (modm1 )for example. The same argument will work for x (mod mi ) for i > 1. The keyobserva-tion (and a very clever one too) is that zi ≡ 0 (mod m1 ) when i = 1 since m1 divideszi =m/mi = m1 m2 . . . mi−1 mi+1 . . . mk . Thus when we compute x (mod m1 ), we obtainx ≡ a1 y1 z1(mod m1 ). But y1 z1 ≡ 1 (mod m1 ) by (2), and we obtain x ≡ a1 (mod m1 ).Example of the Chinese Remainder TheoremUse the Chinese Remainder Theorem to find all solutions in Z60 such thatx ≡ 3 mod 4x ≡ 2 mod 3x ≡ 4 mod 5.We solve this in steps.Step 0 Establish the basic notation. In this problem we have k = 3, a1 = 3, a2 = 2, a3 = 4,m1 = 4, m2 = 3, m3 = 5, and m = 4 · 3 · 5 = 60.Step 1 Implement step (1). z1 = m/m1 = 60/4 = 3 · 5 = 15, z2 = 20, and z3 = 12.Step 2 Implement step (2). We solve zi yi ≡ 1 mod mi , i = 1, 2, 3. In this problem, we needto solve15y1 ≡ 1 mod 420y2 ≡ 1 mod 312y3 ≡ 1 mod 5.The yi can be computed using the tally table version of the generalized Euclidean algorithm(cf. Congruence Supplement). For example, in the first equation for y1 , the tally methodautomatically solves 15y1 + 4t = 1 for y1 and t, and we find that y1 = 3. Continuing, wefind that y1 = 3, y2 = 2, and y3 = 3.

Step 3 Implement step (3). x ≡ a1 y1 z1 + a2 y2 z2 + a3 y3 z3 (mod 60). Substituting, we obtain3 · 3 · 15 + 2 · 2 · 20 + 4 · 3 · 12 = 359 which reduces to x ≡ 59 (mod 60).An applicationThe text (p. 74) emphasizes the opposite line of thought from the above. Now we wish to solvethe equation x ≡ a (mod m) where m is a multiple of two or more pairwise relatively primeintegers. The Chinese Remainder Theorem Algorithm tells us that the x is precisely the solutionto the modular system()
Chinese Reminder Theoremx ≡ a1x ≡ a2...x ≡ ak(mod m1 )(mod m2 )(mod mk ).Here the numbers mi come by factoring m = m1 m2 · · · mk where gcd(mi , mj ) = 1whenever i = j.Why do this? This is answered in the text (T&W, p. 77). By breaking the problem into si-multaneous congruences mod each prime factor of m, we can recombine the resulting informationto obtain an answer for each prime factor power of m. The advantage is that it is often easier toanalyze congruences mod primes (or mod prime powers) than to work with composite numbers.Example. Here is an example. Find a solution to 13x ≡ 1 (mod 70). The two methods of solutionare worthy of careful study.Answer. We can do this particular example two ways. First notice that 13−1 = 27 (mod 70) bythe usual tally table generalization of the Euclidean algorithm. So the given problem is equivalentto x ≡ 27 (mod 70).We can also do it by the Chinese Remainder Theorem. Now 70 = 2 · 5 · 7. First solve13r1 ≡ 1 mod 213r2 ≡ 1 mod 513r3 ≡ 1 mod 7,obtaining r1 = 1, r2 = 2, and r3 = 6. Now solvex ≡ r1 = 1 (mod 2)x ≡ r2 = 2 (mod 5)x ≡ r3 = 6 (mod 7)by the Chinese Remainder Theorem, obtaining x = 27 Z70 once more.

#include <stdio.h>void baca(int A[], int B[], int g){int i,temp;for(i=0;i<g;i++){printf("\t\t\tx = a mod b :for a<b\n");printf("\t\t\t***********************\n");do{printf("\t\t\t a = " ); scanf("%d",&A[i]);printf("\t\t\t b = " ); scanf("%d",&B[i]);if(A[i]>B[i]){printf("\t\t\t******************\n");printf("\t\t\tif data [a> b] are not in please repeat the process until thedata input b> a\n");printf("\t\t\t******************\n");}elseprintf("\t\t\tThe data you input is correct\n");}while(A[i]>B[i]);}}void tulis(int A[], int B[], int u){int i;for(i=0;i<u;i++){printf("\t\t\t..............\n");printf("\t\t\tx = %d mod %d \n",A[i],B[i]);printf("\t\t\t..............\n");}}void proses(int a[], int b[], int h[], int n){int i,w,j,e,k,temp,r;int q,we;w=1;for(i=0;i<n;i++){w=w*b[i];}for(i=0;i<n;i++){ j=1;e=1;k=w/b[i];do{r=(k*j-1)%b[i];