精华内容
下载资源
问答
  • 穷举算法

    2019-11-22 16:32:23
    穷举算法是最基本的算法思想,其基本思想就是从所有可能的情况中搜索正确的答案,其步骤如下: 1、对于一种可能的情况,计算其结果 2、判断结果是否满足需求,如果不满足则执行第一步来搜索下一个可能的情况,如果...

    穷举算法是最基本的算法思想,其基本思想就是从所有可能的情况中搜索正确的答案,其步骤如下:

    1、对于一种可能的情况,计算其结果

    2、判断结果是否满足需求,如果不满足则执行第一步来搜索下一个可能的情况,如果满足需求,则表示寻找到一个正确的答案

    在使用穷举算法时,需要明确问题的答案的范围,这样才可以在指定范围内搜索答案。指定范围之后,就可以使用循环语句和条件判断语句逐步验证候选答案的正确性,从而得到需要的正确答案

     

    接下来我将使用该算法来解决一个我国古代非常有名的问题,鸡兔同笼问题!

    代码如下:

    #include <stdio.h>
    
    int qiongju(int head,int feet,int *chicken,int* rabbit)
    {
        int flag = 0;
        int i,j;
        for(i=0;i<=head;i++)
        {
            j = head - i;
            if(feet == i*2+j*4)
            {
                flag = 1;
                *chicken = i;
                *rabbit = j;
            }
        }
        return flag;
    }
    
    int main()
    {
        int chicken,rabbit,head,feet,flag;
        printf("鸡兔同笼问题\n");
        printf("请输入多少个头:");
        gets(head);
        printf("请输入有多少个脚");
        gets(feet);
        flag = qiongju(head,feet,&chicken,&rabbit);
        if(flag == 1)
        {
            printf("鸡:%d,兔子:%d\n",chicken,rabbit);
        }
    }
    

     

    展开全文
  • 易语言穷举算法源码

    2020-07-20 21:10:52
    易语言穷举算法源码
  • delphi 穷举算法

    2016-11-14 15:33:42
    我几乎找遍了网络上差不多所有的穷举算法,都不是很满意。然后自己研究了差不多一下行的时候,把现在的代码进行了注释和部分优化。 这个穷举算法,可以自定义起始位,终止位,还可以自定义密码字符。差不多是我觉得...
  • 基本算法之穷举算法

    2020-04-14 22:15:06
    基本算法之穷举算法 一.穷举算法的基本思想 穷举算法的基本思想就是从所有的可能的情况中搜索正确的答案,其执行步骤大致如下: 1.对于一种可能的情况,计算其结果; 2.判断结果是否满足要求,如果不满足则执行第1步...

    基本算法之穷举算法

    一.穷举算法的基本思想

    穷举算法的基本思想就是从所有的可能的情况中搜索正确的答案,其执行步骤大致如下:
    1.对于一种可能的情况,计算其结果;
    2.判断结果是否满足要求,如果不满足则执行第1步来搜索下一个可能的情况;如果满足要求,则表示寻找到一个正确的答案。

    注意事项:在使用穷举算法时,需要明确问题答案的范围,这样才能在指定的范围内搜索答案,指定范围之后,就可以使用循环语句和条件判断语句逐步验证可能性答案的正确性,从而得到正确的答案。

    二.典型实例

    比较典型的穷举算法的实例就是鸡兔同笼的问题:
    今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?
    1.分析:
    问题是需要计算鸡的数量和兔的数量,通过分析可以知道鸡的数量应该在0-35之间的数。这样就可以使用穷举的算法来逐个判断是否符合要求,从而得到正确的答案。
    2.参考代码:

    import java.util.Scanner;
    
    public class Brute_force {
    	static int chicken,robbit;
    	public static int brute_force(int head,int foot) {
    		int re,i,j;
    		re=0;
    		for(i=0;i<=head;i++) {                   //循环
    			j=head-i;
    			if(i*2+j*4 == foot) {               //判断,寻找答案
    				re=1;
    				chicken = i;
    				robbit = j;
    			}
    		}
    		return re;
    	}
    
    	public static void main(String[] args) {      //主方法
    		// TODO Auto-generated method stub
    		int re,head,foot;
    		System.out.println("穷举法求解鸡兔同笼问题:");
    		System.out.println("输入头数:");             //输入头数
    		Scanner input = new Scanner(System.in);
    		head= input.nextInt();
    		System.out.println("输入足数:");            //输入足数
    		foot=input.nextInt();
    		re=brute_force(head, foot);
    		if(re==1) {
    			System.out.println("鸡有"+chicken+"只,兔有"+robbit+"只。");
    		}else {
    			System.out.println("无法求解!");
    		}
    	}
    
    }
    

    3.结果展示:
    在这里插入图片描述

    展开全文
  • 穷举算法 回溯算法 介绍 几篇文章,还是值得一看的
  • 穷举算法是最简单的一种算法,其依赖于计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的。穷举算法效率并不高,但适用于一些没有明显规律可循的场景。 穷举的基本思想是从所有可能的情况中...

    1、什么是穷举?

    穷举算法是最简单的一种算法,其依赖于计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的。

    穷举算法效率并不高,但适用于一些没有明显规律可循的场景。基本思想是从所有可能的情况中搜索正确的答案,在使用穷举算法时,需要明确问题的答案的范围,这样才可以在指定范围内搜索答案。指定范围之后,就可以使用循环语句和条件判断语句逐步验证候选答案的正确性,从而得到需要的正确答案。其执行步骤如下:

    (1). 对于一种可能的情况,计算其结果;

    (2). 判断结果是否满足要求,如果不满足则执行第(1)步来搜索下一个可能的情况;如果满足要求,则表示寻找到一个正确的答案。

    2、穷举算法应用

    鸡兔同笼

    鸡兔同笼问题最早记载于1500年前的《孙子算经》,是我国古代一个非常有名的问题,原文如下:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?

    翻译过来的意思是在一个笼子里关着若干只鸡和若干只兔,从上面数共有35个头;从下面数共有94只脚。问笼中鸡和兔的数量各是多少?题目要计算鸡的数量和兔的数量,通过分析可以知鸡的数量应该为0~35之间的数。

    基于该思路,可以使用穷举法来逐个判断是否符合条件,从而得到答案。暴力穷举.....,Java代码实现如下:

    public class Test {
        /** 鸡的数量、兔子数量 */
        public static int chicken, rabbit;
    
        /** 穷举.... */
        public static boolean getAmount(int header, int foot) {
            boolean flag = false;
            int j; // j 兔子数量
            for (int i = 0; i < header; i++) { // i 鸡的数量
                j = header - i;
                if (foot == (2 * i + 4 * j)) {
                    chicken = i;
                    rabbit = j;
                    flag = true;
                }
            }
            return flag;
        }
    
        /** 测试结果:有鸡23只, 有兔12个 */
        public static void main(String[] args) {
            // 上有三十五头,下有九十四足,问鸡兔各几何?
            if (getAmount(35, 94)) {
                System.out.println("有鸡" + chicken + "只, 有兔" + rabbit + "个");
            }
        }
    }

    当然,鸡兔同笼问题,最简单的是使用解方程的思路了,设置x,y分别代表鸡和兔,foot,header分别代表足和头,那么可以得到一个一元二次方程组:x + y = header; 2*x + 4*y = foot; 消元求解可得:y = (foot - 2*header)/2 ; x = header-y;  这样也解出了鸡兔同笼的问题。

    百钱买百鸡问题

    百钱买百鸡是一个非常经典的不定方程问题,最早源于我国古代的《算经》,这是古代著名数学家张丘建首次提出的。百钱买百鸡问题的原文如下:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

    翻译过来的意思是公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,如果用100文钱买100只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?使用解方程的思路的话,该问题中,有三个变量:公鸡数量、母鸡数量和小鸡数量,分别设为x、y和z。这三者应该满足如下关系:x+y+z=100; 5x+3y+z/3=100; 这里有三个变量,两个方程,因此是一个不定方程问题,这将导致求解的结果不只一个。

    当然,这里使用穷举法来逐个判断是否符合条件,从而得到答案,很暴力很粗鲁,Java代码实现如下:

    public class Test {
        /**
         * 打印结果:
         *  有鸡翁0只, 有鸡母25只, 有鸡雏75只
         *  有鸡翁4只, 有鸡母18只, 有鸡雏78只
         *  有鸡翁8只, 有鸡母11只, 有鸡雏81只
         *  有鸡翁12只, 有鸡母4只, 有鸡雏84只
         **/
        public static void main(String[] args) {
            getChickenAmount(100, 100);
        }
    
        /**
         * 鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?
         */
        public static void getChickenAmount(int money, int amount) {
            int k; // k 鸡雏
            for (int i = 0; i < amount; i++) { // i 鸡翁
                for (int j = 0; j < amount; j++) { // j 鸡母
                    k = amount - i - j;
                    if (k > 0 && (k % 3 == 0) && (5 * i + 3 * j + k / 3) == money) {
                        System.out.println("有鸡翁" + i + "只, 有鸡母" + j + "只, 有鸡雏" + k + "只");
                    }
                }
            }
        }
    }

    3、穷举的优缺点

    穷举的优点就是直观,会粗鲁的列举出每一种情况,这也成为了其致命的缺点,会造成程序运行效率低,代码冗余等问题,一般不推荐使用。

    参考书籍:《Java常用算法手册(第3版)》

    展开全文
  • 常用算法思想:穷举算法思想

    千次阅读 2016-07-22 21:10:20
    穷举算法思想

    穷举算法的基本思想就是从所有可能的情况中搜索正确的答案,其执行步骤如下:

    (1)对于一种可能的情况,计算其结果。

    (2)判断结果是否满足要求,如果不满足则执行第(1)步来搜索下一个可能的情况;如果满足要求,则表示寻找到一个正确的答案。

    举例:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几何?

    代码实现:

    import java.util.Scanner;
    public class P3_1{
    	static int chichen,habbit; //chichen代表鸡的个数,habbit代表兔的个数
    	public static  int qiongJu(int head , int foot) {//穷举算法
    		int re,i,j; 
    		re=0;
    	    for(i=0;i<=head;i++)						//循环
    	    {
    	        j=head-i;
    	        if(i*2+j*4==foot)						//判断,找到答案
    	        {
    	           re=1;  
    			   chichen=i;
    			   habbit=j;
    	        } 
    	    }
    	    return re;
    	}
    	public static void main(String[] args) {       //主方法
    		int re,head,foot;
    		System.out.println("穷举法求解鸡兔同笼问题:");
    		System.out.print("请输入头数:");
    		Scanner input=new Scanner(System.in);
    		head=input.nextInt();                     //输入头数
    		System.out.print("请输入脚数:");
    		foot=input.nextInt();                     //输入脚数
    		re=qiongJu(head,foot);
    		if(re==1){
    			System.out.println("鸡有"+chichen+"只,兔有"+habbit+"只。");
    		}
    		else{
    			System.out.println("无法求解!");
    		}
    	}
    }
    运行结果:

    穷举法求解鸡兔同笼问题:
    请输入头数:35
    请输入脚数:94
    鸡有23只,兔有12只。
    



    展开全文
  • 算法-->穷举算法

    2017-07-11 15:16:58
    package 穷举算法;import java.util.Scanner;public class QiongJu { static int chicken,habbit;//分别代表鸡的个数,兔子的个数 /*穷举算法*/ public static int qiongju(int head,int foot) { int r,i,j; r=0; ...
  • import java.util.Scanner; ... * 穷举算法 * @author Administrator * */ public class AlgorithmTest { // chichen鸡的个数,rabbit兔的个数 static int chichen, rabbit; //...
  • 算法学习笔记之穷举算法

    千次阅读 2016-08-10 10:10:55
    算法学习笔记之穷举算法
  • * 穷举算法是最基本的算法思想,下面通过一个简单的例子来分析穷举算法的应用。 * 鸡兔同笼问题最早记载于1500年前的《孙子算经》,这是我国古代一个非常有名的问题。鸡兔同笼的原文如下: * 今有鸡兔同笼,上有...
  • 穷举算法思想

    2015-07-25 13:08:00
    穷举算法的基本思想就是从所有可能的情况中搜索正确的答案,在使用穷举算法时,需要明确问题的答案的范围,在范围中搜索出每一种答案,得到你最想要的答案 1. 对于一种可能的情况,计算出结果 2. 判断结果是否满足,不满足...
  • 密码穷举算法

    2012-10-09 11:13:03
    在许多情况下我们需要穷举组合的算法,比如密码词典。 这个算法的关键是密码下标进位的问题。 另外本例子中的写文件语句效率比较低,为了降低算法复杂度没有优化。 如果要提高写文件的效率,可以使用缓冲区,分批...
  • 第五讲 穷举算法.doc

    2020-07-21 00:34:07
    第五讲 穷举算法 学习重点 1了解穷举法的基本概念及用穷举法设计算法的基本过程 2能够根据具体问题的要求使用穷举法设计算法编写程序求解问题 3能对穷举法编写的程序进行优化 学习过程 穷举算法是学生在学完了QB基本...
  • 文章向导 何为穷举, 何时使用穷举? 实例1:婚礼上的谎言 实例2:鸡兔同笼问题 一、何为穷举,何时使用...实际上如果你愿意的话,几乎大多数问题都可以转换为穷举求解的过程,但因为穷举算法的效率不高,所以它一...
  • 1,穷举算法 主要解决鸡兔同笼类似问题 public class 穷举算法 { public static void main(String[] args) { int head = 35; int foot = 94; int j = 0; int i = 0; int tuziNumber = 0; int ...
  • 穷举算法经典案例及其C语言实现.穷举算法经典案例及其C语言实现.
  • 穷举算法 概念: 最简单算法,依赖计算机的强大计算能力穷尽每一种可能的情况。穷举算法效率不高,但是适合一些没有明显规律可循的场合。 思想: 在使用穷举算法时,需要明确问题答案的范围,这样才可能在指定...
  • JAVA的常用算法手册—常用的算法思想之穷举算法思想 1、基本概念 穷举算法是最简单的一种算法,其依赖于计算机强大的计算能力,来穷尽有可能的每一种情况,从而达到求解问题的目的。穷举法的效率并不高,但是使用...
  • 穷举算法解决JOSEPH问题,用netbeans6.8做的。百分百下载复制进去就可以直接运行。有WORD文档实验报告 和 JAVA 源文件。
  • 算法(Java随笔)—穷举算法

    千次阅读 2018-09-25 23:54:13
    穷举算法(Exhaustive Attack method)——是最简单的一种算法,对一个问题的求解,穷尽每一种可能;算法效率不高,但使用于一些没有规律的场合。 穷举算法的基本思想就是从所有可能的情况中搜索正确的答案,使用...
  • python - 穷举算法

    千次阅读 2017-09-12 11:49:26
    穷举算法 字母代表0-9十个数字中的一个,且不重复。 wwwdot - google = dotcom 公式中首位不能为0。 求出各个字母代表的数字,符合该公式。   W - 1-9 G - 1-9 D - 1-9 O - 0-9 T - 0-9 L - 0-9 E - 0-...
  • 穷举算法实现百元买百笔 一、 穷举算法原理 穷举也称枚举,是最常用的算法之一,它的基本思想是—列举各种可能进行的测试,从中找出符合条件的解。计算机能够实现高速运算,是由于它借助于循环结构实现穷举,它比...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 37,016
精华内容 14,806
关键字:

关于穷举算法