# Théorème des restes chinois (système de congruences)

Résout le système x ≡ rᵢ (mod mᵢ) (2 à 20 congruences) par le théorème des restes chinois généralisé avec fusion par paires : modules premiers entre eux → module combiné égal au produit ; non premiers entre eux mais compatibles → PPCM ; système incompatible → absence de solution signalée clairement. Chaque congruence est vérifiée contre la solution finale. Classique : x ≡ 2 (mod 3), x ≡ 3 (mod 5), x ≡ 2 (mod 7) → x = 23 (mod 105).

> Page canonique: https://elysiatools.com/fr/tools/chinese-remainder-theorem

- **Catégorie:** Math & Numbers

- **Mots-clés:** théorème des restes chinois, système de congruences, congruences simultanées, arithmétique modulaire, ppcm, théorie des nombres

## Présentation

Ce calculateur résout les systèmes de congruences linéaires simultanées x ≡ rᵢ (mod mᵢ) de 2 à 20 équations à l'aide du théorème des restes chinois généralisé. Il prend en charge aussi bien les modules premiers entre eux (produit des modules) que les modules non premiers entre eux compatibles (calcul via le PPCM), tout en vérifiant chaque congruence et en signalant clairement les systèmes incompatibles.

## Entrées

- **Restes r (un par congruence)** (text): Comma- or space-separated remainders, one per congruence; negative values are reduced mod m.
- **Modules m (un par congruence)** (text): Comma- or space-separated moduli (each m ≥ 2), matching the remainders count.

## Quand l'utiliser

- Pour résoudre un système de congruences modulaires issu d'un exercice d'arithmétique ou d'un problème de théorie des nombres.
- Pour calculer la périodicité commune ou l'alignement de cycles d'horloges et d'événements discrets.
- Pour valider des étapes d'algorithmes cryptographiques reposant sur le théorème des restes chinois (TRC).

## Fonctionnement

- Saisissez la liste des restes (r) séparés par des virgules ou des espaces.
- Entrez la liste correspondante des modules (m ≥ 2), avec un nombre d'éléments identique à celui des restes.
- L'outil fusionne les congruences par paires en utilisant l'algorithme d'Euclide étendu, calcule le module global (produit ou PPCM) et vérifie la cohérence du système.
- Le résultat affiche la solution unique dans l'intervalle \[0, M) ainsi que la vérification détaillée pour chaque congruence.

## Cas d'usage

- Résolution d'énigmes classiques d'arithmétique modulaire comme le problème historique de Sunzi.
- Vérification de systèmes de congruences avec modules partageant des facteurs communs en cours de mathématiques.
- Détermination du temps de synchronisation minimal entre plusieurs processus récurrents de périodes distinctes.

## Questions fréquentes

### Que se passe-t-il si les modules ne sont pas premiers entre eux ?

L'outil applique la version généralisée du théorème : si le PGCD des modules divise la différence des restes, une solution est trouvée modulo leur PPCM ; sinon, le système est déclaré sans solution.

### Combien de congruences peut-on résoudre simultanément ?

Le calculateur prend en charge de 2 à 20 congruences simultanées dans une seule exécution.

### Les restes négatifs sont-ils autorisés ?

Oui, les valeurs négatives sont automatiquement réduites modulo leur base respective m avant la résolution.

### Quel séparateur utiliser pour la saisie des listes ?

Vous pouvez séparer les valeurs à l'aide de virgules ou de simples espaces pour les restes comme pour les modules.

### La solution affichée est-elle toujours positive ?

Oui, le solveur fournit l'unique solution x canonique vérifiant 0 ≤ x < M, où M est le module combiné.

## Outils associés

