穷举法-暴力破解法:
对所有的可能性进行验证,直到找到正确答案
例题:一百元买100只鸡,公鸡5元一只,母鸡3元一只,小姐1元三只。
for x in range(20): #公鸡用100元最多20只
for y in range(33): #母鸡yong100元最多33只
z=100-x-y #若是可以买到,那么小鸡数量满足这个式子
if 5*x+3*y+z//3 ==100 and z%3==0:
print(x,y,z)
上面代码就是把公鸡母鸡最多用100元买多少只列举出来,若可以买则有结果。
列题2:5个人,捕鱼,后,上岸,睡觉,一个人,先醒,把鱼分为5份,剩一条,扔掉。拿走自己的一份,第二人醒了,也分五份,剩一条,拿走自己的一份。其他人都是如此。问他们至少捕鱼多少条。
##考虑最少。最后一个人将y条鱼分5份剩一条,那最小的y=6,
y = 6
while True:
total = y
enough = True
for _ in range(5):
if (total - 1) % 5 == 0: ##按照题意 判断
total = (total - 1) // 5 * 4 ##题意,一人分完后 鱼的数量
else:
enough = False
break
if enough:
print(y)
break
y += 5
贪婪法:
把问题求解时,总是做出在当前看来最好的选择,不追求最优解,快速找到满意解、
贪婪法例子:在对问题求解时,总是做出在