穷举算法

  1. 云栖社区>
  2. 博客>
  3. 正文

穷举算法

期待l 2018-12-13 09:21:46 浏览1352
展开阅读全文
  • 这是最简单的一种算法,其依赖于计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的,效率并不高,但是适合用于一些没有明显规律可循的场合

基本思想

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

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

鸡兔同笼问题

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

    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);
            }
        }
    }

网友评论

登录后评论
0/500
评论