Ok, mas eu me referia a algoritmos que não calculem primeiro os indices mas que usem estruturas como Set ou List.
Repare que, usando indices, o algoritmo é cego aos elementos. Se eu passar {A,A,A} o resultado seria AA, AA, AA.
mas isso é errado. Na realidade só tenho um elemento no conjunto. Sim, sim… poderia filtrar usando set ou alguma coisa… eu so achei que poderia existir um algoritmo famoso (desses que até têm nome) que fosse mais inteligente e já tomasse contas dessas coisas sem ter que “filtrar na mão”.
Acho que você está confundindo as estruturas. Se você ter um algoritmo que leve em consideração multiplicidade ((A,A,A) tem multiplicidade 3), você não está falando de combinações, e sim falando de String Theory, ou se a multiplicidade dos elementos tiverem uma estrutura bem definida, pode se enquadrar na família das partições ou composições. Numa estrutura de conjuntos, no caso de combinações, a mutiplicidade é ignorada
O que tem de famoso nisso é mudar a estrutura se voce tem (A,A,A), voce pode trata-lo como a estrutura que lhe convier. A mais abrangente nesse caso seria o objeto combinatorial String, e para (A, A, A), ele teria o alfabeto com um símbolo e dimensão 3, como o número de possibilidades de Strings é m^n, com m = numero de símbolos e n a dimensao da String, ficaria, nesse caso, 1^3 = 1. Em outro termos, voce só tem arranjo (A,A,A) dentro dessa definição.
Eu explico mais dessas coisas e sobre outras familias de estruturas aqui
Esqueci de mencionar, mas se voce acha que tem alguma estrutura mais genérica que consiga transformar uma estrutura em outra, existe sim, (definida por um grafo, sendo mais exato), ela é descrita no capitulo 13 deste livro…mais ainda assim, ela tem uma fase de “encoding” e “decoding” de uma estrutura para outra.
Ok, mas eu me referia a algoritmos que não calculem primeiro os indices mas que usem estruturas como Set ou List.
Repare que, usando indices, o algoritmo é cego aos elementos. Se eu passar {A,A,A} o resultado seria AA, AA, AA.
mas isso é errado.
[/quote]
Acho que você está confundindo as estruturas. Se você ter um algoritmo que leve em consideração multiplicidade ((A,A,A) tem multiplicidade 3), você não está falando de combinações, e sim falando de String Theory,
[/quote]
A não é uma string. É um objeto qualquer. A letra foi so para identificar o objeto sem usar numeros.
{A,A,A} é um conjunto formado por três instancias de A. Contudo, elas são a mesma instancia , logo é equivalente a {A} apenas. Combinações de 1 elemento 3 a 3 não são possiveis. Logo, o algoritmo de combinações teria que levar em conta isso. É só disso que estou a falar.
O n de C(n,k) é o tamanho do conjunto de elementos diferentes. não ?
A String que estou a definir não é exatamente a String tipo de dado, É uma estrutura combinatorial =D
Combinações de 1 elemento 3 a 3 não são possiveis justamente porque a definição de combinação é considerar os elementos de uma dada dimensão como diferentes.
Repetindo o que escrevi lá em cima, se voce tem {A,A,A} isso não é uma estrutura de combinação, é uma estrutura de String (lembre que a String que falo aqui é String do link que te passei ;)). Você não pode efetuar combinações em uma estrutura que não obedece a definição de KN-Subsets (objetos combinados). E como falei também, voce pode, usando a definição do livro que mencionei no post anterio, jogar uma estrutura qualquer (inclusive essa do seu exemplo) no grafo que ele saberá direcionar para a familia combinatorial desejada =)