bonsoir à tous !
histoire d'avancer un peu plus dans le développement d'une implémentation de Virtual DOM basée sur un block memory pool et évoquée dans ce post :
https://www.developpez.net/forums/d1...ecanique-vdom/
j'ai décidé de diviser le sujet en un ensemble de petites questions. Ce sera plus facile d'avancer ainsi !
Ici il sera question de générer des clés pseudo aléatoires, et de faire des hachage de chaînes de caractères projetant dans l'espace de ces clés. Trois questions à considérer :
1. Je souhaite créer un Générateur Congruentiel Linéaire (LCG) "full cycle", ou avec la plus grande période possible... qui donne des valeurs comprises entre 0 (inclus) et Math.pow(64, 4) (exclus), quelque chose de la forme : X[N] = (A * X[N - 1] + C) mod M. Comment déterminer les entiers A, C et M facilement ?
2. Comment convertir facilement le nombre produit en une clé lisible (et compatible avec un identifieur JS) de 4 digits sur /A-Za-z0-9_\$/ soit 64 valeurs possibles sur 4 positions ?
3. Seeding : l'utilisateur de la lib enregistrera ses composants et l'ensemble de la vue de l'application avec des chaines de caracteres personnelles, exemple: 'awesome-app', 'awesome-compo-login', etc... comment hasher simplement une chaine arbitraire pour produire une telle de ces clés ?
J(ai bien trouvé ceci, c'est bien expliqué, mais je ne parviens pas à l'adapter à mon cas précis, sans doute mes cours de maths théoriques sont ils trop loin dans le temps... les tests que j'ai mené collisionnent trop vite :
http://www.partow.net/programming/hashfunctions/
Merci d'avance !
Partager