Python: besoin d'aide pour un petit programme

Splendid13

Python: besoin d'aide pour un petit programme

Message par Splendid13 » 10 oct. 2015 16:21

débutant dans Python3.0
j'essaie de faire des exercices mais je ne sais pas comment faire

def sont_congruents(nombre_1, nombre_2, modulo):
on me demande de déterminer si deux nombres sont "congruents", c'est à dire si les deux nombres
sont égaux une fois l'opération modulo appliquée (pour un certain modulo).
Autrement dit, les deux nombres sont congruents (modulo n) s'ils ont le même reste
de division entière par n.

nombre_1 (int): Le premier nombre.
nombre_2 (int): Le second nombre.
modulo (int): Le modulo à utiliser pour vérifier la congruence.

en mode booléen

comment dois-je m'y prendre
merci les amis

Splendid13

Re: Python: besoin d'aide pour un petit programme

Message par Splendid13 » 10 oct. 2015 17:08

3 autres programmes

1-
def chiffrer_dechiffrer(nombre, cle):
"""Chiffre (encrypte) ou déchiffre un nombre à l'aide une clé (publique ou privée), en utilisant la méthode RSA. Si
une clé publique est reçue, le résultat de la fonction sera un nombre chiffré. Si une clé privée est reçue, le
résultat sera le nombre original. Voir l'énoncé pour connaître les opérations mathématiques à faire ici.

Args:
nombre (int): Le nombre à chiffrer ou déchiffrer.
cle_publique (list): Une liste de deux entiers: le module de chiffement et l'exposant de chiffrement (ou de
déchiffrement).

Warning:
Le nombre ne peut pas être plus grand que le module de chiffrement, sinon l'algorithme RSA ne fonctionnera pas.
Vous pouvez utiliser l'instruction assert pour vous en assurer, mais lors de la correction nous n'utiliserons
que des nombres/clés compatibles.

Returns:
int: L'entier chiffré ou déchiffré.

2-

def chiffrer_fichier(nom_fichier_entree, nom_fichier_sortie, cle_publique):
"""À l'aide d'une clé de chiffrement (clé publique), ouvre un fichier texte, chiffre le contenu,
puis écrit le résultat (liste de nombres) dans un autre fichier. Notez que cette fonction ne
retourne rien: son résultat est l'écriture d'un fichier sur le disque.

Étapes à suivre:
1. Ouvrir le fichier d'entrée et en lire le contenu.
2. Convertir le contenu (chaîne) en liste d'entiers, en utilisant la fonction chaine_a_liste_entiers.
3. Pour chaque entier de cette liste, chiffrer le nombre à l'aide de la clé publique.
4. Écrire dans le fichier de sortie chacun des nombres. Utilisez une ligne différente pour écrire
ces nombres.

Args:
nom_fichier_entree (str): Le nom du fichier contenant le texte à chiffrer.
nom_fichier_sortie (str): Le nom du fichier où écrire le résultat du chiffrement.
cle_publique (list): Une liste de deux nombres: le module de chiffrement et l'exposant de chiffrement.



