プログラミングアルゴリズムの基礎-暴力解読法


1.1暴力解読法
ニワトリとウサギが同じかごにいる.
50頭、120足、鶏とウサギはそれぞれ何匹ですか?
/*    
 *     , 50, 120
 *     ?
*/
package ChickRabbit;
 
public class ChickRabbit {
    public static void main(String[] args){
       int chick;
       int rabbit;
       int HEAD=50;
       int FEET=120;
       for(chick=0;chick<=HEAD;chick++){
           rabbit=HEAD-chick;
           if(rabbit*4+chick*2==FEET){
              System.out.println(" :"+chick);
              System.out.println(" :"+rabbit);
           }
       }
    }
}

 
韓信が兵を点す
韓信は部隊数が約1000人程度であることを知っており、具体的な数字は不明だ.
5人1組、残り1人;
7人1組、残り2人;
8人1組、残り3人;
何人いますか.
/*          1000   ,      。
5   , 1 ;
7   , 2 ;
8   , 3 ;
 ,    ?*/
 
package ChickRabbit;
 
public class HanxinDianBing {
    public static void main(String[] args) {
       int n;
       for (n = 800; n < 2000; n++) {
           if (n % 5 == 1 && n % 7 == 2 && n % 8 == 3) {
              System.out.println("       :"+n);
           }
       }
    }
}
       :891
       :1171
       :1451
       :1731

馬と瓦
全部で100頭の馬がいます
全部で100枚の瓦が積まれています(古代の瓦は、大きくて重いです)
大きな馬1頭につき毎回3枚の瓦を積むことができる.
1匹の馬は毎回2枚の瓦を積むことができる.
駒は毎回2個の駒に1枚の瓦を積む
各種の馬の数を求めます
ヒント:複数の解の可能性があります.すべての解をリストします.
/*    100   
     100   (    ,  ,  )
         3   
         2   
      2     1  
       
  :      ,       。*/
 
package ChickRabbit;
 
public class HorseAndBrick {
    public static void main(String[] args) {
       int HORSE = 100;
       int BRICK = 100;
       int big;
       int mid;
       int little;
        for(big=0;big<=100;big++){
            for(mid=0;mid<=100;mid++){
               little=HORSE-big-mid;
               if(big*3+mid*2+little*0.5==BRICK){
                   System.out.println("         :  :"+big+"   :"+mid+"    :"+little);
               }
            }
        }
    }
}
         :  :2   :30    :68
         :  :5   :25    :70
         :  :8   :20    :72
         :  :11   :15    :74
         :  :14   :10    :76
         :  :17   :5    :78
         :  :20   :0    :80