[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