[R-br] Combinações de elementos em grupos distintos
Listeiro 037
listeiro_037 em yahoo.com.br
Sexta Julho 20 18:20:10 BRT 2012
Olá.
A distribuição desses grupos de elementos se assemelha à resolução de um
problema muito antigo.
Se cada elemento for representado por um número de identificação e este
número por conseguinte for representado por um par de números
(coordenadas) chamadas a princípio de "i" e "j", numa tabela 8x8, então
dois números não poderão ter um mesmo número de coordenada numa mesma
linha ou coluna.
Por exemplo, caso 5x5 (chamando por hora de n=5):
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24
codificado ficaria:
00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44
Separando as "coordenadas" de modo que dois elementos na posição
modificada não tenham a coordenada "i" anterior na mesma coluna e a
mesma coordenada "j' na mesma linha:
14 31 03 20 42
40 12 34 01 23
21 43 10 32 04
02 24 41 13 30
33 00 22 44 11
resultando em
9 16 3 10 22
20 7 19 1 13
11 23 5 17 4
2 14 21 8 15
18 0 12 24 6
O cálculo dessas "coordenadas" é feito da seguinte forma para esse caso
de 5x5:
i = [nº do elemento/5] --> valor da função "piso" dessa divisão;
j = [nº do elemento%5] --> resto da divisão por 5, que é módulo 5.
Se isso funciona para o caso de n=8, pode ser feita uma observação das
permutações.
Há ainda um critério de distribuição dos números das coordenadas, que
tem a ver com os divisores de "n".
Essa é uma proposta de algoritmo para a situação. Se o "R" tiver isto
embutido será muito bom.
Espero que haja uma solução mais prática que esta coisarada toda aqui.
Em Thu, 19 Jul 2012 18:26:23 -0300
Leonardo Aguirre <leoaguirre32 em gmail.com> escreveu:
> Pessoal,
>
> Preciso criar grupos de indivíduos dessa forma:
>
> Tenho 64 indivíduos, para serem divididos em 8 grupos do mesmo
> tamanho. Portanto, ficam 8 indivíduos por grupo.
>
> Preciso replicar a criação desses 8 grupos 8 vezes, de tal forma que o
> indivíduo i apareça no mesmo grupo do indivíduo j apenas uma vez.
> Ou seja, se na primeira repetição o João saiu no mesmo grupo que a
> Maria, eles não podem ficar no mesmo grupo em nenhuma outra das 7
> repetições.
>
> Sendo assim, suponha que na primeira etapa eu tenha esses grupos
> definidos: Grupo 1: 1,2,3,4,5,6,7,8
> Grupo 2: 9,10,11,12,13,14,15,16
> ...
> Grupo 8: 57,58,59,60,61,62,63,64
>
> Então, nas próximas 7 replicações o indivíduo 1 só poderia sair no
> mesmo grupo dos indivíduos de 9 a 64.
> E assim sucessivamente, pra todos os outros indivíduos.
>
> Tentei montar esses grupos no R mas não consegui nem sair do zero,
> por isso não estou enviando um exemplo do programa em R.
>
> Alguém teria alguma idéia de como implementar isso no R?
>
> Muito obrigado,
>
> Leonardo.
Mais detalhes sobre a lista de discussão R-br