I. Introdução
Recentemente, o irmão Latiao descobriu que mais e mais pessoas estão aprendendo Python, mas quantas pessoas sabem se ele é adequado para aprender Python? Afinal de contas , programação realmente requer raciocínio forte e habilidade lógica em muitos casos.Se o pensamento básico e habilidade lógica não são bons, então Latiao tem que ser bem persuadido, a menos que seja realmente amor e disposto a gastar mais tempo e energia com os outros. Isso só é possível. Não é que Latiao se venda e se gabe de pensar em lógica. Essa coisa não pode ser vista ou tocada. A maioria deles nasce, então vou atualizar algumas questões de lógica de tempos em tempos para Latiao. Você pode tente escovar! ajude a todos
Tema de hoje: "Cem dinheiro de cem galinhas", essa galinha não é outra galinha, somos todos pessoas sérias~
Compre 100 galinhas por 100 yuan, 1 galo por 5 yuan, 1 galinha por 3 yuan e 3 galinhas por 1 yuan. Quantos galos, galinhas e pintinhos você pode comprar por 100 yuans?
Sinta-se à vontade para descobrir suas respostas e, em seguida, veja a explicação detalhada, que será mais eficaz. Eu acho que a resposta será variada
Dois: ideias
Ao encontrar esse problema pela primeira vez, pode ser difícil para todos encontrar uma pista por um tempo. Você pode primeiro determinar uma quantidade: ou seja, quantas galinhas você pode comprar por 100 yuans no máximo? Se você comprar galos, você só pode comprar 20 no máximo, as galinhas podem comprar 33 e os pintinhos podem comprar 300, mas deve-se notar que o número de galinhas também é limitado a 100, então é impossível comprar 300 pintinhos, mas podemos chegar a uma equação não cronometrada: número de galos + número de galinhas + número de pintinhos = 100. Dessa forma, você pode determinar o número de um tipo de galinha para encontrar a combinação dos outros dois tipos de galinha. Esta forma exaustiva é muito adequada para resolver com loops.
Três: código
#设定公鸡,母鸡,小鸡
cock = 0
hen = 0
chicken = 0
#通过多层循环来穷举数量组合
#最外层控制遍历公鸡数量
for cock in range(0,21):
#此层控制遍历母鸡数量
for hen in range(0,34):
#此层控制遍历小鸡数量
for chicken in range(0,101):
#同时满足百钱白鸡两个条件则输出数量
if(cock*5+hen*3+chicken/3==100 and cock+hen+chicken==100):
print('cock:%s hen:%s chicken:%s'%(cock,hen,chicken))
No entanto, em termos de eficiência, o algoritmo acima realiza muitos cálculos inválidos, porque o número de pintinhos foi fixado após a determinação do galo e da galinha, e não há necessidade de ciclo novamente.
#通过多层循环来穷举数量组合
#最外层控制遍历公鸡数量
for cock in range(0,21):
#此层控制遍历母鸡数量
for hen in range(0,34):
#小鸡数量为 100-公鸡-母鸡,此处就确定了数量,条件控制可以去掉数量判断
chicken = 100-cock-hen
if(cock*5+hen*3+chicken/3==100):
print('cock:%s hen:%s chicken:%s'%(cock,hen,chicken))
Neste momento, o número de vezes de exaustão mudou de 21*34*101 vezes para 21*34 vezes, e a eficiência foi muito melhorada.A descrição acima é uma explicação detalhada do problema de Baiji.
Quatro: Resumo
Embora a lógica do pensamento seja inata, eu também sou uma pessoa de sorte com macarrão apimentado, hahahaha, mas acho que não é problema desde que eu trabalhe duro. Se você insiste em ver aqui, pode ver meu cartão de visita de apimentado noodles abaixo. Você pode vir me assediar a qualquer momento, nunca resista, vamos todos~