- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《枚举算法》编程复习
* 开始 n←i n≤j? 筛选条件 n←n+1 结束 累加器sum←0 sum←sum+n 输出sum 累乘器sum←1 sum←sum*n 计数器c←0 c←c+1 开始 结束 y ≤ maxy ax+by =c x ≤maxx y←miny x←minx,计数器c←0 y←y+1 x←x+1 计数器计数:c←c+1 输出:计数器c 对于每个符合条件的x的取值,我们让变量y从miny开始逐次枚举到maxy,对于由x和y确定的方程,判断其是否成立。具体步骤如下: 1、变量y置初值miny; 2、判断条件y ≤maxy是否成立 若成立,继续判断方程是否 成立 条件成立,计数器c计数 3、y增加1,转回步骤2; 当条件y ≤maxy不成立,说明当前x的所有可能解均完成验证。此时,应验证x的下一个取值对应的所有可能解。具体步骤如下: 1、x增加1; 2、判断条件x ≤maxx是否成立 若成立,开始验证对应的可能解 否则,说明所有可能解都完成验证,输出计数器c,算法结束。 输出x、y 开始 结束 j≤9 筛选条件 i ≤ 9 j←0 i←0, 计数器c←0 j←j+1 i←i+1 输出真正解n 计数器c计数,c←c+1 n←a0b0c+i×1000+j×100 输出:计数器c的值 对于每个符合条件的i的取值,我们让变量j从0开始逐次枚举到9,对于由i和j确定的n,判断其是否符合条件。具体步骤如下: 1、变量j置初值0; 2、判断条件j ≤9是否成立 若成立,计算出n的值; 继续判断n是否符合条件 条件成立,输出n, 计数器c计数 3、j增加1,转回步骤2; 当条件j ≤9不成立,说明当前i的所有可能解均完成验证。此时,应验证i的下一个取值对应的所有可能解。具体步骤如下: 1、i增加1; 2、判断条件i ≤9是否成立 若成立,开始验证对应的可能解 否则,说明所有可能解都完成验证,输出计数器c,算法结束。 i←0, 累加器sum←0 i←0, 累乘器sum←1 累加器sum累加,sum←sum+n 累乘器sum累乘,sum←sum*n 输出:累加器sum 输出:累乘器sum 开始 结束 b c c2-b2=a2 a c b←a+1 a←1 b←b+1 a←a+1 输出a、b、c 计数器ct计数,ct←ct+1 输出:计数器ct的值 计数器ct←0 输入: 斜边c b←1 b a 开始 结束 b ≤ (c-1) c2-b2=a2 c ≤maxc b←c-a+1 c←a+1 b←b+1 c←c+1 输出a、b、c 计数器ct计数,ct←ct+1 输出:计数器ct的值 计数器ct←0 输入:直角边a的长度和 斜边c的最大值maxc 对于每个符合条件的c的取值,我们让变量b从(c-a+1)开始逐次枚举到(c-1),对于a、b,c的取值,判断其是否满足勾股定理。具体步骤如下: 1、变量b置初值(c-a+1) ; 2、判断条件b ≤(c-1)是否成立 若成立,继续判断a、b,c的 取值是否满足勾股定理 条件成立,输出a、b、c 计数器ct计数 3、b增加1,转回步骤2; 当条件b ≤(c-1)不成立,说明当前c取值的所有可能解均完成验证。此时,应验证c的下一个取值对应的所有可能解。具体步骤如下: 1、c增加1; 2、判断条件c ≤maxc是否成立 若成立,开始验证对应的可能解 否则,说明所以可能解都完成验证,输出计数器ct,算法结束。 j←2 j i and c=0 j←j+1 计数器c←0 i mod j = 0? c←c+1 c=0? 判断一个正整数i为素数的方法: 测试[ 2 , i-1]范围内的每个数是否为i的约数,并统计约数的个数。 测试完成,约数的个数为0,则i为素数;否则,i不是素数。 算法应分为如下步骤: 1. j置初值2,计数器c置初值0; 2.判断条件ji and c=0是否成立, 若不成立,跳到步骤4; 若成立,继续判断条件i mod j=0是否成立, 若成立,计数器c计数; 3. j增加1,转回步骤2; 4.此时j的值超过了(i-1)或c=0不成立,说明范围内的数均测试完成或i存在约数,则去判断条件c=0是否成立 若成立,则i是素数,计数器ct增加1; 否则,i不是素数。 ct←ct+1 计数器c的作用除了记录i的约数个数外,还有一个作用就是控制循环次数,如果在[ 2 , i-1]中找到第一个约数后,计数器c的值就非0了,此时已可以确定i是非素数,故不必继续寻找i的约数。 j←
文档评论(0)