Bonsoir,

Je voudrais faire un test pour vérifier que, pour des nombres tous entiers:

P + f(i) (mod n) = K
K - f(i) (mod n) = P

Avec f(i) une fonction qui à un nombre entier associe un entier, autrement dit f: Z |--> Z.

Or, ça fait une heure que je cherche sur internet et pas moyen de trouver comment on déclare à python une variable uniquement par son type.
Je ne cherche pas à vérifier ça avec des nombres précis, mais seulement pour des entiers quelconques. J'ai essayé différents trucs, je n'ai pas trouvé.

Idem pour la fonction: comment lui faire comprendre f: Z |--> Z ?

Voici mon bout de code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import math
 
def f(x):
    return x^3-2*x^2+3*x-5 # pour le moment j'ai pris une fonction qui satisfasse la condition dans l'attente de ce que je recherche
 
def g(x):
    return -x^3+2*x^2-3*x+5
 
def crypt(a, b, s):
    return (a+f(b))%s
 
def decrypt(a, b, s):
    return (a-f(b))%s
a=type('int') # bon, c'était un essai vain, hein, mais bien-sûr ça ne marche pas
b=type('int')
s=type('int')
 
decrypt(crypt(a, b, s), b, s) == a
Certains vous diront que c'est inutile de déclarer une valeur vide juste avec son type, moi je dis que c'est bien utile.
Bref, je n'ai pas trouvé. Des idées ? Merci d'avance.

PS -- Au cas où, je suis débutant.