窮舉算法

  • 這是最簡單的一種算法,其依賴於計算機的強大計算能力,來窮盡每一種可能的情況,從而達到求解問題的目的,效率並不高,但是適合用於一些沒有明顯規律可循的場合

基本思想

  • 就是從所有可能的情況中搜索正確的答案,步驟如下

    • 對於一種可能的情況,計算其結果
    • 判斷結果是否滿足要求,如果不滿足就執行第一步來搜索下一個可能的情況,如果滿足要求,則表示尋找到一個可能的答案
  • 使用窮舉算法時,需要明確問題的答案範圍,這樣纔可以在指定範圍內搜索答案,指定範圍之後,就可以使用循環語句和判斷條件逐步驗證答案的正確性,從而得到需要的正確答案
  • 其實說這麼多,就是用循環去遍歷所有可能出現的結果

雞兔同籠問題

  • 上有三十五頭,下有九十四足,問雞兔幾何?
  • 一共有三十五隻頭,那麼雞最多有三十五隻,剩下的就是兔的個數,所以核心的代碼是很簡單的

    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);
            }
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章