• Aucun résultat trouvé

Structures algébriques et programmation INFO1 - Semaines 45 à 3 Guillaume CONNAN

N/A
N/A
Protected

Academic year: 2022

Partager "Structures algébriques et programmation INFO1 - Semaines 45 à 3 Guillaume CONNAN"

Copied!
272
0
0

Texte intégral

(1)

Guillaume CONNAN

IUT de Nantes - Dpt d’informatique

Dernière mise à jour : 16 décembre 2014 à 17:40

(IUT de Nantes - Dpt d’informatique ) 1 / 162

(2)

1 Loi de composition 2 Groupes

3 Le groupe (Z/nZ,+)

4 Anneaux et corps

5 Calcul modulaire en Haskell 6 Chiffrements

7 Structure d’espace vectoriel

(IUT de Nantes - Dpt d’informatique ) 2 / 162

(3)

1 Loi de composition 2 Groupes

3 Le groupe (Z/nZ,+)

4 Anneaux et corps

5 Calcul modulaire en Haskell 6 Chiffrements

7 Structure d’espace vectoriel

(IUT de Nantes - Dpt d’informatique ) 3 / 162

(4)

rb˜

(IUT de Nantes - Dpt d’informatique ) 4 / 162

(5)

TlAqm˜ ¤ rb˜ As ¨ rOtm˜ At•

(IUT de Nantes - Dpt d’informatique ) 5 / 162

(6)

1 > versMin ’A’

2 ’a’

3 .

4 .

(IUT de Nantes - Dpt d’informatique ) 6 / 162

(7)

1 > versMin ’A’

2 ’a’

3 > map versMin "TRALALAHOP"

4 "tralalahop"

(IUT de Nantes - Dpt d’informatique ) 7 / 162

(8)

3

4 .

5 .

6 .

7 .

8 .

9 .

10 .

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 8 / 162

(9)

3

4 > ord ’A’

5 .

6 .

7 .

8 .

9 .

10 .

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 9 / 162

(10)

3

4 > ord ’A’

5 65

6 .

7 .

8 .

9 .

10 .

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 10 / 162

(11)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 .

8 .

9 .

10 .

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 11 / 162

(12)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 .

9 .

10 .

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 12 / 162

(13)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 .

10 .

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 13 / 162

(14)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 .

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 14 / 162

(15)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 .

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 15 / 162

(16)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 ’a’

12 .

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 16 / 162

(17)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 ’a’

12 > 65 .|. 32

13 .

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 17 / 162

(18)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 ’a’

12 > 65 .|. 32

13 97

14 .

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 18 / 162

(19)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 ’a’

12 > 65 .|. 32

13 97

14 > setBit 65 5

15 .

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 19 / 162

(20)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 ’a’

12 > 65 .|. 32

13 97

14 > setBit 65 5

15 97

16 .

17 .

(IUT de Nantes - Dpt d’informatique ) 20 / 162

(21)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 ’a’

12 > 65 .|. 32

13 97

14 > setBit 65 5

15 97

16 > 97 .&. (complement 32)

17 .

(IUT de Nantes - Dpt d’informatique ) 21 / 162

(22)

3

4 > ord ’A’

5 65

6 > ord ’a’

7 97

8 > chr 65

9 ’A’

10 > chr (65 + 32)

11 ’a’

12 > 65 .|. 32

13 97

14 > setBit 65 5

15 97

16 > 97 .&. (complement 32)

17 65

(IUT de Nantes - Dpt d’informatique ) 22 / 162

(23)

1 versMin :: Char -> Char

2 versMin c

3 | (c < ’A’) || (c > ’Z’) = error "Pas majuscule !"

4 | otherwise = chr (setBit (ord c) 5)

(IUT de Nantes - Dpt d’informatique ) 23 / 162

(24)

Définition 1 (Loi de composition interne (LCI))

Une loi de composition interne définie sur un ensemble E est une fonction totale (ou application) de E ⊗ E dans E. On dit alors que E

muni de cette loi

est un

magma

.

(IUT de Nantes - Dpt d’informatique ) 24 / 162

(25)

Définition 2 (Stabilité)

Un ensemble E est stable par une opération ⋆ si, et seulement si : (∀⟨x, y⟩)((⟨x, y⟩ ∈ E ⊗ E ) → (x ⋆ y ∈ E ))

(IUT de Nantes - Dpt d’informatique ) 25 / 162

(26)

1 somCar :: (Char,Char) -> Char

2 somCar (a ,b) = chr ((ord a) + (ord b))

1 > somCar (’A’,’ ’)

2 ’a’

3 > somCar (’3’,’2’)

4 ’e’

(IUT de Nantes - Dpt d’informatique ) 26 / 162

(27)

1 somCar :: (Char,Char) -> Char

2 somCar (a ,b) = chr ((ord a) + (ord b))

1 > somCar (’A’,’ ’)

2 ’a’

3 > somCar (’3’,’2’)

4 ’e’

(IUT de Nantes - Dpt d’informatique ) 26 / 162

(28)

1 infix @+

2

3 (@+) a b = somCar (a,b)

1 > ’A’ @+ ’ ’

2 ’a’

(IUT de Nantes - Dpt d’informatique ) 27 / 162

(29)

1 infix @+

2

3 (@+) a b = somCar (a,b)

1 > ’A’ @+ ’ ’

2 ’a’

(IUT de Nantes - Dpt d’informatique ) 27 / 162

(30)

Définition 3 (Loi de composition externe (LCE))

Une loi de composition externe définie sur un ensemble E et à opérateurs dans un ensemble K est une fonction totale (ou application) de K ⊗ E dans E.

(IUT de Nantes - Dpt d’informatique ) 28 / 162

(31)

1 data Vect2D = Vect(Double,Double) deriving Show

2 .

3 .

4 .

(IUT de Nantes - Dpt d’informatique ) 29 / 162

(32)

1 data Vect2D = Vect(Double,Double) deriving Show

2

3 (.@) :: Double -> Vect2D -> Vect2D

4 (.@) k (Vect(x,y)) = Vect(k*x,k*y)

(IUT de Nantes - Dpt d’informatique ) 30 / 162

(33)

1 > let v = Vect(2,3)

2 > 5 .@ v

3 Vect (10.0,15.0)

(IUT de Nantes - Dpt d’informatique ) 31 / 162

(34)

Définition 4 (Morphisme)

Soit ⟨ E, ⋆⟩ et ⟨ F

,

†⟩ deux magmas et

ϕ

une fonction totale de E dans F . On dit que

ϕ

est un morphisme de E dans F si, et seulement si :

(∀x)(∀y)(ϕ ( x ⋆ y ) =

ϕ

( x )†

ϕ

( y ))

(IUT de Nantes - Dpt d’informatique ) 32 / 162

(35)

1 > :t (++)

2 .

3 .

4 .

5 .

6 .

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 33 / 162

(36)

1 > :t (++)

2 (++) :: [a] -> [a] -> [a]

3 .

4 .

5 .

6 .

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 34 / 162

(37)

1 > :t (++)

2 (++) :: [a] -> [a] -> [a]

3 > :t (+)

4 .

5 .

6 .

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 35 / 162

(38)

1 > :t (++)

2 (++) :: [a] -> [a] -> [a]

3 > :t (+)

4 (+) :: Int -> Int -> Int

5 .

6 .

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 36 / 162

(39)

1 > :t (++)

2 (++) :: [a] -> [a] -> [a]

3 > :t (+)

4 (+) :: Int -> Int -> Int

5 > :t length

6 .

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 37 / 162

(40)

1 > :t (++)

2 (++) :: [a] -> [a] -> [a]

3 > :t (+)

4 (+) :: Int -> Int -> Int

5 > :t length

6 length :: [a] -> Int

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 38 / 162

(41)

1 > :t (++)

2 (++) :: [a] -> [a] -> [a]

3 > :t (+)

4 (+) :: Int -> Int -> Int

5 > :t length

6 length :: [a] -> Int

7 > length ("Ti" ++ "Poney") == length "Ti" + length "Poney"

8 .

(IUT de Nantes - Dpt d’informatique ) 39 / 162

(42)

1 > :t (++)

2 (++) :: [a] -> [a] -> [a]

3 > :t (+)

4 (+) :: Int -> Int -> Int

5 > :t length

6 length :: [a] -> Int

7 > length ("Ti" ++ "Poney") == length "Ti" + length "Poney"

8 True

(IUT de Nantes - Dpt d’informatique ) 40 / 162

(43)

Définition 5 (Isomorphisme)

Soit ⟨ E, ⋆⟩ et ⟨ F

,

†⟩ deux magmas et

ϕ

une fonction totale de E dans F . On dit que

ϕ

est un isomorphisme de E dans F si, et seulement si, c’est un morphisme BIJECTIF de E dans F.

(IUT de Nantes - Dpt d’informatique ) 41 / 162

(44)

1 somL :: [Double] -> [Double] -> [Double]

2 somL l1 l2 = zipWith (+) l1 l2

3 .

4 .

5 .

6 .

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 42 / 162

(45)

1 somL :: [Double] -> [Double] -> [Double]

2 somL l1 l2 = zipWith (+) l1 l2

3

4 somV :: Vect2D -> Vect2D -> Vect2D

5 somV (Vect (x,y)) (Vect (x’,y’)) = Vect (x + x’, y + y’)

6 .

7 .

8 .

(IUT de Nantes - Dpt d’informatique ) 43 / 162

(46)

1 somL :: [Double] -> [Double] -> [Double]

2 somL l1 l2 = zipWith (+) l1 l2

3

4 somV :: Vect2D -> Vect2D -> Vect2D

5 somV (Vect (x,y)) (Vect (x’,y’)) = Vect (x + x’, y + y’)

6

7 vectToList :: Vect2D -> [Double]

8 vectToList (Vect (x,y)) = [x,y]

(IUT de Nantes - Dpt d’informatique ) 44 / 162

(47)

1 > let v1 = Vect (1,2)

2 > let v2 = Vect (10,15)

3 > vectToList (v1 ‘somV‘ v2) == vectToList v1 ‘somL‘ vectToList v2

4 True

(IUT de Nantes - Dpt d’informatique ) 45 / 162

(48)

Définition 6 (Commutativité)

Une LCI ⋆ sur E est commutative si, et seulement si (∀ x )(∀ y )( x ⋆ y = y ⋆ x )

(IUT de Nantes - Dpt d’informatique ) 46 / 162

(49)

Définition 7 (Associativité)

Une LCI ⋆ sur E est associative si, et seulement si

(∀ x )(∀ y )(∀ z )( x ⋆ ( y ⋆ z ) = ( x ⋆ y ) ⋆ z )

Un magma muni d’une loi associative est appelé... un magma associatif.

(IUT de Nantes - Dpt d’informatique ) 47 / 162

(50)

Définition 8 (Élément neutre)

Un élément neutre e d’une LCI ⋆ sur E est un élément e

qui vérifie : (∀x )(x ⋆ e

= e

⋆ x = x)

Un magma associatif admettant un élément neutre est un

monoïde

(ou un magma associatif

unifère

).

Pouvez-vous démontrer que si l’élément neutre existe, il est unique ?

(IUT de Nantes - Dpt d’informatique ) 48 / 162

(51)

Définition 8 (Élément neutre)

Un élément neutre e d’une LCI ⋆ sur E est un élément e

qui vérifie : (∀x )(x ⋆ e

= e

⋆ x = x)

Un magma associatif admettant un élément neutre est un

monoïde

(ou un magma associatif

unifère

).

Pouvez-vous démontrer que si l’élément neutre existe, il est unique ?

(IUT de Nantes - Dpt d’informatique ) 48 / 162

(52)

Définition 8 (Élément neutre)

Un élément neutre e d’une LCI ⋆ sur E est un élément e

qui vérifie : (∀x )(x ⋆ e

= e

⋆ x = x)

Un magma associatif admettant un élément neutre est un

monoïde

(ou un magma associatif

unifère

).

Pouvez-vous démontrer que si l’élément neutre existe, il est unique ?

(IUT de Nantes - Dpt d’informatique ) 48 / 162

(53)

Définition 9 (Élément symétrisable)

Soit x un élément de E. Il est inversible (ou symétrisable) par ⋆ si, et seulement si,

(∃ y )( x ⋆ y = y ⋆ x = e

)

Pouvez-vous démontrer que si

x

admet un symétrique, alors ce symétrique est unique ?

(IUT de Nantes - Dpt d’informatique ) 49 / 162

(54)

Définition 9 (Élément symétrisable)

Soit x un élément de E. Il est inversible (ou symétrisable) par ⋆ si, et seulement si,

(∃ y )( x ⋆ y = y ⋆ x = e

)

Pouvez-vous démontrer que si

x

admet un symétrique, alors ce symétrique est unique ?

(IUT de Nantes - Dpt d’informatique ) 49 / 162

(55)

Définition 9 (Élément symétrisable)

Soit x un élément de E. Il est inversible (ou symétrisable) par ⋆ si, et seulement si,

(∃ y )( x ⋆ y = y ⋆ x = e

)

Pouvez-vous démontrer que si x admet un symétrique, alors ce symétrique est unique ?

(IUT de Nantes - Dpt d’informatique ) 49 / 162

(56)

Définition 10 (Régularité)

Un élément a de E est dit

régulier à gauche

(ou

simplifiable à gauche

) si, et seulement si :

(∀ x )(∀ y )(( a ⋆ x = a ⋆ y ) → ( x = y )) On a une définition similaire de la régularité à droite.

Un élément à la fois régulier à gauche et à droite est dit

régulier

. Une loi telle que tout élément soit régulier est dite régulière.

Un élément symétrisable est régulier (vérifiez-le). Un élément régulier est-il symétrisable ?

(IUT de Nantes - Dpt d’informatique ) 50 / 162

(57)

Définition 10 (Régularité)

Un élément a de E est dit

régulier à gauche

(ou

simplifiable à gauche

) si, et seulement si :

(∀ x )(∀ y )(( a ⋆ x = a ⋆ y ) → ( x = y )) On a une définition similaire de la régularité à droite.

Un élément à la fois régulier à gauche et à droite est dit

régulier

. Une loi telle que tout élément soit régulier est dite régulière.

Un élément symétrisable est régulier (vérifiez-le). Un élément régulier est-il symétrisable ?

(IUT de Nantes - Dpt d’informatique ) 50 / 162

(58)

Définition 10 (Régularité)

Un élément a de E est dit

régulier à gauche

(ou

simplifiable à gauche

) si, et seulement si :

(∀ x )(∀ y )(( a ⋆ x = a ⋆ y ) → ( x = y )) On a une définition similaire de la régularité à droite.

Un élément à la fois régulier à gauche et à droite est dit

régulier

. Une loi telle que tout élément soit régulier est dite régulière.

Un élément symétrisable est régulier (vérifiez-le). Un élément régulier est-il symétrisable ?

(IUT de Nantes - Dpt d’informatique ) 50 / 162

(59)

Définition 11 (Distributivité)

On dit que la loi ⋆ définie sur E est distributive sur † définie sur E si, et seulement si :

(∀x)(∀y)(∀z)((x ⋆(y †z) = (x ⋆ y)†(x ⋆ z ))∧((y†z)⋆x = (y ⋆ x)†(z ⋆x)))

(IUT de Nantes - Dpt d’informatique ) 51 / 162

(60)

Définition 12 (Élément absorbant)

Un élément absorbant d’une LCI ⋆ sur E est un élément a

qui vérifie :

(∀ x )( x ⋆ a

= a

⋆ x = a

) Montrez que si un tel élément existe, il est unique.

(IUT de Nantes - Dpt d’informatique ) 52 / 162

(61)

Définition 12 (Élément absorbant)

Un élément absorbant d’une LCI ⋆ sur E est un élément a

qui vérifie :

(∀ x )( x ⋆ a

= a

⋆ x = a

) Montrez que si un tel élément existe, il est unique.

(IUT de Nantes - Dpt d’informatique ) 52 / 162

(62)

Définition 12 (Élément absorbant)

Un élément absorbant d’une LCI ⋆ sur E est un élément a

qui vérifie :

(∀ x )( x ⋆ a

= a

⋆ x = a

) Montrez que si un tel élément existe, il est unique.

(IUT de Nantes - Dpt d’informatique ) 52 / 162

(63)

Définition 13 (Élément involutif)

Soit ⋆ une loi sur un ensemble E admettant un élément neutre e

. Alors x est

involutif

si, et seulement si, x ⋆ x = e

.

Définition 14 (Élément idempotent)

Soit⋆ une loi sur un ensemble E.

Alorsx est idempotentsi, et seulement si,x⋆x=x.

(IUT de Nantes - Dpt d’informatique ) 53 / 162

(64)

Définition 13 (Élément involutif)

Soit ⋆ une loi sur un ensemble E admettant un élément neutre e

. Alors x est

involutif

si, et seulement si, x ⋆ x = e

.

Définition 14 (Élément idempotent) Soit

une loi sur un ensemble E.

Alors

x

est

idempotent

si, et seulement si,

x⋆x=x

.

(IUT de Nantes - Dpt d’informatique ) 53 / 162

(65)

Définition 13 (Élément involutif)

Soit ⋆ une loi sur un ensemble E admettant un élément neutre e

. Alors x est

involutif

si, et seulement si, x ⋆ x = e

.

Définition 14 (Élément idempotent) Soit ⋆ une loi sur un ensemble E.

Alors x est

idempotent

si, et seulement si, x ⋆ x = x .

(IUT de Nantes - Dpt d’informatique ) 53 / 162

(66)

1 Loi de composition 2 Groupes

3 Le groupe (Z/nZ,+)

4 Anneaux et corps

5 Calcul modulaire en Haskell 6 Chiffrements

7 Structure d’espace vectoriel

(IUT de Nantes - Dpt d’informatique ) 54 / 162

(67)

É.Galois (1811-1832)

(IUT de Nantes - Dpt d’informatique ) 55 / 162

(68)

Définition 15 (Groupe)

Un groupe est un monoïde tel que tout élément est inversible.

Définition 16 (Sous-groupe)

⟨H,⋆⟩ est un sous-groupe de ⟨G,⋆⟩ si, et seulement si, H est une partie de G et ⟨H,⋆⟩ est un groupe.

(IUT de Nantes - Dpt d’informatique ) 56 / 162

(69)

Définition 15 (Groupe)

Un groupe est un monoïde tel que tout élément est inversible.

Définition 16 (Sous-groupe)

⟨H,⋆⟩

est un sous-groupe de

⟨G,⋆⟩

si, et seulement si, H est une partie de G et

⟨H,⋆⟩

est un groupe.

(IUT de Nantes - Dpt d’informatique ) 56 / 162

(70)

Définition 15 (Groupe)

Un groupe est un monoïde tel que tout élément est inversible.

Définition 16 (Sous-groupe)

⟨ H, ⋆⟩ est un sous-groupe de ⟨ G

,

⋆⟩ si, et seulement si, H est une partie de G et ⟨H, ⋆⟩ est un groupe.

(IUT de Nantes - Dpt d’informatique ) 56 / 162

(71)

1 Loi de composition 2 Groupes

3 Le groupe (Z/nZ,+)

4 Anneaux et corps

5 Calcul modulaire en Haskell 6 Chiffrements

7 Structure d’espace vectoriel

(IUT de Nantes - Dpt d’informatique ) 57 / 162

(72)

Deux éléments a et b du groupe (Z

,

+) sont

congrus modulo

n si, et seulement si, ils ont le même reste dans la division par n. On note

a ≡ b (mod n ) ou

a ≡

n

b et on lit « a est congru à b modulo n ».

« Well, LISP seems to work okay now, modulo that GC bug. »

« I feel fine today modulo a slight headache. »

in « The New Hacker’s Dictionnary » http://outpost9.com/reference/jargon/jargon_28.html#SEC35

(IUT de Nantes - Dpt d’informatique ) 58 / 162

(73)

Deux éléments a et b du groupe (Z

,

+) sont

congrus modulo

n si, et seulement si, ils ont le même reste dans la division par n. On note

a ≡ b (mod n ) ou

a ≡

n

b et on lit « a est congru à b modulo n ».

« Well, LISP seems to work okay now, modulo that GC bug. »

« I feel fine today modulo a slight headache. »

in « The New Hacker’s Dictionnary » http://outpost9.com/reference/jargon/jargon_28.html#SEC35

(IUT de Nantes - Dpt d’informatique ) 58 / 162

(74)

Deux éléments a et b du groupe (Z

,

+) sont

congrus modulo

n si, et seulement si, ils ont le même reste dans la division par n. On note

a ≡ b (mod n ) ou

a ≡

n

b et on lit « a est congru à b modulo n ».

« Well, LISP seems to work okay now, modulo that GC bug. »

« I feel fine today modulo a slight headache. »

in « The New Hacker’s Dictionnary » http://outpost9.com/reference/jargon/jargon_28.html#SEC35

(IUT de Nantes - Dpt d’informatique ) 58 / 162

(75)

Deux éléments a et b du groupe (Z

,

+) sont

congrus modulo

n si, et seulement si, ils ont le même reste dans la division par n. On note

a ≡ b (mod n ) ou

a ≡

n

b et on lit « a est congru à b modulo n ».

« Well, LISP seems to work okay now, modulo that GC bug. »

« I feel fine today modulo a slight headache. »

in « The New Hacker’s Dictionnary » http://outpost9.com/reference/jargon/jargon_28.html#SEC35

(IUT de Nantes - Dpt d’informatique ) 58 / 162

(76)

Deux éléments a et b du groupe (Z

,

+) sont

congrus modulo

n si, et seulement si, ils ont le même reste dans la division par n. On note

a ≡ b (mod n ) ou

a ≡

n

b et on lit « a est congru à b modulo n ».

« Well, LISP seems to work okay now, modulo that GC bug. »

« I feel fine today modulo a slight headache. »

in « The New Hacker’s Dictionnary » http://outpost9.com/reference/jargon/jargon_28.html#SEC35

(IUT de Nantes - Dpt d’informatique ) 58 / 162

(77)

Deux éléments a et b du groupe (Z

,

+) sont

congrus modulo

n si, et seulement si, ils ont le même reste dans la division par n. On note

a ≡ b (mod n ) ou

a ≡

n

b et on lit « a est congru à b modulo n ».

« Well, LISP seems to work okay now, modulo that GC bug. »

« I feel fine today modulo a slight headache. »

in « The New Hacker’s Dictionnary » http://outpost9.com/reference/jargon/jargon_28.html#SEC35

(IUT de Nantes - Dpt d’informatique ) 58 / 162

(78)

# -17 mod 3 ;;

- : int = -2

# -17 / 3;;

- : int = -5

# (-17 / 3)*3 + (-17 mod 3) ;;

- : int = -17

_Python_

>>> 17 % 3 2

>>> -17 % 3 1

>>> -17/3 -6

>>> (-17 // 3)*3 + (-17 % 3)

-17

(IUT de Nantes - Dpt d’informatique ) 59 / 162

(79)

# -17 mod 3 ;;

- : int = -2

# -17 / 3;;

- : int = -5

# (-17 / 3)*3 + (-17 mod 3) ;;

- : int = -17

_Python_

>>> 17 % 3 2

>>> -17 % 3 1

>>> -17/3 -6

>>> (-17 // 3)*3 + (-17 % 3)

-17

(IUT de Nantes - Dpt d’informatique ) 59 / 162

(80)

4 1

5 > div (-17) 3

6 -6

7 > 3 * (div (-17) 3) + (mod (-17) 3)

8 -17

9 > rem (-17) 3

10 -2

11 > quot (-17) 3

12 -5

13 > 3 * (quot (-17) 3) + (rem (-17) 3)

14 -17

15 > 3 * (quot (-17) 3) + (mod (-17) 3)

16 -14

17 > 3 * (div (-17) 3) + (rem (-17) 3)

18 -20

(IUT de Nantes - Dpt d’informatique ) 60 / 162

(81)

Théorème 18 (Division euclidienne)

Soit a un entier relatif et b un entier naturel non nul.

Il existe un unique couple d’entiers ( q, r ) tels que a = bq + r avec 0 ⩽ r < b

Déterminer q et r , c’est effectuer la division euclidienne de a par b . On appelle a le dividende, b le diviseur, q le quotient et r le reste.

(IUT de Nantes - Dpt d’informatique ) 61 / 162

(82)

(IUT de Nantes - Dpt d’informatique ) 62 / 162

(83)

Théorème 19

Soit a et b deux entiers et n un entier naturel.

a est congru à b modulo n si et seulement si a − b est un multiple de n

Théorème 20

a≡nb⇐⇒ ∃k∈Z ∣ a=b+kn

(IUT de Nantes - Dpt d’informatique ) 63 / 162

(84)

Théorème 19

Soit a et b deux entiers et n un entier naturel.

a est congru à b modulo n si et seulement si a − b est un multiple de n

Théorème 20

a≡nb⇐⇒ ∃k∈Z ∣ a=b+kn

(IUT de Nantes - Dpt d’informatique ) 63 / 162

(85)

Théorème 19

Soit a et b deux entiers et n un entier naturel.

a est congru à b modulo n si et seulement si a − b est un multiple de n

Théorème 20

a ≡

n

b ⇐⇒ ∃ k ∈

Z

∣ a = b + kn

(IUT de Nantes - Dpt d’informatique ) 63 / 162

(86)

1 Card(Z/nZ) =n

2 a≡na

3 Sia≡nb, alors b≡na

4 Sia≡nb etb≡nc, alors a≡nc

5 Sia≡nb etanb, alors

a+anb+b a−anb−b aanbb

6 Sia≡nb, alors, pour tout p∈N,apnbp

(IUT de Nantes - Dpt d’informatique ) 64 / 162

(87)

1

Card (Z / n

Z

) = n

2 a≡na

3 Sia≡nb, alors b≡na

4 Sia≡nb etb≡nc, alors a≡nc

5 Sia≡nb etanb, alors

a+anb+b a−anb−b aanbb

6 Sia≡nb, alors, pour tout p∈N,apnbp

(IUT de Nantes - Dpt d’informatique ) 64 / 162

(88)

1

Card (Z / n

Z

) = n

2

a ≡

n

a

3 Sia≡nb, alors b≡na

4 Sia≡nb etb≡nc, alors a≡nc

5 Sia≡nb etanb, alors

a+anb+b a−anb−b aanbb

6 Sia≡nb, alors, pour tout p∈N,apnbp

(IUT de Nantes - Dpt d’informatique ) 64 / 162

(89)

1

Card (Z / n

Z

) = n

2

a ≡

n

a

3

Si a ≡

n

b , alors b ≡

n

a

4 Sia≡nb etb≡nc, alors a≡nc

5 Sia≡nb etanb, alors

a+anb+b a−anb−b aanbb

6 Sia≡nb, alors, pour tout p∈N,apnbp

(IUT de Nantes - Dpt d’informatique ) 64 / 162

(90)

1

Card (Z / n

Z

) = n

2

a ≡

n

a

3

Si a ≡

n

b , alors b ≡

n

a

4

Si a ≡

n

b et b ≡

n

c , alors a ≡

n

c

5 Sia≡nb etanb, alors

a+anb+b a−anb−b aanbb

6 Sia≡nb, alors, pour tout p∈N,apnbp

(IUT de Nantes - Dpt d’informatique ) 64 / 162

(91)

1

Card (Z / n

Z

) = n

2

a ≡

n

a

3

Si a ≡

n

b , alors b ≡

n

a

4

Si a ≡

n

b et b ≡

n

c , alors a ≡

n

c

5

Si a ≡

n

b et a

n

b

, alors

a + a

n

b + b

a − a

n

b − b

aa

n

bb

6 Sia≡nb, alors, pour tout p∈N,apnbp

(IUT de Nantes - Dpt d’informatique ) 64 / 162

(92)

1

Card (Z / n

Z

) = n

2

a ≡

n

a

3

Si a ≡

n

b , alors b ≡

n

a

4

Si a ≡

n

b et b ≡

n

c , alors a ≡

n

c

5

Si a ≡

n

b et a

n

b

, alors

a + a

n

b + b

a − a

n

b − b

aa

n

bb

6

Si a ≡

n

b , alors, pour tout p ∈

N,

a

p

n

b

p

(IUT de Nantes - Dpt d’informatique ) 64 / 162

(93)

Attention à la division ! 12 ≡

6

0,

mais 12

3 /≡6 0 3!

(IUT de Nantes - Dpt d’informatique ) 65 / 162

(94)

Attention à la division ! 12 ≡

6

0,

mais 12

3 /≡6 0 3!

(IUT de Nantes - Dpt d’informatique ) 65 / 162

(95)

Attention à la division ! 12 ≡

6

0, mais 12

3 /≡

6

0 3 !

(IUT de Nantes - Dpt d’informatique ) 65 / 162

(96)

(IUT de Nantes - Dpt d’informatique ) 66 / 162

(97)

(IUT de Nantes - Dpt d’informatique ) 67 / 162

(98)

Exercice 1

Écrivez par exemple les lois d’addition et de multiplication de

Z

/ 7Z et

Z

/ 8Z : des remarques ?

Est-ce que(Z/nZ,+)et (Z/nZ,⋅)sont des groupes ?

(IUT de Nantes - Dpt d’informatique ) 68 / 162

(99)

Exercice 1

Écrivez par exemple les lois d’addition et de multiplication de

Z

/ 7Z et

Z

/ 8Z : des remarques ?

Est-ce que(Z/nZ,+)et (Z/nZ,⋅)sont des groupes ?

(IUT de Nantes - Dpt d’informatique ) 68 / 162

(100)

Exercice 1

Écrivez par exemple les lois d’addition et de multiplication de

Z

/ 7Z et

Z

/ 8Z : des remarques ?

Est-ce que (Z / n

Z,

+) et (Z / n

Z,

⋅) sont des groupes ?

(IUT de Nantes - Dpt d’informatique ) 68 / 162

(101)

Par exemple, on notera :

Z

/ 8Z = {0

8,

1

8,

2

8,

3

8,

4

8,

5

8,

6

8,

7

8

}

(IUT de Nantes - Dpt d’informatique ) 69 / 162

(102)

Attention !

Notez bien que 0

8

, 1

8

, etc. sont des ensembles d’entiers !...

Ainsi 0

8= {...,−16,−8,

0

,

8

,

16

,

24

,

32

, ...}

(IUT de Nantes - Dpt d’informatique ) 70 / 162

(103)

Attention !

Notez bien que 0

8

, 1

8

, etc. sont des ensembles d’entiers !...

Ainsi 0

8= {...,−16,−8,

0

,

8

,

16

,

24

,

32

, ...}

(IUT de Nantes - Dpt d’informatique ) 70 / 162

(104)

Attention !

Notez bien que 0

8

, 1

8

, etc. sont des ensembles d’entiers !...

Ainsi 0

8

= {

...,

−16

,

−8

,

0

,

8

,

16

,

24

,

32

, ...

}

(IUT de Nantes - Dpt d’informatique ) 70 / 162

(105)

Théorème 22

Toute partie non vide de

N

possède un plus petit élément.

Théorème 23

Toute partie non vide MAJORÉE de Npossède un plus GRAND élément.

Théorème 24

Sid divise aet b alorsd divise toute COMBINAISON LINÉAIRE deaet b.

(IUT de Nantes - Dpt d’informatique ) 71 / 162

(106)

Théorème 22

Toute partie non vide de

N

possède un plus petit élément.

Théorème 23

Toute partie non vide MAJORÉE de Npossède un plus GRAND élément.

Théorème 24

Sid divise aet b alorsd divise toute COMBINAISON LINÉAIRE deaet b.

(IUT de Nantes - Dpt d’informatique ) 71 / 162

(107)

Théorème 22

Toute partie non vide de

N

possède un plus petit élément.

Théorème 23

Toute partie non vide MAJORÉE de

N

possède un plus GRAND élément.

Théorème 24

Sid divise aet b alorsd divise toute COMBINAISON LINÉAIRE deaet b.

(IUT de Nantes - Dpt d’informatique ) 71 / 162

(108)

Théorème 22

Toute partie non vide de

N

possède un plus petit élément.

Théorème 23

Toute partie non vide MAJORÉE de

N

possède un plus GRAND élément.

Théorème 24

Sid divise aet b alorsd divise toute COMBINAISON LINÉAIRE deaet b.

(IUT de Nantes - Dpt d’informatique ) 71 / 162

(109)

Théorème 22

Toute partie non vide de

N

possède un plus petit élément.

Théorème 23

Toute partie non vide MAJORÉE de

N

possède un plus GRAND élément.

Théorème 24

Si d divise a et b alors d divise toute COMBINAISON LINÉAIRE de a et b.

(IUT de Nantes - Dpt d’informatique ) 71 / 162

(110)

Théorème 25

Si d divise a alors ∣ d ∣ ⩽ ∣ a ∣.

Théorème 26

Sid divised et d divised alors d=d.

Théorème 27 (Suite strictement décroissante d’entiers naturels)

Toute suite strictement décroissante d’entiers naturels est constante à partir d’un certain rang.

(IUT de Nantes - Dpt d’informatique ) 72 / 162

(111)

Théorème 25

Si d divise a alors ∣ d ∣ ⩽ ∣ a ∣.

Théorème 26

Sid divised et d divised alors d=d.

Théorème 27 (Suite strictement décroissante d’entiers naturels)

Toute suite strictement décroissante d’entiers naturels est constante à partir d’un certain rang.

(IUT de Nantes - Dpt d’informatique ) 72 / 162

(112)

Théorème 25

Si d divise a alors ∣ d ∣ ⩽ ∣ a ∣.

Théorème 26

Si d divise d

et d

divise d alors d

= d .

Théorème 27 (Suite strictement décroissante d’entiers naturels)

Toute suite strictement décroissante d’entiers naturels est constante à partir d’un certain rang.

(IUT de Nantes - Dpt d’informatique ) 72 / 162

(113)

Théorème 25

Si d divise a alors ∣ d ∣ ⩽ ∣ a ∣.

Théorème 26

Si d divise d

et d

divise d alors d

= d .

Théorème 27 (Suite strictement décroissante d’entiers naturels)

Toute suite strictement décroissante d’entiers naturels est constante à partir d’un certain rang.

(IUT de Nantes - Dpt d’informatique ) 72 / 162

(114)

Théorème 25

Si d divise a alors ∣ d ∣ ⩽ ∣ a ∣.

Théorème 26

Si d divise d

et d

divise d alors d

= d .

Théorème 27 (Suite strictement décroissante d’entiers naturels) Toute suite strictement décroissante d’entiers naturels est constante à partir d’un certain rang.

(IUT de Nantes - Dpt d’informatique ) 72 / 162

(115)

Définition 28 (PGCD)

Soit a et b deux entiers. On appelle PGCD de a et b et on note a ∧ b l’entier défini de la manière suivante :

0∧0=0

Siaet b ne sont pas simultanément nuls, a∧b est le plus grand entier naturel qui divise simultanément aetb.

D(a) ∩ D(b)

(IUT de Nantes - Dpt d’informatique ) 73 / 162

(116)

Définition 28 (PGCD)

Soit a et b deux entiers. On appelle PGCD de a et b et on note a ∧ b l’entier défini de la manière suivante :

0 ∧ 0 = 0

Siaet b ne sont pas simultanément nuls, a∧b est le plus grand entier naturel qui divise simultanément aetb.

D(a) ∩ D(b)

(IUT de Nantes - Dpt d’informatique ) 73 / 162

(117)

Définition 28 (PGCD)

Soit a et b deux entiers. On appelle PGCD de a et b et on note a ∧ b l’entier défini de la manière suivante :

0 ∧ 0 = 0

Si a et b ne sont pas simultanément nuls, a ∧ b est le plus grand entier naturel qui divise simultanément a et b .

D(a) ∩ D(b)

(IUT de Nantes - Dpt d’informatique ) 73 / 162

(118)

Définition 28 (PGCD)

Soit a et b deux entiers. On appelle PGCD de a et b et on note a ∧ b l’entier défini de la manière suivante :

0 ∧ 0 = 0

Si a et b ne sont pas simultanément nuls, a ∧ b est le plus grand entier naturel qui divise simultanément a et b .

D(a) ∩ D(b)

(IUT de Nantes - Dpt d’informatique ) 73 / 162

(119)

Définition 28 (PGCD)

Soit a et b deux entiers. On appelle PGCD de a et b et on note a ∧ b l’entier défini de la manière suivante :

0 ∧ 0 = 0

Si a et b ne sont pas simultanément nuls, a ∧ b est le plus grand entier naturel qui divise simultanément a et b .

D( a ) ∩ D( b )

(IUT de Nantes - Dpt d’informatique ) 73 / 162

(120)

Théorème 29 (Égalité de Bézout)

Soit a et b deux entiers relatifs. Si d = a ∧ b , alors il existe deux entiers u et v tels que :

au + bv = d

(IUT de Nantes - Dpt d’informatique ) 74 / 162

(121)

Théorème 30

Si ab ≠ 0 et k un entier quelconque

a ∧ ( b + ka ) = a ∧ b et en particulier

a ∧ b = a ∧ (b − a) = a ∧ (a − b)

(IUT de Nantes - Dpt d’informatique ) 75 / 162

(122)

Théorème 31

Si ab ≠ 0 et k un entier quelconque

a ∧ ( b + ka ) = a ∧ b et en particulier

a ∧ b = a ∧ ( b − a ) = a ∧ ( a − b )

(IUT de Nantes - Dpt d’informatique ) 76 / 162

(123)

Fonction euclide( a, b :entiers) :entier Si b = 0 Alors

Retourner a Sinon

Retourner euclide(b,rem(a,b)) FinSi

(IUT de Nantes - Dpt d’informatique ) 77 / 162

(124)

k u

k

v

k

r

k

q

k

0 1 0 r

0

= a /

1 0 1 r

1

= b q

1

2 u

0

− u

1

q

1

v

0

− v

1

q

1

r

2

= r

0

− r

1

q

1

q

2

3 u

1

− u

2

q

2

v

1

− v

2

q

2

r

3

= r

1

− r

2

q

2

q

3

... ... ...

p − 1 r

p−1

= a ∧ b q

p−1

p r

p

= 0

(IUT de Nantes - Dpt d’informatique ) 78 / 162

(125)

u

k

( u

k+1

× q

k+1

)

= u

k+2

(IUT de Nantes - Dpt d’informatique ) 79 / 162

(126)

k u

k

v

k

r

k

q

k

0 1 0 19 / L

0

1 0 1 15 1 L

1

2 1 −1 4 3 L

2

← L

0

− 1 × L

1

3 −3 4 3 1 L

3

← L

1

− 3 × L

2

4 4 −5 1 3 L

4

← L

2

− 1 × L

3

5 0 L

5

← L

3

− 3 × L

4

(IUT de Nantes - Dpt d’informatique ) 80 / 162

(127)

Si r’ = 0 Alors Retourner [u,v,r]

Sinon

q

quo(r,r’)

Retourner euc(u’,v’,r’,u-q*u’,v-q*v’,r-q*r’) FinSi

Fonction EUC( a,b :entiers) :liste d’entiers Retourner euc(1,0,a,0,1,b)

(IUT de Nantes - Dpt d’informatique ) 81 / 162

(128)

Définition 32

Deux entiers a et b sont premiers entre eux si et seulement si a ∧ b = 1

Théorème 33 (Théorème de Bézout)

Les entiersa etb sont premiers entre eux si, et seulement si, il existe deux entiers u et v tels queau+bv =1

a∧b=1⇐⇒ il existe (u,v) ∈Z2 tel que au+bv =1

(IUT de Nantes - Dpt d’informatique ) 82 / 162

(129)

Définition 32

Deux entiers a et b sont premiers entre eux si et seulement si a ∧ b = 1

Théorème 33 (Théorème de Bézout)

Les entiersa etb sont premiers entre eux si, et seulement si, il existe deux entiers u et v tels queau+bv =

1

a∧b=

1

⇐⇒ il existe (u,v) ∈Z2 tel que au+bv =

1

(IUT de Nantes - Dpt d’informatique ) 82 / 162

(130)

Définition 32

Deux entiers a et b sont premiers entre eux si et seulement si a ∧ b = 1

Théorème 33 (Théorème de Bézout)

Les entiers a et b sont premiers entre eux si, et seulement si, il existe deux entiers u et v tels que au + bv = 1

a ∧ b = 1 ⇐⇒ il existe ( u, v ) ∈

Z2

tel que au + bv = 1

(IUT de Nantes - Dpt d’informatique ) 82 / 162

(131)

1 Loi de composition 2 Groupes

3 Le groupe (Z/nZ,+)

4 Anneaux et corps

5 Calcul modulaire en Haskell 6 Chiffrements

7 Structure d’espace vectoriel

(IUT de Nantes - Dpt d’informatique ) 83 / 162

(132)

(IUT de Nantes - Dpt d’informatique ) 84 / 162

Références

Documents relatifs

Les éléments d’un anneau unitaire qui admettent un symétrique par sont dits inversibles... Définition

Les éléments d’un anneau unitaire qui admettent un symétrique par sont dits inversibles.. On note A ∗ l’ensemble des éléments inversibles

This treatment of nan ensures that compare defines a total ordering relation. (IUT de Nantes - Dpt d’informatique ) 11

Ils le font soit automatiquement, soit si la fonction utilise une récursion terminale, c’est-à-dire si l’appel récursif à la fonction n’est pas enrobé dans une autre fonction.

induction mathématique (raisonnement par récurrence) fonction récursive, type récursif. (IUT de Nantes - Dpt d'informatique ) 20

Automates à états finis avec sortie Automates à pile..

Ce qui va nous intéresser informatiquement, c'est une fonction qui crée une partition d'un ensemble selon une propriété, par exemple pour regrouper les entiers pairs parmi les

Langage reconnaissable Langage reconnu Automates équivalents Automates standards Automates émondés.. Théorème