1,枚举算法的定义:

在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么该结论是可靠 的,这种归纳方法叫做枚举法。

2,枚举算法的思想是:

将问题的所有可能的答案一一列举,然后根据条件判断此答案是否合适,保留合适的,舍弃不合适的。

3,使用枚举算法解题的基本思路如下:

(1)确定枚举对象、范围和判定条件。

(2)逐一枚举可能的解并验证每个解是否是问题的解。

4,枚举算法步骤:

(1)确定解题的可能范围,不能遗漏任何一个真正解,同时避免重复。

(2)判定是否是真正解的方法。

(3)为了提高解决问题的效率,使可能解的范围将至最小,


枚举法求最大公约数


鸡兔同笼

有若干只鸡和兔在同一个笼子,从上面数有35个头,从下面数有94只脚,请你在scratch中设计一个算法来解决这个问题,求出这个笼子里有多少只鸡和多少只兔子?

4513FA20-157E-4237-A480-8972CB4CBD6D.jpeg


想一想再看答案哦!

点我看Scratch答案




Python求解

'''
令头的总数为变量 head,脚的总数为变量 foot
假设鸡(chicken)有x只,兔(rabbit)就有总数head-x
'''

def chicken_and_rabbit(head, foot):
    for chicken in range(1, head+1):     # 让鸡从1开始枚举到头的总数个 如果头总数为35  python语言range(1,35)只能从1枚举到34 所以这里要head+1
        for rabbit in range(1, head-chicken+1):  # 让兔子也从1开始枚举只需要枚举到 总数-鸡的个数 
            if chicken * 2 + rabbit * 4 == foot and chicken+rabbit == 35:
                print('鸡有{}只,兔子有{}只'.format(chicken, rabbit))

if __name__ == '__main__':
    chicken_and_rabbit(35, 94)



1 评论 最近

  • simenge的天空 作者

    用枚举法试着解决《百钱百鸡问题》 公鸡每只 5 元,母鸡每只 3 元,小鸡三只 1 元,用 100 元买 100 只鸡,试用程序找出所有的买鸡方案?