Bonjour,
Sur un programme que je développe, j’ai le problème suivant :
Soit un ensemble de groupe d’éléments. Tous ces éléments sont numérotés de 1 à nb_element
. Un groupe a au moins 1 élément et au plus max_element_per_group
. Parmi ces groupes, je choisi soit un élément, soit aucun.
Par exemple sur le schéma précédent, j’ai 3 groupes, A, B et C. Les éléments ont chacun un index, de telle sorte que nb_element = 13
et max_element_per_group = 5
.
Maintenant je souhaite produire un identifiant unique (int32
) pour indiquer les éléments que j’ai choisi parmi ces groupes. Par exemple dans le groupe A j’ai choisi l’élément 1. Dans le groupe B j’ai choisi aucun élément et dans le groupe C j’ai choisi l’élément 9, mon identifiant serait par exemple 654895 (j’invente). Et à partir de ce nombre je saurai retrouver la sélection.
Ce problème vient du fait que je travaille sur GPU et qu’aujourd’hui je me retrouve à produire une liste d’index d’éléments. Mon programme serait beaucoup plus rapide si j’arrive à remplacer cette liste par un entier me permettant de recalculer cette liste d’index au besoin.
J’ai pensé à représenter ce problème sous forme matricielle, avec l’axe x représentant les groupes et l’axe y l’indice du plot dans le groupe (de 0 à max_element_per_group
). J’ai ainsi une matrice de 1 et de 0. N’y a t-il pas un moyen, connaissant les dimensions de cette matrice, de l’exprimer avec un entier ?
Je sais bien qu’il est possible que ce problème n’ai pas de solutions… Mais bon, ça vaut le coup de demander.
Merci pour votre aide.