Question de creation d'ID

Voila suite au thread sur le combinatoire

du coup j’ai une liste de chiffre unique :

ex = [1,2,3,4,5]

mais du coup j’aimerais trouver un moyen de faire un ID unique si possible en int pour chaque combinaison et le plus court possible du coup aussi.

Et que l’ID soit retrouvable a partir de la combinaison

Pour l’instant je triche en faisait id = “1:3:4” et en choppant la valeur numerique de cela.

Du coup est ce qu’il y a un moyen a partir d’une suite de chiffre de générer un autre chiffre unique ?

La en intuition j’aurais les convertir en binaire et faire des Xor entre les chiffres.

je suis preneur de toute piste

merci

Question : est ce que le plus grand de tes chiffres est inférieur à la taille du tableau ?

Oui j’ai plus de 1000 combinaisons et mon plus grand chiffre est 34

Je parle de la taille de ta liste unique au départ. Quelle taille fait-elle ?

Tes combinaisons sont ordonnées ?

34 et du coup elle va de 0 à 33 inclus

oui par ordre numerique

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

oui mais par exemple quel est la difference entre
1+15+8
et 1+23 par exemple ?

2^1+2^15+2^8 = 33026
2^1+2^23 = 8388610

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.

de base les chiffre sont ordonnés donc la reciprocité je m’en fiche ca sera toujours 1/8/15 et jamais 1/15/8

merci en tout cas

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 !

le plus court possible en taille dans une base de donnée, le probleme c’est que ca doit etre reversible.

En gros c’est des categories pour gagner de la place dans mon systeme elle sont mise par des chiffres …

Or si quelqu’un veut la categorie 1,3, 7 il faut que j’ai un id court pour pouvoir faire une requete rapide.

le principe est de mettre la DB dans le navigateur du client et de mettre tout la base de données.

Du coup si j’ai 1,12,13,16,17,18,22,34

il me faut quelquechose de plus court que 1:12:13:16:17:18:22:34

et si c’est un int en db ca sera encore plus rapide.

La solution de rabban est tres bonne et je suis passé d’un export json de 36 megas ou 21 megas …

Apres voila je cherche encore a reduire tout cela …

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 …

Du coup tu peux aussi le passer en hexa pour diminuer encore un poil le nombre de caractères

ouais je gagne 8% en passant en hexa merci :slight_smile:

Putain les archis à la mords-moi-le-nœud…

bah si la pub rapportait plus je n’essayerai pas de gratter sur l’hebergement hein :confused:

Si je payes plus d’hebergeur que ce que le site me rapporte ce n’est pas rentable …

Il faut que le coup du bucket amazon sot le plus bas possible par rapport a ce que me rapporte la pub.

L’avantage de faire un site en statique avec la db incluse c’est que niveau maintenance c’est quedalle , niveau cout aussi …