Noções básicas do Python - perguntas de lógica introdutórias "Cem dinheiro e cem galinhas" (as sugestões no início estão ocultas)

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~

 

Acho que você gosta

Origin blog.csdn.net/AI19970205/article/details/123734657
Recomendado
Clasificación