Du coup tu fais du binaire tout simple : 0 vaut 1, 1 vaut 2, 2 vaut 4, 3 vaut 8, et tu additionnes la valeur de tous les nombres présents dans la combinaison
Par contre 1/15/8 est équivalent à 1/8/15.
Pour que ce ne soit pas pas le cas, il faudrait considérer chacun de tes éléments comme un chiffre en base 34,que tu convertis ensuite en décimal.
Qu’est ce que tu entends par “le plus court possible ?”
Si le but c’est d’être court, tu encodes ça sur un int ou quelques bits en fonction de ta valeur max, comme dit rabban et zou. Sinon, md5 ou whatever sera suffisant hein : https://www.md5.fr/ mais c’est pas reversible. Sinon, comme t’as dit hein, tu met un separateur et zou. A priori, tes contraintes sont tellement peanuts que n’importe quoi qui collisionne pas fera l’affaire hein.
De l’art de faire compliqué, mesdames messieurs : bubu !
Du coup, je vois pas pourquoi ca a besoin d’etre reversible. Si t’as besoin de la categorie 1.5.3.9, tu sort, tu hash et zou.
Et a ce niveau de complexité de data, un CRC ou un murmur a 2 boules fera l’affaire.
Enfin, si t’es dans une DB, un index et on en parle plus normalement.
Sauf que c’est le client qui va charger la db donc si elle est trop lourde le site va etre trop long a charger …
Je vais t’expliquer le bousin j’ai pleins de videos qui ont tout un ID unique , toute ces videos ont des categories …
Ce que je veux c’est pour un mix de categorie de ces videos sortir les ID rapidement.
le probleme c’est que c’est le client (navigateur) qui va se taper la db en javascript pour le moteur de recherche.
Du coup si le navigateur fait une recherche sur la categorie 1,4,5 et 24 il faut que je sorte rapidement une liste d’ID de videos …
Et vu que le client se tape la db dans le navigateur il faut qu’elle soit la plus petite possible en taille …
Le but c’est de générer toute les combinaisons de categories possible chaque combinaisons sera liée a une lise d’ID de videos …
Hors plus la db est grosse plus , plus le site va ramer. Parce que le mode economique tiens sur le fait que l’hebergement doit couter le moins cher possible (bucket amazon).
Du coup je dois trouver un systeme d’id a lié a des videos qui soit constructible a partir de chiffres correpondant chacun a une categorie, et l’id construit doit etre le plus court possible pour pouvoir etre chargé par le navigateur du visiteur.
la solution de rabban fait 11 caracteres max ce qui veut dire 11 caractere en javascript.
Un hash fait beaucoup plus , et du coup quand tu multiplies par le nombre de combinaisons possibles la taille de la db devient exponentielle …