3-
def dechiffrer_fichier(nom_fichier_entree, cle_privee):
"""À l'aide de la clé de déchiffrement (clé privée), déchiffrer le contenu d'un fichier (préalablement chiffré à
l'aide de la fonction chiffrer_fichier) et retourner la chaîne résultante.

Étapes à suivre:
1. Ouvrir le fichier contenant le message codé, et en lire le contenu. Chaque ligne devrait contenir un entier.
2. Pour chacune de ces lignes (chiffres), déchiffrer le nombre en utilisant la clé privée. Récupérer le
dans une liste de nombres déchiffrés.
3. Transformer cette liste en chaîne de caractères, en utilisant la fonction liste_entiers_a_chaine.
4. Retourner cette chaîne.

Args:
nom_fichier_entree (str): Le nom du fichier où lire le message chiffré.
cle_privee (list): Une liste de deux entiers: le module de chiffrement et l'exposant de déchiffrement.

Returns:
str: La chaîne de caractères déchiffrée.

Charo

Re: Python: besoin d'aide pour un petit programme

Message par Charo » 10 oct. 2015 17:30

Assure toi de bien avoir fait le premier avant de t'attaquer aux autres… Information ma foi utile : en python `a % b` retourne le reste dans la division euclidienne de a par b.

Splendid13

Re: Python: besoin d'aide pour un petit programme

Message par Splendid13 » 10 oct. 2015 20:40

Voilà ce que j'ai fait pour le premier

est ce que cela est correct ?

Nombre=int(input("Le nombre à chiffrer est :"))
modulo_chiffrement=int(input("Entrez le modulo de chiffrement"))
exposant_chiffrement=int(input("Entrez l'exposant de (de)-chiffrement"))


cle_publique = [modulo_chiffrement, exposant_chiffrement]
if Nombre > modulo_chiffrement:
print("L'algorithme RSA ne fonctionne pas:")
else:
print("L'algorithme RSA fonctionne correctement")

Charo

Re: Python: besoin d'aide pour un petit programme

Message par Charo » 10 oct. 2015 21:00

T'es sûr de bien répondre à l'énoncé ?

Splendid13

Re: Python: besoin d'aide pour un petit programme

Message par Splendid13 » 10 oct. 2015 21:19

j'imagine que oui, du moins pour la première partie !
Comme je te le disais, je suis débutant, on a commencé le cours il y a 3 semaines et je suis dépassé

Splendid13

Re: Python: besoin d'aide pour un petit programme

Message par Splendid13 » 11 oct. 2015 05:56

Code : Tout sélectionner

Nombre=int(input("Le nombre à chiffrer est :"))
modulo_chiffrement=int(input("Entrez le modulo de chiffrement"))
exposant_chiffrement=int(input("Entrez l'exposant de (de)-chiffrement"))


cle_publique = [modulo_chiffrement, exposant_chiffrement]
if Nombre > modulo_chiffrement:
          print("L'algorithme RSA ne fonctionne pas:")
else:
          print("L'algorithme RSA fonctionne correctement")

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Python: besoin d'aide pour un petit programme

Message par fakbill » 12 oct. 2015 11:39

oui bon tu as testé si un nombre est plus grand qu'un autre...c'est bien mais bon...ca ne va pas loin.
De plus, on te dit de tester ca avec un "assert".
Sais tu ce qu'est un assert? Sais tu pourquoi c'est cas d'utilisation d'un "assert"?
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Splendid13

Re: Python: besoin d'aide pour un petit programme

Message par Splendid13 » 14 oct. 2015 06:20

non je sais pas ce qu'est un assert
3 semaines de cours tu veux que je sache tout
je viens ici pôur être aiguiller, aider et pas insulter
toi tu domines ta matière c'Est bien mais respecte ceux qui sont à chier dans TON domaine

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: Python: besoin d'aide pour un petit programme

Message par fakbill » 14 oct. 2015 09:18

Du calme :) Si tu trouves que je t'insultes tu vas avoir des surprises dans la vraie vie :(

L'énoncé dit que tu peux utiliser un assert...on peut donc supposer que tu as vu en cours ce que c'est...ou mieux qu'on t'a appris à lire la doc de python et que tu peux comprendre ce que c'est.

Donc tu ne sais pas ce qu'est la commande "assert". Soit. Ce n'est pas du tout un problème. Cherche sur le web et dis nous ce que tu en comprends. Tu devrais comprendre pourquoi c'est une commande qui peut servir quand on veut tester si une donnée entrée par l'utilisateur à un sens ou non.

ps : l'info n'est pas du tout mon domaine. C'est un outil pour moi (et pour tout les cadres scientifiquess dont ce n'est pas le domaine).
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre