Ds2 Final 4si As2022
Ds2 Final 4si As2022
Ds2 Final 4si As2022
Exercice 1 : 3 pts
En mathématiques, plus précisément en combinatoire, le Triangle de Bell est un tableau
triangulaire de nombres analogues au triangle de Pascal.
La construction de ce triangle est un moyen simple d'obtenir les premiers nombres de Bell,
comme le montre l’exemple ci-contre pour N = 5.
Description
On commence par écrire 1 sur la première ligne, puis chaque ligne est obtenue en commençant
par le dernier nombre de la ligne précédente et pour obtenir un nombre, on additionne le
nombre précédent avec celui qui se trouve immédiatement au-dessus de celui-ci. Chaque ligne
aura ainsi un nombre de plus que la ligne précédente.
Pour 0<= C <= L, M [L, C] : le nombre de la ligne L et de la colonne C est définit comme suit :
• M[0, 0]= 1
• M[L, 0] = M[L-1, L-1]
• M[L, C] = M[L, C-1] + M[L-1, C-1] pour 1<= C <= L
Travail demandé
Ecrire l’algorithme d’un module permettant de remplir les N premières lignes de Triangle de
Bell
Page 1 sur 5
Exercice 2 : 5 pts
Un nombre N est dit un nombre de Carmichaëlest un entier tel que :
- Si on soustrait 1 à chacun de ses facteurs premiers est un diviseur de (N-1).
- Les nombres de Carmichael ont au moins trois facteurs premiers.
Les 5 premiers nombres de Carmichaël sont :
561 = 3 × 11 × 17
1105 = 5 × 13 × 17
1729 = 7 × 13 × 19
2465 = 5 × 17 × 29
2821 = 7 × 13 × 31
Exemples :
N = 561 est un nombre de Carmichaël
En effet : 561 = 3 × 11 × 17 (avec 3, 11 et 17 sont des facteurs premiers)
Travail demandé
1. Ecrire l’algorithme d’une fonction Carmich(n)qui permet de vérifier si un entier N est
un nombre Carmichaël ou non.
2. En faisant appel à la fonction Carmich(n), écrire l’algorithme d’une procédure
Remplir (ch, k) permettant de remplir un fichier Texte par les k premiers nombre
Carmichaël.
Page 2 sur 5
Exercice 3 : 4.5 pts
1) Soit la fonction INCONNUE suivante :
Questions :
a- Exécuter à la main la fonction inconnue pour chacune des appels suivants :
INCONNUE(43,16) et INCONNUE(43,2)
b- En déduire le rôle de cette fonction ?
Y 1 0 0 1 1 0 1
X 0 0 1 0 0 1 1
≠ = ≠ ≠ ≠ ≠ =
Travail à faire :
En disposant d’un fichier « nombre.dat » un fichier d’enregistrement ou chaque
enregistrement contenant les deux entiers NB1 et NB2, écrire un module permettant de
remplir un fichierd’enregistrement « distance_Ham.dat ». Chaque enregistrement contient :
Nb1_bin : nombre binaire correspondant au premier nombreNB1.
Nb2_bin : nombre binaire correspondant au premier nombreNB2.
Hamming : distance de Hamming entre Nb1_bin et Nb2_bin
Page 3 sur 5
Exercice 4 : 7.5 pts
Le cryptage de Vigenère est un système qui utilise une Clé de cryptage C (chaine de 7 lettres
majuscules distinctes) et une matrice carrée M composée de 26 alphabets alignés, décalés de
colonne en colonne d’un caractère.
Indices des colonnes
La matrice est remplie comme l’annexe 1 ci-dessous :
Annexe 1 :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C C D E F G H I J K L M N O P Q R S T U V W X Y Z B A
D D E F G H I J K L M N O P Q R S T U V W X Y Z C B A
E E F G H I J K L M N O P Q R S T U V W X Y Z D C B A
F F G H I J K L M N O P Q R S T U V W X Y Z E D C B A
G G H I J K L M N O P Q R S T U V W X Y Z F E D C B A
H H I J K L M N O P Q R S T U V W X Y Z G F E D C B A
I I J K L M N O P Q R S T U V W X Y Z H G F E D C B A
J J K L M N O P Q R S T U V W X Y Z I H G F E D C B A
K K L M N O P Q R S T U V W X Y Z J I H G F E D C B A
L L M N O P Q R S T U V W X Y Z K J I H G F E D C B A
M M N O P Q R S T U V W X Y Z L K J I H G F E D C B A
N N O P Q R S T U V W X Y Z M L K J I H G F E D C B A
O O P Q R S T U V W X Y Z N M L K J I H G F E D C B A
P P Q R S T U V W X Y Z O N M L K J I H G F E D C B A
Q Q R S T U V W X Y Z P O N M L K J I H G F E D C B A
R R S T U V W X Y Z Q P O N M L K J I H G F E D C B A
S S T U V W X Y Z R Q P O N M L K J I H G F E D C B A
T T U V W X Y Z S R Q P O N M L K J I H G F E D C B A
U U V W X Y Z T S R Q P O N M L K J I H G F E D C B A
V V W X Y Z U T S R Q P O N M L K J I H G F E D C B A
W W X Y Z V U T S R Q P O N M L K J I H G F E D C B A
X X Y Z W V U T S R Q P O N M L K J I H G F E D C B A
Y Y Z X W V U T S R Q P O N M L K J I H G F E D C B A
Z Z Y X W V U T S R Q P O N M L K J I H G F E D C B A
2. Ecrire l’algorithmed’un module qui permet de saisir la clef de cryptage C qui est une
chaîne des caractèresnon vide, de longueur maximale 8 et qui ne contient que des lettres
majuscules distinctes.
3. En disposant d’un fichier texte « source.txt », Écrire un algorithme d’un module qui
permet de remplir le fichier « résultat.txt » par le cryptage de chaque ligne du fichier
« sourcce.txt » par la méthode Vigenère.
mot T P P A S C A L E T P Y T H O N
CH I N F O B A C I N F O B A C I N
Résultat R M U O T C C T R Y L Z T J W N
L’intersection entre la ligne "T" et la colonne "I" dans la matrice M est : M["T","I"] = "R"
L’intersection entre la ligne "P" et la colonne "N" dans la matrice M est : M["P","N"] =
"M"
L’intersection entre la ligne "P" et la colonne "F" dans la matrice M est : M["P","F"] =
"U"
Etc …
Page 5 sur 5