最初のアルゴリズム
5281 ワード
【プログラム1】テーマ:古典的な質問:ウサギのペアは、生まれてから3ヶ月目から毎月1対のウサギを産み、ウサギは4ヶ月目に成長してから毎月1対のウサギを産み、もしウサギが死ななければ、毎月のウサギはどのくらいペアがありますか?
アルゴリズム1:
実行時間は42 ms程度です.
アルゴリズム2:
実行時間は約44 ms程度である.
アルゴリズム3:
実行時間n秒長.
アルゴリズム1:
public class ArithmeticTest1 {
public static void main(String[] args){
int[] count= new int[1000];long start=System.currentTimeMillis();
for(i=1;i<=1000;i++) {
if (i == 1 || i == 2) {
System.out.println(i + ":" + 1);
count[i]=1;
}else{
count[i]=count[i-1]+count[i-2];
System.out.println(i + ":" + count[i]);
}
}
long end=System.currentTimeMillis();
System.out.println(" :"+(end-start));
}
}
実行時間は42 ms程度です.
アルゴリズム2:
public class ArithmeticTest1 {
public static void main(String[] args){
ArrayList<Integer> count1=new ArrayList<Integer>();
int i=0;
long start=System.currentTimeMillis();
for(i=1;i<=1000;i++) {
if (i == 1 || i == 2) {
System.out.println(i + ":" + 1);
count1.add(1);
}else{
count1.add(count1.get(i-2)+count.get(i-3));
System.out.println(i + ":" + count1.get(i-1));
}
}
long end=System.currentTimeMillis();
System.out.println(" :"+(end-start));
}
実行時間は約44 ms程度である.
アルゴリズム3:
public class ArithmeticTest1 {
public static void main(String[] args){
int i=0;
long start=System.currentTimeMillis();
math myMath = new math();
for(i=1;i<=1000;i++)
System.out.println(i + ":" + myMath.f(i));
long end=System.currentTimeMillis();
System.out.println(" :"+(end-start));
}
static class math{
public int f(int x){
if(x==1||x==2)
return 1;
else
return f(x-1)+f(x-2);
}
}
}
実行時間n秒長.