Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cajuru

Soma de elementos com indices distintos de uma matriz

Recommended Posts

Olá pessoal, sou estudante de fisica e me deparei com um problema na iniciação cientifica, preciso fazer um programa que calcule a altura de interações hadronicas do meson pi-zero que ocorrem na atmosfera. Para isso, existe um metodo estatistico de determinar os pares de gamas que formam cada pi-zero. Mas não é isso que importa, o meu problema é:

 

dada uma matriz nxn, preciso somar os elementos cujos os indices sejam todos diferentes e sem repetição dos indices. Por exemplo, se minha matriz for 10x10, tenho q somar os elementos 12, 34, 56, 78, 910 (elemento da linha 1 e coluna 2, + elemento da linha 3 e coluna 4, + assim por diante)...porem, preciso somar os indices aleatoriamente, ou seja, tambem preciso somar os elementos 49, 73, 18, 26 e 510.

 

Essa minha matriz possui a diagonal pricipal nula, pois como ela é uma matriz que calcula as alturas das combinações dos gamas, o elemento 11 seria a distancia do par formado pelo gama 1 com o proprio gama 1, que da zero...e tambem ela é simetrica, pois a altura calculada pelo par gama1 gama5 é a mesma que calculada pelo par gama5 gama1 por exemplo.

 

Enfim, espero ter sido claro e que alguem possa me ajudar, pois meu orientador já esta pegando no meu pé cobrando esse programa...ahuahuah

 

Agradeço desde já a colaboração de todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

P/ aleatório use random.

 

você vai ter que armazenar os índices em algum lugar e conferir os valores retornados pelo random dentro de um loop (enquanto já existir o índice na lista de visitados, gere outro número).

Compartilhar este post


Link para o post
Compartilhar em outros sites

P/ aleatório use random.

 

você vai ter que armazenar os índices em algum lugar e conferir os valores retornados pelo random dentro de um loop (enquanto já existir o índice na lista de visitados, gere outro número).

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse random é uma funçao, como o printf, scanf, pow, sqrt etc??

E como eu faria pra recuperar todos os conjuntos de indices diferentes?

 

eu tentei fazer quatro for, um dentro do outro, e no final por um if dizendo que se k!=i e l!=j a soma pode ser feita...ficou mais ou menos assim:

 

 

...

for(i=0, i<ng, i++){

for(j=0, j<ng, j++){

for(k=1, k<ng, k++){

for(l=1, l<ng, l++){

if(k!=i && l!=j){

soma[j] = soma[j] + a[k][l]

}

}

}

}

}

 

 

sera que isso já é o suficiente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.