System 0 Denunciar post Postado Abril 18, 2006 Seguinte: Preciso fazer uma lógica que eu dou uma matriz com uns números e ele me dá todas as possíveis combinações com os ítens da matriz, sem repetir os mesmos.Exempo: tenho 1 e 2. Ele vai retornar: 12; 21Entenderam?Como faço isso? Compartilhar este post Link para o post Compartilhar em outros sites
Pantoja 5 Denunciar post Postado Abril 18, 2006 aee isso parece siomples mas ne nao..pra pensar do ZERO! é sinistro!!e mais facil ver quem ja tem esse algoritmo pronto!! Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Abril 19, 2006 Não sei se entendi direito. Em C seria +- assim for(i=0;i<TAM;i++) { for(j=0;j<TAM;j++) { if(i!=j) printf("%d %d\n",matriz[i],matriz[j]); } } Dois loops, um loop para o primeiro elemento e outro para o segundo. Ambos vão variar do primeiro elemento da matriz até o último, mas só vão imprimir quando os elementos forem diferentes. Mas depende da quantidade de elementos que você quer em cada combinação. Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Abril 22, 2006 ow skimo.. este seu looping esta imprimindo os pares de vetores(matriz[]?? nao seria matriz[][]??)... você deve comparar no if dentro dos laços os valores da matriz e nao os indices... if(i!=j) printf("%d %d\n",matriz,matriz[j]); vejamos q a dentro destes dois laço teremos uma rotina para verificar se os numeros que estao sendo comparados ja foram usados (verificar se nao sao repetidos).. na logica você teria que ter mais dois laços que fariam a revisao para saber se ja foram usados.. for(i=0;i<TAM;i++) for(j=0;j<TAM;j++) for(k=0;k<TAM;k++) for(l=0;l<TAM;l++) if(matriz[i][j]<>matriz[k][l]) printf("%d%d\n",matriz[i][j],matriz[k][l]); Compartilhar este post Link para o post Compartilhar em outros sites
Pantoja 5 Denunciar post Postado Abril 22, 2006 nao disse q era esquisito essa parada?tinha a noção q era assim mas pra desenvolver na marra..to fora.. huahuahuia perder um dia pra analizar essa parada e dar um resultado... Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Abril 22, 2006 aff... agora q fui ler mais profundamente o topico.. ele ta pedindo pra escrever as combinaçoes sem repetir... puts... mais 4 for que vai percorrer a matriz d novo pra ver se ja foi usado.. eh meio simples a logica... o problema eh passar pra um algoritmo.. mas saiu.. to usando Pascal pra explicar melhor.... to usando duas variaveis logicas (repetido1, repetido2) uma pra q vai percorrer a matriz d novo ate aonde esta o elemento q estamos comparando... ela recebe true caso encontre um numero repetido pra tras... for i:= 1 to 3 do for j:= 1 to 3 do begin repetido1 := false; for k := 1 to i do for l := 1 to j-1 do if(mt[i,j] = mt[k,l])then repetido1 := true;agora fazer a mesma coisa com o segundo elemento.. for m := 1 to 3 do for n := 1 to 3 do begin repetido2 := false; for p := 1 to m do for q := 1 to n-1 do if(mt[m,n] = mt[p,q])then repetido2 := true;agora eh soh perguntar se foi encontrado numeros repetidos, se nao foram encontrados eu os escrevo... if not(repetido1 and repetido2)then write(mt[i,j],mt[m,n],'-');caso ficou meio confuso perguntem aew onde esta a duvida...mas este eu testei e funfo beleza... t+ tai o algoritmo funfando... program teste;uses crt;var i,j,k,l,m,n,p,q : byte; repetido1,repetido2 : boolean; mt : array [1..3,1..3] of byte;begin writeln('Entre com uma matriz 3x3'); for i := 1 to 3 do begin for j := 1 to 3 do read(mt[i,j]); writeln; end; for i:= 1 to 3 do for j:= 1 to 3 do begin repetido1 := false; for k := 1 to i do for l := 1 to j-1 do if(mt[i,j] = mt[k,l])then repetido1 := true; for m := 1 to 3 do for n := 1 to 3 do begin repetido2 := false; for p := 1 to m do for q := 1 to n-1 do if(mt[m,n] = mt[p,q])then repetido2 := true; if not(repetido1 and repetido2)then write(mt[i,j],mt[m,n],'-'); end; end; readkey;end.fikem c Deus Compartilhar este post Link para o post Compartilhar em outros sites
Pantoja 5 Denunciar post Postado Abril 24, 2006 ahh mó baba!uhauhauata loko sabia q seria algo assim...é ruim de eu parar pra pensar nisso hein!!!a logica é mole mesmo... o f*** sao ps erros você acerta uma coisa e gera dois erros novos q acertados geram mais dois... huauhauasai desse corpooooooooo ! Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Abril 26, 2006 logica facnha mesmo... mas eh q se naum tiver concentrado qdo estiver fazndo um algoritmo como este naum sai mta coisa naum...mas tem q ter tempo p pensar tb Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Maio 4, 2006 No que eu coloquei é para as combinações de 2.Tipo:1 e 21 22 11, 2 e 31 21 32 12 33 13 2E por aí vai... Compartilhar este post Link para o post Compartilhar em outros sites
chackal_sjc 0 Denunciar post Postado Maio 5, 2006 ahuhauhaua galera.. isso eh bem legal mesmoagora tentem fazer estilo um brutal force...com todos caracteres UTF-8 =) hauhauahueu coloco uma sequencia de caracteres de até 5 no maximo.. o pc tem q descubri o que eu coloquei hehehedemora +- umas 5 hras em um pc para axar um de 5 caracteres usando apenas 8 bits de possibilidades.. rsrs Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Maio 5, 2006 massa..seria o mesmo algoritmo para quebra de chave em documentos criptografado..soh d curiosidade vou tentar faze-lo... Compartilhar este post Link para o post Compartilhar em outros sites
skimo-solar 0 Denunciar post Postado Maio 5, 2006 eu coloco uma sequencia de caracteres de até 5 no maximo.. o pc tem q descubri o que eu coloquei hehehedemora +- umas 5 hras em um pc para axar um de 5 caracteres usando apenas 8 bits de possibilidades.. rsrsCom 2^8 caracteres teremos (2^8)^5 possibilidades de senha.Ou seja, 1099511627776 senhas diferentes. Pode crer que o computador vai levar mais que 5 horas pra checar todas =P.Isso se você considerar que tem 5 caracteres exatamente. Mas se houver a chance de serem menos caracteres... Compartilhar este post Link para o post Compartilhar em outros sites
System 0 Denunciar post Postado Maio 19, 2006 [...] eh meio simples a logica... o problema eh passar pra um algoritmo.. mas saiu.. to usando Pascal pra explicar melhor.... to usando duas variaveis logicas (repetido1, repetido2) uma pra q vai percorrer a matriz d novo ate aonde esta o elemento q estamos comparando... ela recebe true caso encontre um numero repetido pra tras... [...] Ai ai ai... Esqueci de dizer que não sei quantos elementos tem a matriz, mas ela não tem mais de uma dimensão, pois vi matriz[][], que é para uma de duas dimensões. As combinações que estou pedindo são combinações em que TODOS os números estejam presentes. Já tentei fazer mas não sei a lógica da coisa. Compartilhar este post Link para o post Compartilhar em outros sites
ricci ottadnot 4 Denunciar post Postado Maio 21, 2006 por padrao a definiçao de matriz eh para vetores de ordem maior q 1.. mais simples entao.. veja a logica d codigo q postei para matrizes e implemente de acordo com seu problema.. ali ja ta na cara.. tem q ralar um pouco... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif flw Compartilhar este post Link para o post Compartilhar em outros sites