Κινεζικά υπόλοιπα για λίστες ακεραίων : chrem

### 1.6.23 Κινεζικά υπόλοιπα για λίστες ακεραίων : `chrem`

`chrem` λαμβάνει ως ορίσματα 2 λίστες ακεραίων ίδιου μεγέθους.
`chrem` επιστρέφει μια λίστα 2 ακεραίων.
Για παράδειγμα, `chrem([a,b,c],[p,q,r])` επιστρέφει την λίστα `[x,lcm(p,q,r)]` όπου `x=a mod p` και `x=b mod q` και `x=c mod r`.
Μία λύση `x` πάντα υπάρχει αν `p, q, r` είναι πρώτοι μεταξύ τους, και όλες οι λύσεις ειναι ίσοδύναμες modulo `p*q*r`.
Προσοχή στην σειρά των παραμέτρων, πράγματι:
`chrem([a,b],[p,q])=ichrem([a,p],[b,q])=
ichinrem([a,p],[b,q])`
Παραδείγματα :
Λύστε :

`⎧ ⎨ ⎩` |
`x=` | `3 (``mod` `5)`
`x=` | `9 (``mod` `13)`

Είσοδος :

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

Έξοδος :

`[-17,65]`

άρα, `x=-17 (mod 65)`
Λύστε :

`⎧ ⎪ ⎨ ⎪ ⎩` |
`x=` | `3 (``mod` `5)`
`x=` | `4 (``mod` `6)`
`x=` | `1 (``mod` `9)`

Είσοδος :

`chrem([3,4,1],[5,6,9])`

Έξοδος :

`[28,90]`

άρα `x=28 (mod 90)`
Σχόλιο
`chrem` μπορεί να χρησιμοποιηθεί για να βρεθούν οι συντελεστές πολυωνύμου οι οποίοι είναι γνωστοί modulo αρκετών ακεραίων, για παράδειγμα να βρείτε ax+b (modulo) 315=5 × 7 × 9 σύμφωνα με τις παραδοχές:

`⎧ ⎪ ⎨ ⎪ ⎩` |
`a=` | `3 (``mod` `5)`
`a=` | `4 (``mod` `7)`
`a=` | `1 (``mod` `9)`
| , |
`⎧ ⎪ ⎨ ⎪ ⎩` |
`b=` | `1 (``mod` `5)`
`b=` | `2 (``mod` `7)`
`b=` | `3 (``mod` `9)`

Είσοδος :

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

Έξοδος :

`[-17x+156),315]`

άρα, `a=-17 (mod 315)` και `b=156 (mod 315)`.