Um fazendeiro tem um bando de porcos e um bando de galinhas.
Ele sai para o terreiro e observa 20 cabeças e 56 pernas.
Quantos porcos e quantas galinhas que ele tem?
Observando o algoritmo você vai pareceber que ele trabalha por força bruta, tentando cada opção até chegar ao equilíbrio das igualdades.
Não deixe de ler a solução do Mangnun Leno neste link
Obs: este conteúdo chegou aqui graças a esta aula de Ciência da computação do MIT disponível no youtube.
Olá Sérgio! Sou leito assíduo do seu blog. Geralmente não comento, mas nesse post eu tinha que deixar uma comentário.
ResponderExcluirQuando vi esse problema e o código em Python, lembrei na hora das minhas aulas de algebra linear e calculo numérico com o matlab.
Escrevi algumas linhas que resolvem a mesma questão. Meu objetivo não é dizer qual código é melhor/mais eficiente, mas mostrar a facilidade do Python e as bibliotecas poderosas que ele tem.
Continue postando sobre Python no seu blog! Até mais...
Magnun
(http://under-linux.org/blogs/magnun/)
from scipy import matrix
def resolve_fazenda(cabecas, pes,):
# 1*galinhas + 1*porcos = cabecas
# 2*galinhas + 4*porcos = pes
sistema = matrix([[ 1.0, 4.0], # Coeficiente de porcos
[ 1.0, 2.0]], # Coeficiente de galinhas
)
valores = matrix([[cabecas, pes]])
solucao = valores*sistema.getI()
print 'Tem %s porcos e %s galinhas na fazenda!'%(float(solucao.trace(0)), float(solucao.trace(1)))
resolve_fazenda(20, 56)
resolve_fazenda(21, 62)
Magnun, fico feliz em ajudar. Obrigado por sua valorosa contribuição.
ResponderExcluirQuase esqueço. Magnun, daria para explicar um pouco o algoritmo proposto por você?
ResponderExcluirOlá Sergio! Postei no meu blog uma explicação do método que eu usei: http://under-linux.org/blogs/magnun/quantos-porcos-e-quantas-galinhas-1856/
ResponderExcluirEnquanto escrevi percebi que tem uma maneira bem mais simples pra resolver. Depois de uma passada por lá! Se eu não tiver sido muito claro na explicação, entre em contato comigo, agente bate um papo e esclarece tudo!
Até mais cara!