穷举法

穷举算法

穷举算法依赖计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的。穷举算法效率不高,但是适合一些没有明显规律可循的场合。

基本思想

  • 对于一种可能的情况,计算其结果。
  • 判断结果是否满足要求,如果不满足则执行第1条来搜索下一个可能的情况;如果满足要求,则表示寻找到一个正确答案。

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

实例:

穷举法算鸡头同笼问题。在一个笼子里关着若干只鸡和若干只兔子,从头上数有35个头;从下面数有94只脚。求有多少鸡多少兔。

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.println("请输入头数");
        Scanner input = new Scanner(System.in);
        head = input.nextInt();
        System.out.println("请输入头数");
        foot = input.nextInt();
        re = qiongju(head,foot);
        if(re ==1 ){
            System.out.println("鸡有"+chichen+"只,兔有"+habbit+"只");
        }else {
            System.out.println("无法求解!");
        }
    }



}



穷举法求解鸡兔同笼问题:
请输入头数
35
请输入头数
94
鸡有23只,兔有12
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值