Previous Up Next

7.1.20  Chinese remainders

Theorem 1 (Chinese remainders)   If p1,p2,…,pn are relatively prime, then for any integers a1,a2,…,an there is a number c such that ca1(mod p1 ), ca2 (mod p2 ), …, can (mod pn ).

The ichinrem or ichrem command finds this value of c.

Note that any multiple of L=lcm(p1,p2,…,pn) can be added to c and the equalities will still be true. If the pk are relatively prime, then a solution c exists by Theorem 1; what’s more, any two solutions will be congruent modulo the product of the pks.

If all of the arguments are given as modular integers, then the result will also be given as a modular integer c % l.

The chrem command does the same thing as ichinrem, but the input is given in a different form.

Be careful with the order of the parameters. Indeed, chrem([a,b],[p,q]), ichrem([a,p],[b,q]) and ichinrem([a,p],[b,q]) all produce the same output.

Examples

Solve:

     
  x≡ 3(mod 5 )         
x≡ 9(mod 13 )          
ichinrem([3,5],[9,13])

or:

ichrem([3,5],[9,13])
     

48,65
          

so x≡ 48 (mod 65 ).

You can also input:

ichrem(3%5,9%13)
     

−17
%65
          

Note that 48≡ −17 (mod 65 ).

Recalling that chrem takes its arguments in a different form, you can also enter:

chrem([3,9],[5,13])
     

48,65
          

Solve:

     
  x≡ 3(mod 5 )         
x≡ 4(mod 7 )          
x≡ 1(mod 9 )          
ichinrem([3,5],[4,7],[1,9])
     

298,315
          

hence x≡ 298 (mod 315 ).

Alternative input:

ichinrem([3%5,4%7,1%9])
     

−17
%315
          

Note that 298≡ −17 (mod 315 ).

Again, with the arguments in a different form, you can also enter:

chrem([3,4,1],[5,7,9])
     

298,315
          
Remark.

These three commands, ichinrem, ichrem and chrem, may also be used to find the coefficients of a polynomial whose equivalence classes are known modulo several integers by using polynomials with integer coefficients instead of integers for the ak.

For example, to find ax+b modulo 315=5 · 7 · 9 under the assumptions

     
  a≡ 3(mod 5 )         
a≡ 4(mod 7 )          
a≡ 1(mod 9 )          

and

     
  b≡ 1(mod 5 )         
b≡ 2(mod 7 )         
b≡ 3(mod 9 )          

Example

ichinrem((3x+1)%5,(4x+2)%7,(x+3)%9)
     


−17
%315
x+156%315
          

hence a=-17 (mod 315) and b=156 (mod 315).

As before, chrem takes the same input in a different format.

chrem([3x+1,4x+2,x+3],[5,7,9])
     

298 x+156,315
          

Note that 298≡ −17 (mod 315 ).


Previous Up Next