穷举算法

简介:
  • 这是最简单的一种算法,其依赖于计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的,效率并不高,但是适合用于一些没有明显规律可循的场合

基本思想

  • 就是从所有可能的情况中搜索正确的答案,步骤如下

    • 对于一种可能的情况,计算其结果
    • 判断结果是否满足要求,如果不满足就执行第一步来搜索下一个可能的情况,如果满足要求,则表示寻找到一个可能的答案
  • 使用穷举算法时,需要明确问题的答案范围,这样才可以在指定范围内搜索答案,指定范围之后,就可以使用循环语句和判断条件逐步验证答案的正确性,从而得到需要的正确答案
  • 其实说这么多,就是用循环去遍历所有可能出现的结果

鸡兔同笼问题

  • 上有三十五头,下有九十四足,问鸡兔几何?
  • 一共有三十五只头,那么鸡最多有三十五只,剩下的就是兔的个数,所以核心的代码是很简单的

    private static void qiongJu(int head, int foot) {
        int rabbitCount = 0;
        for (int i = 0; i <= head; i++) {
            rabbitCount = head - i;
            if (rabbitCount*4 + i*2 == foot){
                System.out.println("兔子:"+rabbitCount+" 鸡:"+i);
            }
        }
    }

韩信点兵

  • 韩信知道部队人数大约1000人左右,具体数字不详,5人一组剩余1人,7个人一组还剩两个人,8个人一组还剩3个人,问这支部队有多少人?
  • 1000人左右也就是小于2000,所以这个范围就确定了,然后剩下的就是if判断了

    private static void hanxin() {
        for (int i = 0; i < 2000; i++) {
            if (i%5==1 && i%7==2 && i%8==3){
                System.out.println(i);
            }
        }
    }
目录
相关文章
|
2月前
|
算法 Java C++
非启发式算法——二分、三分搜索算法
非启发式算法——二分、三分搜索算法
65 0
|
8月前
|
算法
排列组合算法
排列组合算法
|
9月前
|
算法 内存技术
求组合数三种算法
求组合数三种算法
49 0
|
9月前
|
算法 搜索推荐 C++
穷举法
穷举法
81 0
穷举法
|
12月前
|
算法 计算机视觉
趣学算法之贪心算法
趣学算法之贪心算法
111 0
求解幂集问题(蛮力法)
求解幂集问题(蛮力法)
165 0
|
算法
算法设计与分析 暴力递归
算法设计与分析 暴力递归
86 0
算法设计与分析 暴力递归
|
算法
【算法设计与分析】动态规划法与分治法、贪心法的区别
【算法设计与分析】动态规划法与分治法、贪心法的区别
158 0
|
存储 机器学习/深度学习 人工智能
乘积量化比之暴力穷举,有哪些进步呢?
乘积量化比之暴力穷举,有哪些进步呢?
乘积量化比之暴力穷举,有哪些进步呢?