基本算法之窮舉算法

基本算法之窮舉算法

一.窮舉算法的基本思想

窮舉算法的基本思想就是從所有的可能的情況中搜索正確的答案,其執行步驟大致如下:
1.對於一種可能的情況,計算其結果;
2.判斷結果是否滿足要求,如果不滿足則執行第1步來搜索下一個可能的情況;如果滿足要求,則表示尋找到一個正確的答案。

注意事項:在使用窮舉算法時,需要明確問題答案的範圍,這樣才能在指定的範圍內搜索答案,指定範圍之後,就可以使用循環語句和條件判斷語句逐步驗證可能性答案的正確性,從而得到正確的答案。

二.典型實例

比較典型的窮舉算法的實例就是雞兔同籠的問題:
今有雞兔同籠,上有三十五頭,下有九十四足,問雞兔各幾何?
1.分析:
問題是需要計算雞的數量和兔的數量,通過分析可以知道雞的數量應該在0-35之間的數。這樣就可以使用窮舉的算法來逐個判斷是否符合要求,從而得到正確的答案。
2.參考代碼:

import java.util.Scanner;

public class Brute_force {
	static int chicken,robbit;
	public static int brute_force(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;
				chicken = i;
				robbit = j;
			}
		}
		return re;
	}

	public static void main(String[] args) {      //主方法
		// TODO Auto-generated method stub
		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=brute_force(head, foot);
		if(re==1) {
			System.out.println("雞有"+chicken+"只,兔有"+robbit+"只。");
		}else {
			System.out.println("無法求解!");
		}
	}

}

3.結果展示:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章