Combinações únicas de conjuntos com números primos

Imaginemos que num programa temos que gerar uma espécie de chave única para uma combinação de elementos de um set e em que a ordem pela qual esses elementos aparece não é importante. Imaginemos que o set é

ZZ=\{A, B, C, D, E, F, G, H\}

e que é preciso gerar chaves únicas para subsets de 3 elementos de ZZ

por exemplo:
\{A, C, H\}
\{B, E, F\}

Uma forma de fazer isto é aproveitar uma propriedade dos números primos.

Começa-se por se atribuir um número primo a cada um dos elementos de ZZ

ZZ'=\{A=2, B=3, C=5, D=7,\\ E=11, F=13, G=17, H=19\}

e depois calcula-se o produto dos subconjuntos.
Assim:
\{A, C, H\}=\{2, 5, 19\}=190
\{B, E, F\}=\{3, 11, 13\}=429

Ainda para mais \{A, C, H\}=\{C, H, A\} que é o pretendido uma vez que a multiplicação é comutativa. Por outro lado como se está a multiplicar números primos temos a garantia que o valor encontrado é único e pode entrar numa tabela sem perigo de duplicação.

A beleza deste método é que como a multiplicação é uma das operações mais rápidas de fazer em termos computacionais, este procedimento é realmente útil e rápido para criar mapas dos subconjuntos com outra propriedade qualquer.

%d bloggers like this: