枚举算法_举例



《枚举算法_举例》由会员分享,可在线阅读,更多相关《枚举算法_举例(23页珍藏版)》请在文档大全上搜索。
1、课前思考 有一个三位数x,百位是a,十位是b,个位是c,x=100*a+10*b+c,利用适当的VB表达式求出 a= b= c=X mod 10 x10 mod 10 x100 小明是一个数学迷,昨天他约了几个同学小明是一个数学迷,昨天他约了几个同学一起到会议室里举行一个联谊会,可是粗心的一起到会议室里举行一个联谊会,可是粗心的小明去总务处拿了一串钥匙回来准备开门时,小明去总务处拿了一串钥匙回来准备开门时,却忘记了到底哪一把才是会议室的钥匙。却忘记了到底哪一把才是会议室的钥匙。假设假设这串钥匙一共有这串钥匙一共有1010把。把。怎样才能找到正确的钥匙来开门怎样才能找到正确的钥匙来开门 找钥匙的
2、过程2.拿出第二把钥匙,拿出第二把钥匙, 试验第二把钥匙能否开门;试验第二把钥匙能否开门;1.拿出第一把钥匙,拿出第一把钥匙, 试验第一把钥匙能否开门;试验第一把钥匙能否开门;3.拿出第三把钥匙,拿出第三把钥匙, 试验第三把钥匙能否开门;试验第三把钥匙能否开门;10.拿出第十把钥匙,拿出第十把钥匙, 试验第十把钥匙能否开门。试验第十把钥匙能否开门。列举列举检验检验枚举法枚举法枚举算法枚举算法就是按照问题本身的性质,就是按照问题本身的性质,一一列举一一列举出该问题所有可能的解,并根据问题的条件对各出该问题所有可能的解,并根据问题的条件对各解进行解进行逐个检验逐个检验,从中挑选出符合条件的解,舍,
3、从中挑选出符合条件的解,舍弃不符合条件的解。弃不符合条件的解。在联欢会上,小明提议大家来玩数7的游戏。游戏规则游戏规则:从1开始数起,每个人数一个数, 凡是遇到7的倍数就要喊“过”, 这样一直数到100为止。帮小明找出帮小明找出1100所有要喊所有要喊“过过”的数的数列举列举检验检验用变量用变量i表示要列举的自然数。表示要列举的自然数。列举范围:列举范围:1100检验条件:检验条件:i能否被能否被7整除。整除。在列举过程中要既不遗漏,又不重复。开始开始结束结束NNYYi=100i mod 7=0i=i+1i=1输出输出i列举范围:列举范围:1100检验条件:检验条件:i能否被能否被7整除。整除
4、。用变量用变量i表示要列举的自然数。表示要列举的自然数。开始开始结束结束NNYYi=100i mod 7=0i=i+1i=1输出输出i(循环结构)(循环结构)(分支结构)(分支结构)循环中嵌套分支i=1Do while i=100 if i mod 7=0 then print i end if i=i+1loop开始开始结束结束NNYYi=100i mod 7=0i=i+1i=1输出输出i枚举算法的设计步骤 确定列举范围 明确检验条件 确定循环控制方式和列举方式枚举算法只适用于可能解的个数不太多的情况。 一张单据上有一个一张单据上有一个5 5位数的编号,万位数是位数的编号,万位数是1 1,千