Skip to content
Extraits de code Groupes Projets
Valider 6f35798e rédigé par Benoît Legat's avatar Benoît Legat
Parcourir les fichiers

Update 6_number

parent 36f39677
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -44,7 +44,7 @@ frametitle("Théorème de Bézout") ...@@ -44,7 +44,7 @@ frametitle("Théorème de Bézout")
md""" md"""
> **Définition** Le *Greatest Common Divisor (GCD)* de deux nombres ``a \in \mathbb{Z}`` et ``b \in \mathbb{Z}``, noté ``\text{gcd}(a, b)`` est le plus grand nombre ``g \in \mathbb{Z}`` qui divise ``a`` (noté ``g \mid a``) et ``b`` (noté ``g \mid b``). C'est à dire qu'il existe ``x \in \mathbb{Z}`` tel que ``a = gx`` et ``y \in \mathbb{Z}`` tel que ``b = gy``. En notation modulaire, ``a \equiv 0 \pmod{g}`` et ``b \equiv 0 \pmod{g}``. > **Définition** Le *Greatest Common Divisor (GCD)* de deux nombres ``a \in \mathbb{Z}`` et ``b \in \mathbb{Z}``, noté ``\text{gcd}(a, b)`` est le plus grand nombre ``g \in \mathbb{Z}`` qui divise ``a`` (noté ``g \mid a``) et ``b`` (noté ``g \mid b``). C'est à dire qu'il existe ``x \in \mathbb{Z}`` tel que ``a = gx`` et ``y \in \mathbb{Z}`` tel que ``b = gy``. En notation modulaire, ``a \equiv 0 \pmod{g}`` et ``b \equiv 0 \pmod{g}``.
> **Théorème de Bézout** Il existe ``x, y \in \mathbb{Z}`` tels que ``ax + by = c`` si et seulement si ``\text{gcd}(x, y)`` divise ``c``. En notation modulaire ``ax \equiv c \pmod{b}`` et ``by \equiv c \pmod{a}``. > **Théorème de Bézout** Il existe ``x, y \in \mathbb{Z}`` tels que ``ax + by = c`` si et seulement si ``\text{gcd}(a, b)`` divise ``c``. En notation modulaire ``ax \equiv c \pmod{b}`` et ``by \equiv c \pmod{a}``.
""" """
# ╔═╡ 7bad8c6c-45c7-402f-ad59-6857e9268901 # ╔═╡ 7bad8c6c-45c7-402f-ad59-6857e9268901
...@@ -72,7 +72,7 @@ qa(md"**Observation clé** Que dit le théorème de Bézout par rapport à ``\te ...@@ -72,7 +72,7 @@ qa(md"**Observation clé** Que dit le théorème de Bézout par rapport à ``\te
md""" md"""
Le nombre ``a`` est **divisible** par ``\text{gcd}(d, r)``. Le nombre ``a`` est **divisible** par ``\text{gcd}(d, r)``.
Le nombre ``\text{gcd}(d, r)`` divise donc les 3 nombres, ``a``, ``d`` et ``r`` et donc ``\text{gcd}(d, r) = \text{gcd}(a, d, r)``. Le nombre ``\text{gcd}(d, r)`` divise donc les 3 nombres, ``a``, ``d`` et ``r`` et donc ``\text{gcd}(d, r) = \text{gcd}(a, d, r)``.
En combinant ça avec l'observation précédente, on a le résultat suivant.``\text{gcd}(a, d) = \text{gcd}(d, r)``. En combinant ça avec l'observation précédente, on a ``\text{gcd}(a, d) = \text{gcd}(d, r)``. On peut généraliser cela en le lemme suivant:
""") """)
# ╔═╡ d1b260fb-7500-47fb-bb48-21b5857ab55a # ╔═╡ d1b260fb-7500-47fb-bb48-21b5857ab55a
...@@ -99,10 +99,8 @@ frametitle("Algorithme d'Euclide : implémentation") ...@@ -99,10 +99,8 @@ frametitle("Algorithme d'Euclide : implémentation")
# ╔═╡ 97736c6a-3f5d-4978-8dd2-0a11c09ba9f0 # ╔═╡ 97736c6a-3f5d-4978-8dd2-0a11c09ba9f0
function pgcd(a, b) function pgcd(a, b)
print("gcd($a, $b) = ") println("gcd($a, $b) = ")
if a < b if b == 0
return pgcd(b, a)
elseif b == 0
println(a) println(a)
return a return a
else else
...@@ -128,7 +126,7 @@ frametitle("Arithmétique modulaire : somme") ...@@ -128,7 +126,7 @@ frametitle("Arithmétique modulaire : somme")
# ╔═╡ f4f49568-dcf2-4c76-ba66-065d2fda7a4a # ╔═╡ f4f49568-dcf2-4c76-ba66-065d2fda7a4a
md""" md"""
```math ```math
a \equiv \alpha \pmod{n} \quad b \equiv \beta \pmod{n} a \equiv \alpha \pmod{n} \quad \text{et} \quad b \equiv \beta \pmod{n}
\quad \Rightarrow \quad a + b \equiv \alpha + \beta \pmod{n} \quad \Rightarrow \quad a + b \equiv \alpha + \beta \pmod{n}
``` ```
""" """
...@@ -156,6 +154,29 @@ a \mid n \quad \text{et} \quad b \mid n \quad \Rightarrow \quad (ab/\text{gcd}(a ...@@ -156,6 +154,29 @@ a \mid n \quad \text{et} \quad b \mid n \quad \Rightarrow \quad (ab/\text{gcd}(a
``` ```
""" """
# ╔═╡ c3411941-d77f-46cb-8378-23998a1a4828
frametitle("Division par 3 et 9")
# ╔═╡ a826d9d1-47db-4645-be6e-3ae0ed8d4e18
md"""
Est-ce que 2345 est divisible par 3 ou 9?
```math
\begin{align}
2 \cdot 10^3 + 3 \cdot 10^2 + 4 \cdot 10 + 5 & \equiv \,\, ? \pmod{9}\\
2 \cdot 1^3 + 3 \cdot 1^2 + 4 \cdot 1 + 5 & \equiv \,\, ? \pmod{9}\\
2 + 3 + 4 + 5 & \equiv 14 \pmod{9}\\
\end{align}
```
Est-ce que 2345 est divisible par 11?
```math
\begin{align}
2 \cdot (10)^3 + 3 \cdot 10^2 + 4 \cdot 10 + 5 & \equiv \,\, ? \pmod{11}\\
2 \cdot (-1)^3 + 3 \cdot (-1)^2 + 4 \cdot (-1) + 5 & \equiv \,\, ? \pmod{11}\\
-2 + 3 - 4 + 5 & \equiv 2 \pmod{11}\\
\end{align}
```
"""
# ╔═╡ 83852dd5-3546-45af-a845-b01dab0aa2a6 # ╔═╡ 83852dd5-3546-45af-a845-b01dab0aa2a6
frametitle("Inverse et division modulaire") frametitle("Inverse et division modulaire")
...@@ -193,11 +214,8 @@ Donc si ``(x, y)`` est solution, ``(x + b, y - a)`` aussi. ...@@ -193,11 +214,8 @@ Donc si ``(x, y)`` est solution, ``(x + b, y - a)`` aussi.
# ╔═╡ 3f1af973-a02b-4e06-8e6e-eff414fcaf67 # ╔═╡ 3f1af973-a02b-4e06-8e6e-eff414fcaf67
function pgcdx(a, b) function pgcdx(a, b)
if a < b if b == 0
g, x, y = pgcdx(b, a) return a, one(a), zero(a)
return g, y, x
elseif b == 0
return a, one(a), one(a)
else else
q, r = divrem(a, b) q, r = divrem(a, b)
g, x, y = pgcdx(b, r) g, x, y = pgcdx(b, r)
...@@ -1102,6 +1120,8 @@ version = "17.4.0+2" ...@@ -1102,6 +1120,8 @@ version = "17.4.0+2"
# ╠═a1628317-7937-4316-85bf-2da860effce3 # ╠═a1628317-7937-4316-85bf-2da860effce3
# ╠═5c6c45b4-67e3-4ea8-bc09-0205ab24cbc3 # ╠═5c6c45b4-67e3-4ea8-bc09-0205ab24cbc3
# ╟─7db2060b-d69e-42e7-ae81-fd37ee793876 # ╟─7db2060b-d69e-42e7-ae81-fd37ee793876
# ╟─c3411941-d77f-46cb-8378-23998a1a4828
# ╟─a826d9d1-47db-4645-be6e-3ae0ed8d4e18
# ╟─83852dd5-3546-45af-a845-b01dab0aa2a6 # ╟─83852dd5-3546-45af-a845-b01dab0aa2a6
# ╟─e1aafab7-c4f3-45ac-81ee-7f875ac7c8c6 # ╟─e1aafab7-c4f3-45ac-81ee-7f875ac7c8c6
# ╟─9752afbb-96e6-4f96-92cb-09654cf46155 # ╟─9752afbb-96e6-4f96-92cb-09654cf46155
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter