Menu


1NSI

Les exercices python à connaître

premiers pas en Python
E1 boucles
E2 boucles
E3 boucles
E4 variables
E5 structure conditionnelle
E6 boucles
Un peu de binaire
E1 Nombre de bits
E2 Décalage binaire
E3 string
fonctions, str et listes
E1 Un compteur
E2 liste de nombres aléatoires
E3 moyenne d'une liste
E4 maximum d'une liste
E5 indices ou valeurs ?
Algorithmique partie 2
E1 Recherche séquentielle
E2 Recherche dichotomique
E3 Recherche dichotomique
E4 Nombre de 1
Les algorithmes de tri
E1 Est trié ?
E2 Tableau de 0 et de 1
E3 Inversion dans un tableau
tuples et dictionnaires
E1 Tuple
E2 Police, police
E3 Durées
E4 Anniversaires
E5 Message secret
E6 dictionnaire des occurences
E7 casser un digicode
Algorithmes gloutons
E1 Rendu de monnaie
E2 Livraisons à Manhattan

Casser un digicode

On cherche dans cet exercice à déterminer la combinaison d'un digicode. Celui-ci est représenté une fonction digicode prenant quatre paramètres a, b, c et d correspondant chacun à un entier compris entre et (inclus l'un et l'autre) et renvoyant True si la combinaison formée par ces quatre chiffres est valide et False sinon.
On peut prendre par exemple :
def digicode_1(a, b, c, d):
    return a + b - c - d == 0

Vous devez écrire la fonction digicrack qui prend en paramètre une fonction digicode et renvoie un tuple de quatre entiers, chacun compris entre et , correspondant à une combinaison acceptée par le digicode.
Si le digicode n'admet pas de combinaison valide, la fonction digicrack ne retournera rien mais affichera un message d'erreur.
Exemples :
>>> def digicode_1(a, b, c, d):
        return a + b - c - d == 0

>>> digicrack(digicode_1)
(4, 5, 4, 5)
>>> def digicode_1(a, b, c, d):
        return 156*a - 820*b + 1463*c - 465*d == 7607

>>> digicrack(digicode_2)
(3, 5, 8, 1)

Votre fonction n'a pas besoin d'analyser le fonctionnement de la fonction digicode.
Il n'y a pas tant de combinaisons possible que ça, vous pouvez toutes les tester ! 💪
En cryptanalyse, on appelle cette méthode attaque par force brute.

source : https://codex.forge.apps.education.fr