Algoritmo  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
micheljuca
JavaTeenager
[Avatar]

Membro desde: 11/08/2005 15:20:20
Mensagens: 184
Localização: Brasília - DF
Offline

Pessoal,

vê se alguém consegue me ajuda com esse algoritmo.
Uma rotina que receba um conjunto de entradas, por exemplo,
1-2-3-4-5-6 (6 entradas), e um total, por exemplo 7.
A rotina deve responder quais entradas combinadas (somadas) atingem o valor total, ou seja, 1+2+4, 3+4, e 1+6.

Andei observando que são muitas possibilidades, no caso a quantidade de entradas pode chegar a 36.

Obrigado pela ajuda.

--
Michel A. Jucá
davidbuzatto
Moderador
[Avatar]

Membro desde: 07/08/2004 23:47:57
Mensagens: 4013
Localização: Vargem Grande do Sul - SP
Offline

Combinadas 2 a 2?

[edit]

desculpa, acabei de ver que pode ser qq quantidade

Seja educado. Agradeça quem te ajudou. Não custa nada.
Dúvidas de Java? Utilize o fórum! Não respondo via MP.

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Fowler)
"A vida é um escândalo, e no final dá sempre errado. O que humaniza o homem é o fracasso."

http://davidbuzatto.com.br | GitHub | uHunt | CV Lattes | Last.fm
[WWW]
cassio
GUJ Master
[Avatar]

Membro desde: 19/06/2006 08:25:28
Mensagens: 1336
Localização: Caieiras-SP
Offline

Olá!

Você pode fazer isso usando backtracking, isto é, recursividade!

Atente para o fato de que adição é comutativa, assim 2 + 3 = 3 + 2.

Procure por algorítmos para análise combinatória.

Mais dica que isso, só no google

Abraço!

Cássio Marques

Blog
peczenyj
Moderador
[Avatar]

Membro desde: 26/03/2006 23:25:37
Mensagens: 3191
Localização: Rio de Janeiro
Offline

sugestão:

ordene as suas entradas de forma crescente.

imagine q vc tem

1 2 4 5 9
total: 6

vc tem 1 + 5 e 2 + 4, porem vc não precisa comparar o 9, compreendeu.

- pegue o "primeiro" número SE for menor que total
- pegue o proximo número
- se o proximo é menor ou igual a (total - primeiro) compare soma.
se for maior interrompe.

vai dar uma agilidade ao seu algoritmo.

http://pacman.blog.br

'Não importa quanto alguém se dedique à tarefa. Ninguém consegue fazer a água da cascata cair para cima.'
[WWW]
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team