- [Calculateur de la fonction de Carmichael λ(n)](https://elysiatools.com/fr/tools/carmichael-function): Calcule la fonction de Carmichael λ(n) — l'exposant du groupe multiplicatif (Z/nZ)*, c'est-à-dire le plus petit k tel que a^k ≡ 1 (mod n) pour tout a premier avec n. Construite depuis la factorisation (λ(2)=1, λ(4)=2, λ(2^k)=2^(k−2) pour k ≥ 3, λ(p^k)=φ(p^k) pour les puissances impaires, puis PPCM), avec φ(n) en regard, l'existence d'une racine primitive et le critère de Korselt pour repérer les nombres de Carmichael. Classiques : λ(561) = 80 (561 est le plus petit nombre de Carmichael) et λ(8) = 2 < φ(8) = 4.
- [Générateur de permutations / combinaisons / sous-ensembles (avec répétitions)](https://elysiatools.com/fr/tools/combinatorial-generation): Génère permutations, combinaisons et sous-ensembles d'un multiensemble avec dédoublonnage automatique en ordre lexicographique : les permutations suivent next_permutation avec comptage exact n!/Π(mᵢ!) ; les combinaisons donnent les k-sous-multiensembles distincts, comptés comme coefficient de x^k dans Π(1+x+…+x^mᵢ) (C(n,k) si tous les éléments sont distincts) ; les sous-ensembles énumèrent chaque sous-multiensemble avec comptage Π(mᵢ+1) (2ⁿ si tous distincts), ensemble vide inclus. Jusqu'à 12 éléments, affichage plafonné à 200 entrées mais comptage toujours exact ; le mode combinaisons exige 1 ≤ k ≤ n. Classiques : permutations de \[A, A, B\] → 3!/2! = 3 (AAB, ABA, BAA) ; sous-ensembles de \[A, A, B\] → (2+1)(1+1) = 6.
- [Calculateur de l'indicatrice d'Euler φ(n)](https://elysiatools.com/fr/tools/euler-totient-function): Calcule l'indicatrice d'Euler φ(n) — le nombre d'entiers de \[1, n\] premiers avec n. Factorise n par divisions d'essai puis évalue exactement φ(n) = n · Π(1 − 1/p) (n ≤ 10¹²), avec option pour lister les 60 premiers nombres premiers avec n et le rappel du théorème d'Euler a^φ(n) ≡ 1 (mod n). Classiques : φ(36) = 12 (36 = 2² × 3²) ; si n est premier, φ(n) = n − 1, p. ex. φ(97) = 96.
- [Convertisseur Fraction Décimal](https://elysiatools.com/fr/tools/fraction-decimal-converter): Convertir entre fractions et décimales avec support pour les nombres mixtes, fractions impropres et divers formats décimaux
- [Solveur de jeux à somme nulle (point selle / programmation linéaire)](https://elysiatools.com/fr/tools/game-theory-zero-sum): Résout les jeux à somme nulle 2–6 × 2–6 (la matrice appartient au joueur ligne, le maximisateur ; le joueur colonne paie) : d'abord le test de point selle (si le maximin des minima de lignes égale le minimax des maxima de colonnes, l'équilibre en stratégies pures existe et toutes les cellules selles sont listées) ; sinon la matrice est décalée pour que chaque entrée soit ≥ 1 et un simplexe monophasique (base d'écarts, règle de Bland) résout max Σz s.t. Bz ≤ 1 : le primal donne la stratégie mixte q du colonne et les prix duaux d'ombre sont exactement la solution y du joueur ligne ; la valeur est décalée en retour et x, q, v sont vérifiés numériquement (xᵀA ≥ v, Aq ≤ v) ainsi que l'égalité minimax. Classique : pile ou face \[\[1,-1\],\[-1,1\]\] → valeur 0 avec mélanges 0.5/0.5.
- [Calculateur de transformée de Laplace inverse (fractions partielles)](https://elysiatools.com/fr/tools/inverse-laplace-calculator): Calcule la transformée de Laplace inverse de F(s) = N(s)/D(s) (fraction propre, dénominateur de degré ≤ 6) : racines du dénominateur regroupées par multiplicité et paires conjuguées, décomposition en fractions partielles par résolution d'un système linéaire sur les coefficients polynomiaux, puis inversion terme à terme avec les paires standard (A/(s−r)→Ae^(rt), A/(s−r)^j→At^(j−1)e^(rt)/(j−1)!, (Bs+C)/((s−α)²+β²)→e^(αt)\[Bcos(βt)+…sin(βt)\]). Classiques : 1/(s²+3s+2) → e^(−t)−e^(−2t) ; (3s+5)/(s²+4) → 3cos(2t)+2,5sin(2t).
- [Calculateur de transformée de Laplace (table des paires)](https://elysiatools.com/fr/tools/laplace-transform-calculator): Obtient par table la transformée de Laplace F(s) = ∫₀^∞ e^(−st)f(t)dt : 14 paires standard (1, t, tⁿ, e^(at), tⁿe^(at), sin/cos(kt) et leurs décalages exponentiels, sinh/cosh, t·sin/t·cos, δ(t)), avec substitution des paramètres, région de convergence (p. ex. s > a), note de dérivation et évaluation numérique facultative en un point s (avec contrôle de convergence). Exemple : L{e^t} = 1/(s−1), s>1, F(2) = 1.
- [Ordre multiplicatif modulo n (ordre d'un élément)](https://elysiatools.com/fr/tools/order-of-element-mod-n): Calcule l'ordre multiplicatif ord\_n(a) — le plus petit k ≥ 1 tel que a^k ≡ 1 (mod n) (exige gcd(a, n) = 1). L'algorithme part de φ(n) et retire les facteurs premiers en testant a^(ord/p) ; la sortie comprend la table des puissances de a, la preuve de minimalité (a^(k/p) ≢ 1 pour chaque premier p | k), le sous-groupe cyclique engendré , et signale si a est une racine primitive (ord = φ(n)) ou atteint l'ordre maximal (ord = λ(n)). Classiques : ord\_7(3) = 6 = φ(7), 3 est une racine primitive modulo 7 ; ord\_15(2) = 4 < φ(15) = 8.

## Exemples

- [Exemples de NATS Message System](https://elysiatools.com/fr/samples/nats-samples): Exemples du système de messagerie NATS incluant pub/sub, request-reply, groupes de file et JetStream pour les applications modernes cloud-native
- [Exemples de Traitement d'Images Web Python](https://elysiatools.com/fr/samples/web-image-processing-python): Exemples de traitement d'images Web Python utilisant PIL/Pillow incluant la lecture, l'enregistrement, le redimensionnement et la conversion de format
- [Exemples de Texte Mixte Chinois-Anglais](https://elysiatools.com/fr/samples/text-chinese-english-mixed-samples): Fichiers texte d'échantillon avec contenu mixte chinois-anglais pour tester les outils d'espacement automatique
- [Échantillons de Texte avec Chinois](https://elysiatools.com/fr/samples/text-with-chinese-samples): Texte multilingue contenant des caractères chinois pour tester l'extraction de chinois
