Bonjour à toutes et tous,

Je suis actuellement à la recherche d'une fonction capable de me générer un nombre pseudo-aléatoire mais avec quelques règles supplémentaires.

Cette fonction prendrait un argument (un entier) et retournerait un entier aléatoire associé.
L'argument sera la seed du nombre aléatoire retourné par la fonction.

Il faut aussi que la fonction soit bijective, c'est-à-dire que tous les entiers sont "générables" par la fonction.
Nom : 700px-Surjection_Injection_Bijection-fr.svg.png
Affichages : 1924
Taille : 32,6 Ko

Il ne faut pas qu'on puisse voir de motif dans la génération des nombres donc on peut exclure les fonctions affines ou exponentielles et logarithmiques.
Enfin, il faudrait que je puisse retrouver la seed depuis un nombre généré.

Voilà un exemple de ce que je voudrais obtenir :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
fonction(45) ==> 878526
fonction(46) ==> 245
fonction(47) ==> 787654
fonction(48) ==> 7883111
 
noitcnof(245) ==> 46  // "noitcnof" = "fonction" à l'envers
noitcnof(7883111) ==> 48
J'ai cherché un peu sur internet avant de poser ma question ici et je suis tombé sur des articles (en anglais) qui parlaient de "bijective mapping" mais je n'ai rien trouvé de concluant en approfondissant sur cette piste.

Merci en tout cas pour vos futures réponses, floatNone.