穷举算法学习笔记
穷举算法思想是最简单的一种算法。依赖于计算机的强大计算能力,来穷尽每一种可能的情况,从而达到求解问题的目的。
穷举算法效率不高,但适合于一些没有明显规律的场合。
穷举算法思想:
穷举算法的基本思想就是从所有可能的情况中搜索正确的答案。
穷举算法的执行步骤:
1) 对于一种可能的情况,计算结果;
2) 判断结果是否满足要求,不满足继续执行1),满足就结束。
Java代码实现:
/**
* 穷举算法: 穷举每一种可能出现的情况,找到解.
*
* 例子1: 鸡兔同笼问题:"今有鸡兔同笼,上有三十五头,下有九十四足.问鸡兔各几何?".
* 例子2: 百鸡问题:"鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一.百钱买百鸡,问鸡翁,母,雏各几何?".
*
*
*/
public class QiongJu {
static void bqmbj() {
for(int jw = 1;jw<20;jw++){
for(int jm = 1;jm<33;jm++){
for(int jc = 1;jc<99;jc++){
if((jw+jm+jc == 100)&&(15*jw+9*jm+jc == 300)){
System.out.println("鸡翁:" + jw);
System.out.println("鸡母" + jm);
System.out.println("鸡雏:" + (jc));
}
}
}
}
}
static void jttl(int head, int foot) {
int j = 0; // 鸡
// j+t=35;
// j*2+t*4=94;
for (; j < head;) {
if (2 * j + 4 * (head - j) == foot) {
System.out.println("鸡" + j);
System.out.println("兔" + (head - j));
}
j++;
}
}
public static void main(String[] args) {
// jttl(35, 94);
bqmbj();
}
}
注: