Cajuru 0 Denunciar post Postado Outubro 22, 2009 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
_Isis_ 202 Denunciar post Postado Outubro 22, 2009 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
Cajuru 0 Denunciar post Postado Outubro 22, 2009 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
Cajuru 0 Denunciar post Postado Outubro 22, 2009 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