Python & Congruence modulo n
Congruence modulo n : résolution d'une équation générale
Introduction
La congruence modulo n est un concept mathématique qui permet de déterminer si deux nombres sont égaux lorsqu'on les divise par un troisième nombre. Dans cet article, nous allons voir comment utiliser la congruence modulo n pour résoudre une équation générale de la forme \(x^2 + bx \equiv r [n]\).
Congruence modulo n
Deux nombres a et b sont congruents modulo n si leur différence est un multiple de n. En d'autres termes, a et b sont congruents modulo n si, lorsqu'on les divise par n, on obtient le même reste.
Par exemple, 3 et 8 sont congruents modulo 5 car leur différence, 5, est un multiple de 5. En effet, 5 = 1 × 5.
Résolution d'une équation générale
Pour résoudre une équation générale de la forme \(x^2 + bx \equiv r [n]\), nous allons utiliser le concept de congruence modulo n.
Créer un tableau de congruence
La première étape consiste à créer un tableau de congruence. Ce tableau contient toutes les valeurs possibles de x de 0 à n-1, ainsi que les restes de la division de \(x^2 + bx - r\) par n.
\(x\) | 0 | 1 | 2 | ... | n-1 |
\(y=x^2 + bx - r\) | $$y_{0}$$ | $$y_{1}$$ | $$y_{2}$$ | ... | $$y_{n-1}$$ |
Rechercher les solutions
1. Afficher les solutions
La troisième étape consiste à afficher les solutions de l'équation.
Exemple
Créer un tableau de congruence
\(x\) | ... | 7 | 8 | ... | 24 |
\(y=x^2 + 1\) | ... | 0 | 15 | ... | 2 |
Rechercher les solutions
Les solutions de l'équation sont les valeurs de x pour lesquelles le reste de la division de \(x^2 + 1\) par 25 est égal à zéro. En regardant le tableau de congruence, on voit que les solutions sont :
- x = 7
- x = 18
Afficher les solutions
Code Python
def congruence_modulo_n(a, b, n):
"""
Vérifie si a est congrue à b modulo n.
Args:
a: Le premier nombre.
b: Le deuxième nombre.
n: Le module.
Returns:
True si a est congrue à b modulo n, False sinon.
"""
return (a - b) % n == 0
def resoudre_congruence(b, r, n):
"""
Résout l'équation générale x^2 + bx ≡ r [n].
Args:
b: Le coefficient de x.
r: Le terme constant.
n: Le module.
Returns:
Les solutions de l'équation.
"""
# Créer un tableau de congruence
tableau_congruence = [[i, (i**2 + b*i - r) % n] for i in range(n)]
# Rechercher les solutions dans le tableau de congruence
solutions = [x[0] for x in tableau_congruence if x[1] == 0]
# Renvoyer les solutions
return solutions
# Demander à l'utilisateur de saisir les valeurs de b, r et n
b = int(input("Entrez la valeur de b : "))
r = int(input("Entrez la valeur de r : "))
n = int(input("Entrez la valeur de n : "))
# Résoudre l'équation générale
solutions = resoudre_congruence(b, r, n)
# Afficher les solutions
print(f"Les solutions de l'équation x^2 + {b}x ≡ {r} [{n}] sont : {solution}".)
Commentaires
Enregistrer un commentaire
Soyez courtois et respectueux