基本算法之穷举算法

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

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

如果判断的结果的不符合要求就执行第一步来搜索下一个可能的情况

package Main;

import java.util.Scanner;

public class demo2 {

    /**
     * 穷举算法求解鸡兔同笼
     * @param args
     */
    static int chichen,habbit;
    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();
        foot = input.nextInt();
        re = qiongju(head,foot);
        if(re == 1)
        {
            System.out.println("鸡:"+chichen+"--"+habbit);
        }else{
            System.out.println("无法求解!");
        }
    }

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

}
时间: 2024-10-13 13:28:45

基本算法之穷举算法的相关文章

穷举算法思想

穷举算法的基本思想就是从所有可能的情况中搜索正确的答案,在使用穷举算法时,需要明确问题的答案的范围,在范围中搜索出每一种答案,得到你最想要的答案 1. 对于一种可能的情况,计算出结果 2. 判断结果是否满足,不满足就继续搜索下一个答案,满足要求则表示找到一个正确答案   穷举算法实例: 鸡兔同笼,共有35个头,94条腿,鸡兔各有多少只? (答案范围有两个, 小鸡假设有35只,兔子假设有35只) 看看算法的效果 using System; using System.Collections.Gene

穷举算法

穷举算法是最简单的一种算法,在使用穷举算法前要明确问题的答案的范围,效率并不高,适用于有明显规律可循的场合. 代码段: static int chicken,rabbit; public static int sun(int m,int n){ int temp=0; int i,j; for(i=0;i<=m;i++) { j=m-i; if(2*i+4*j==n) { temp=1; chicken=i; rabbit=j; } } return temp; } public static

PHP经典题:百钱百鸡问题(穷举算法)

百钱百鸡问题: 已知:公鸡5元一只,母鸡3元一只,小鸡一元3只 现用100元钱买了100只鸡,问:公鸡母鸡小鸡各几只? --请考虑尽可能高效的方法 思路: 如果有0只公鸡,0只母鸡,1只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,0只母鸡,2只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,0只母鸡,3只小鸡,数量是100吗?价钱是100吗? 否 ...... 如果有0只公鸡,0只母鸡,100只小鸡,数量是100吗?价钱是100吗? 否 如果有0只公鸡,1只母鸡,1只

求立方根算法--个人对立方根算法的穷举和优化

在hpe实训中心学习,遇到了求立方根的题目,在此做一下算法笔记, 分析过程: 数n的立方根就是n=i*i**i;所以我们会优先想到一下方法. static double g32(double n){ //简易版 double i = 0, k = 0.0005f; if (n < 0) { //输入负数判断 k /= -1; } do{ i+=k; }while(abs(i*i*i)<abs(n)); //abs为自己写的求绝对值方法 return i; } 可以看出此方法的求解精度为0.00

1.3 枚举(穷举)算法

1 填数字问题 1 #include <stdio.h> 2 int main() 3 { 4 int i1,i2,i3,i4,i5; 5 long multi,result; 6 for(i1=1;i1<=9;i1++) 7 { 8 for(i2=0;i2<=9;i2++) 9 { 10 for(i3=0;i3<=9;i3++) 11 { 12 for(i4=0;i4<=9;i4++) 13 { 14 for(i5=0;i5<=9;i5++) 15 { 16 m

javascript--枚举算法实现

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript"> //枚举算法-->穷举算法 window.onload=function () { var aA=document.get

1-5、算法设计常用思想之穷举法

穷举法又称穷举搜索法,是一种在问题域的解空间中对所有可能的解穷举搜索,并根据条件选择最优解的方法的总称.数学上也把穷举法称为枚举法,就是在一个由有限个元素构成的集合中,把所有元素一一枚举研究的方法. 使用穷举法解决问题,基本上就是以下两个步骤: • 确定问题的解(或状态)的定义.解空间的范围以及正确解的判定条件: • 根据解空间的特点来选择搜索策略,逐个检验解空间中的候选解是否正确: 解空间的定义解空间就是全部可能的候选解的一个约束范围,确定问题的解就在这个约束范围内,将搜索策略应用到这个约束范

步步为营——算法初阶 1.算法概述

-------------------------------天禄貔貅  王冬冬 技术博客------------------------------- 1.1什么是算法? 字面义:算法就是用于计算的方法,通过这样的方法能够达到预期的结果. 专业定义:算法是模型分析的一组可行的.确定的和有穷的规则. 从程序设计角度:算法由一系列求解问题的指令构成,可以依据规则的输入在有限的时间内获得有效的输出结果. 算法的五个特征:有穷性.确切性.输入.输出.可行性. 1.2 算法的发展历史 周髀算经-->9世

10进制转62进制,实现穷举指定位数的所有密码组合(暴力破解)

因为我们这里要穷举的密码包括0-9,a-z,A-Z共62个字符,所以我们采用62进制来遍历. 首先,我们实现一个10进制转62进制的方法. private static char[] charSet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray(); //private static string[] charSet = { "0", "1&qu