herrDeng網內搜尋

自訂搜尋

Ads

2020年5月5日 星期二

ex9 費式數列迴圈以及有記憶的遞迴算法



1. Stopwatch用法
2. 迴圈法計算費氏數列
3. 有記憶的遞迴計算費氏數列

63 則留言:

b10833069 鍾秉哲 提到...

1.
Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。



但在計算累計耗費時間時,也有人會用Reset→Start→Stop→加總→…這樣的方法來做。但這樣的做法會比較耗時,求得的值也會有誤差。

2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] =f[i - 1] +f[i - 2];
return f[n];
}

static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)" + answer);
Console.WriteLine("loop計算"+(sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833042謝孟修 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n]= ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833010 戴俊瑋 提到...

1.Stopwatch 可以測量一個時間間隔的運行時間,也可以測量多個時間間隔的總運行時間。
一般用來測量代碼執行所用的時間或者計算性能數據,
在優化代碼性能上可以使用Stopwatch來測量時間。

程式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n]= ff(n - 1) + ff(n - 2);

}
return f[n];
}
static int f1(int n)
{
f[0]=0;f[1]=1;
for (int i=2;i<=n;i++)
f[i]=f[i-1]+f[i-2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

B10833011彭丙玉 提到...

1.Stopwatch 可以測量一個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。
一般用來測量程式碼執行所用的時間或者計算效能資料,在優化程式碼效能上可以使用Stopwatch來測量時間。
程式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static int[] f=new int[100];
static int ff(int n)
{
if (f[n]==0||n==0)
{
if (n == 0 || n == 1) f[n]=n;
else
f[n]=ff(n-1) + ff(n - 2);

}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];

}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("array+recursion計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

A10833002 提到...

1.Stopwatch用法

使用的時候需要引用 System.Diagnostics 名稱空間。先呼叫 Start 方法,然後呼叫 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到執行時間(這兩個屬性的區別是前者得到的是TimeSpan例項,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在執行還是已經停止。每次呼叫 Start 時開始累計執行時間計數;每次呼叫 Stop 時結束當前時間間隔測量,並凍結累計執行時間值。 使用 Reset 方法可以清除現有 Stopwatch 例項中的累計執行時間。

2.迴圈法計算費氏數列

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace f
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f1(45)=" + answer);
Console.WriteLine("loop計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.有記憶的遞迴計算費氏數列

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace f
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if(f[n]==0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f1(45)=" + answer);
Console.WriteLine("array+reursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833043 彭律惠 提到...

1.Stopwatch 可以測量一個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。一般用來測量程式碼執行所用的時間或者計算效能資料。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n]= ff(n - 1)+ ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833073毛聖翔 提到...

Stopwatch 可以測量一個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。一般用來測量程式碼執行所用的時間或者計算效能資料,在優化程式碼效能上可以使用Stopwatch來測量時間。
使用的時候需要引用 System.Diagnostics 名稱空間。先呼叫 Start 方法,然後呼叫 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到執行時間(這兩個屬性的區別是前者得到的是TimeSpan例項,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在執行還是已經停止。每次呼叫 Start 時開始累計執行時間計數;每次呼叫 Stop 時結束當前時間間隔測量,並凍結累計執行時間值。 使用 Reset 方法可以清除現有 Stopwatch 例項中的累計執行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program

{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];

}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("遞迴計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833047馮群赫 提到...

Stopwatch 可以測量一個時間間隔的運行時間,也可以測量多個時間間隔的總運行時間。一般用來測量代碼執行所用的時間或者計算性能數據,在優化代碼性能上可以使用Stopwatch來測量時間。

基本用法
  使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program

{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];

}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("遞迴計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833046王子榮 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n]= ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833006 朱軒廣 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、
與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,
就可以得到運行的耗費時間。

程式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n]= ff(n - 1) + ff(n - 2);

}
return f[n];
}
static int f1(int n)
{
f[0]=0;f[1]=1;
for (int i=2;i<=n;i++)
f[i]=f[i-1]+f[i-2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

B10833148張詔明 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n]= ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833046王子榮 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n]= ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833050 張少豪 提到...

在程序開發中有時會需要統計一個方法或是一個存儲過程執行了多長時間,比如在做一些方法的性能測試時就需要用到這用的時間統計功能。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];

static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int f2(int n)
{
if (n == 0) return 0;
if(n==1)
{
f[n] = 1;
return f[n];
}
if(f[n]==0)
{
f[n]=f2(n-1)+f2(n-2);
}
return f[n];
}
static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);

}
return f[n];
}

static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
{
f[n] = f[n - 1] + f[n - 2];
}
return f[n];
}
static void Main(string[] args)
{

Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f2(45));
sw.Stop();
Console.WriteLine("用時" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();

}
}
}

B10833026鄭亞易 提到...

1.Stopwatch 可以測量一個時間間隔的運行時間,也可以測量多個時間間隔的總運行時間。一般用來測量代碼執行所用的時間或者計算性能數據,在優化代碼性能上可以使用Stopwatch來測量時間。
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}
3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}


static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n;i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();

}
}
}

A10833001林承君 提到...

stopwatch用法
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f1(45));
sw.Stop();
Console.WriteLine(+sw.ElapsedMilliseconds/1000.0);
Console.Read();
}
}
}
迴圈法計算費氏數列
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace _00056
{
class Program
{
static int[] f = new int[100];
static int f0(int n)

{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
有記憶的遞迴計算費氏數列
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace _00056
{
class Program
{
static int[] f = new int[100];
static int f0(int n)

{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int f1(int n)
{
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f1(45));
sw.Stop();
Console.WriteLine(+sw.ElapsedMilliseconds/1000.0);
Console.Read();
}
}
}

B10833034 彭仲麟 提到...

1.
Stopwatch 可以測量一個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。一般用來測量程式碼執行所用的時間或者計算效能資料,在優化程式碼效能上可以使用Stopwatch來測量時間。
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace T0429
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop計算"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace T0429
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int f2(int n)
{
if (n == 0) return 0;
if(n==1)
{
f[n] = 1;
return f[n];
}
if (f[n]==0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f2(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop計算"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

B10833029 余柏翰 提到...

使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Start();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

b10833024 王翔緯 提到...

使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];

static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n-1) + f0(n-2);
}
static int ff(int n)
{
if (f[n]==0||n==0)
{
if (n == 0 || n == 1)f[n]=n;
else
f[n]=ff(n-1)+ff(n-2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw =new Stopwatch();
sw.Start();
int answer = ff (45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

b10833021 提到...

1用法

Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

但在計算累計耗費時間時,也有人會用Reset→Start→Stop→加總→…這樣的方法來做。但這樣的做法會比較耗時,求得的值也會有誤差。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace 費式係數
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)
return n;
else
return f0(n - 1) + f0(n - 2);
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
}

static int f2(int n)
{
if (n == 0) return 0;
if (n == 1)
{
f[n] = 1;
return f[n];
}
if (f[n] == 0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}


static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f2(45));
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds/1000.0+" sec");
Console.Read();
}
}
}

b10833002田昌弘 提到...

Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。



但在計算累計耗費時間時,也有人會用Reset→Start→Stop→加總→…這樣的方法來做。但這樣的做法會比較耗時,求得的值也會有誤差。

-------------------------------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace 費式係數
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)
return n;
else
return f0(n - 1) + f0(n - 2);
}
static int f2(int n)
{
if (n == 0) return 0;
if (n == 1)
{
f[n] = 1;
return f[n];
}
if (f[n] == 0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}
static int f1(int n)
{
if (n == 0 || n == 1)
return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
{
f[i]=f[i-1]+f[i-2];
}
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f2(45));
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds / 1000.0 + "sec");
Console.Read();
}
}
}

B10833001宋映嫺 提到...

1.Stopwatch 可以測量一個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。一般用來測量程式碼執行所用的時間或者計算效能資料,在優化程式碼效能上可以使用Stopwatch來測量時間。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace T0429
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i-1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("loop計算" +(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace T0429
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}
static int f2(int n)
{
if (n == 0) return 0;
if (n == 1)
{
f[n] = 1;
return f[n];
}
if (f[n] == 0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i-1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f2(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("loop計算" +(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

B10833096林建鈞 提到...

Stopwatch 可以測量一個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。一般用來測量程式碼執行所用的時間或者計算效能資料,在優化程式碼效能上可以使用Stopwatch來測量時間。
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i-1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("loop計算" +(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();

}
}
}
3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}
static int f2(int n)
{
if (n == 0) return 0;
if (n == 1)
{
f[n] = 1;
return f[n];
}
if(f[n] == 0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i-1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f2(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("loop計算" +(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();

}
}
}

b10833023 陳姿茹 提到...

1.
 使用的時候需要引用 System.Diagnostics 名稱空間。先呼叫 Start 方法,然後呼叫 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到執行時間。(這兩個屬性的區別是前者得到的是TimeSpan例項,後者得到的是毫秒)使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在執行還是已經停止。每次呼叫 Start 時開始累計執行時間計數;每次呼叫 Stop 時結束當前時間間隔測量,並凍結累計執行時間值。 使用 Reset 方法可以清除現有 Stopwatch 例項中的累計執行時間。
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _0429
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0 ;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] =f[i - 1] +f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("array+recursion計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

b10815089潘宥丞 提到...

 使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Start();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833030吳璟辰 提到...

1.需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。

2.、3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1)return n;
else return f0(n - 1) + f0(n - 2);
}

static int f1(int n)
{
if (n == 0 || n == 1)return n;
f[0] = 0;
f[1] = 1;
for(int i=2; i<=n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
return f[n];

}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("迴避計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

B10815106林子豪 提到...

 使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Start();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

b10833027呂沂真 提到...

1.
Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。
但在計算累計耗費時間時,也有人會用Reset→Start→Stop→加總→…這樣的方法來做。但這樣的做法會比較耗時,求得的值也會有誤差。

2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i &lt;= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop&#35336;&#31639;&#29992;" + (sw.ElapsedMilliseconds / 1000.0) + "&#31186;");
Console.Read();
}
}
}

3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int f2(int n)
{
if (n == 0) return 0;
if (n==1)
{
f[n] = 1;
return f[n];
}
if (f[n] == 0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
}

static void Main(string[] args)
{

Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f1(45));
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds / 1000.0 + "sec");
Console.Read();
}
}
}

B10833033 蔡孟頻 提到...

1.Stopwatch用法:Stopwatch函数,猜测可能是用来计算一个函数的运行所需时间的

2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f2(int n)
{
if (n == 0) return 0;
if (n == 1)
{
f[n] = 1;
return f[n];
}
if (f[n] ==0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
}
static void Main (string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f1(45));
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds/1000.0 + "sec");
Console.Read();
}
}
}

B10833082 黃鈺淇 提到...

1.
Stopwatch 實例可以測量一個間隔的已耗用時間,或跨多個間隔的經過時間總計
2.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("loop計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}
3.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp3
{
class Program
{
static int[]f=new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n-1)+f0(n-2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n]= ff(n - 1)+ ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833025 徐郁堂 提到...

1.Stopwatch類別使用上,呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,
就可以得到運行的耗費時間。

程式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n]= ff(n - 1) + ff(n - 2);

}
return f[n];
}
static int f1(int n)
{
f[0]=0;f[1]=1;
for (int i=2;i<=n;i++)
f[i]=f[i-1]+f[i-2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

B10833004黃薰田 提到...

使用的時候需要引用 System.Diagnostics 名稱空間。先呼叫 Start 方法,然後呼叫 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到執行時間(這兩個屬性的區別是前者得到的是TimeSpan例項,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在執行還是已經停止。每次呼叫 Start 時開始累計執行時間計數;每次呼叫 Stop 時結束當前時間間隔測量,並凍結累計執行時間值。 使用 Reset 方法可以清除現有 Stopwatch 例項中的累計執行時間。.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program

{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];

}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("遞迴計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

D10811007 蘇鈺貽 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。
2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

B10833012 何郁麒 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。
2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

B10833031游凱程 提到...

使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Start();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

b10833037沈泉澔 提到...

使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Start();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

b10833014巫明憲 提到...

使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Start();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

b10833014巫明憲 提到...

使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Start();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833083 夏湘琳 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp4
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] +f[i - 2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();


}
}
}

B10833114 鍾杰廷 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp4
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] +f[i - 2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();


}
}
}

B10833007林文瑋 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n]= ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833041 黃柏凱 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp4
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] +f[i - 2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();


}
}
}

B10833009 張恩齊 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp4
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] +f[i - 2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();


}
}
}

B10833148 張詔明 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp4
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n]!=0 || n==0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] +f[i - 2];
return f[n];


}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();


}
}
}

b10815036李宥陞 提到...

1.使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

B10833028 提到...

使用的時候需要引用 System.Diagnostics 名稱空間。先呼叫 Start 方法,然後呼叫 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到執行時間(這兩個屬性的區別是前者得到的是TimeSpan例項,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在執行還是已經停止。每次呼叫 Start 時開始累計執行時間計數;每次呼叫 Stop 時結束當前時間間隔測量,並凍結累計執行時間值。 使用 Reset 方法可以清除現有 Stopwatch 例項中的累計執行時間。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static int [] f = new int[100];

static int f0(int n)
{
if (f[n] == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] == 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else
f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("array+recursion計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

b10833038陳冠傑 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

b10833044范光祐 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

b10833016余竺瑾 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

b10833019葉劉辰 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

b10815106林子豪 提到...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace _555
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}
static int ff(int n)
{
if (f[n] != 0 || n == 0)
{
if (n == 0 || n == 1) f[n] = n;
else f[n] = ff(n - 1) + ff(n - 2);
}
return f[n];
}

static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine(f0(45));
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0 + "秒"));
Console.Read();
}
}
}

B10833072吳仲倫 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

A10833004 提到...

1. Stopwatch用法
使用的時候需要引用 System.Diagnostics 命名空間。先調用 Start 方法,然後調用 Stop 方法,最後使用 Elapsed 屬性或者使用 ElapsedMilliseconds 屬性得到運行時間(這兩個屬性的區別是前者得到的是TimeSpan實例,後者得到的是毫秒)。使用 IsRunning 可以確定 Stopwatch 的當前狀態是正在運行還是已經停止。每次調用 Start 時開始累計運行時間計數;每次調用 Stop 時結束當前時間間隔測量,並凍結累計運行時間值。 使用 Reset 方法可以清除現有 Stopwatch 實例中的累計運行時間。
2. 迴圈法計算費氏數列&3.記憶的遞迴計算費氏數列
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static int f2(int n)
{
if (n == 0) return 0;
if (n == 1)
{
f[n] = 1;
return f[n];
}
if (f[n] == 0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}
static int f1(int n)
{
if (n == 0 || n == 1) return n;
f[0] = 0;
f[1] = 1;
for (int i = 2; i <= n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
return f[n];
}
static void Main(String[] args)
{

Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f2(45));
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds/1000.0);
Console.Read();
}
}
}

B10815088 徐仁祥 提到...

1. Stopwatch 可以測量一個時間間隔的執行時間,也可以測量多個時間間隔的總執行時間。一般用來測量程式碼執行所用的時間或者計算效能資料,在優化程式碼效能上可以使用Stopwatch來測量時間。
程式:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace ConsoleApp1
{
class Program
{
static int[] f=new int[100];
static int ff(int n)
{
if (f[n]==0||n==0)
{
if (n == 0 || n == 1) f[n]=n;
else
f[n]=ff(n-1) + ff(n - 2);

}
return f[n];
}
static int f1(int n)
{
f[0] = 0;f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];

}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)="+answer);
Console.WriteLine("array+recursion計算用"+(sw.ElapsedMilliseconds/1000.0)+"秒");
Console.Read();
}
}
}

B10813140邱東建 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833040徐嘉駿 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

B10833022 許家銘 提到...

1. Stopwatch用法
Stopwatch是Diagnostics方法裡的其中一種類別,Stopwatch提供一組方法和屬性,可以使用這些方法和屬性,精確地測量已耗用時間,Stopwatch可以設定以什麼方式計時,可設定計時開始與結束。

比如用Stopwatch計算費氏數列的計算時間,用法如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;//提供類別,允許您與系統處理序 (Process)、事件記錄檔和效能計數器互動。

namespace fib
{
class Program
{
static int[] f = new int[100];//叫出100個陣列
static int f0(int n)//原始費式數列算法
{
if (n == 0 || n == 1) return n;
else return f0(n - 1) + f0(n - 2);
}

static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();//呼叫Diagnostics方法
sw.Start();
int answer = f0(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("迴圈計算用" + sw.ElapsedMilliseconds / 1000.0 + "秒");//以毫秒為單位,設定計數方式
Console.Read();
}
}
}

2. 迴圈法計算費氏數列

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;//提供類別,允許您與系統處理序 (Process)、事件記錄檔和效能計數器互動。

namespace fib
{
class Program
{
static int[] f = new int[100];//叫出100個陣列
static int f1(int n)//迴圈算法
{
if (n == 0 || n == 1) return n;
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
return f[n];//回傳值
}

static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();//呼叫Diagnostics方法
sw.Start();
int answer = f1(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("迴圈計算用" + sw.ElapsedMilliseconds / 1000.0 + "秒");//以毫秒為單位,設定計數方式
Console.Read();
}
}
}

3. 有記憶的遞迴計算費氏數列
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;//提供類別,允許您與系統處理序 (Process)、事件記錄檔和效能計數器互動。

namespace fib
{
class Program
{
static int[] f = new int[100];//叫出100個陣列
static int f2(int n)//有記憶的遞迴算法
{
if (n == 0) return 0;
if (n == 1)
{
f[n] = 1;
}
if (f[n] == 0)
{
f[n] = f2(n - 1) + f2(n - 2);
}
return f[n];
}


static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();//呼叫Diagnostics方法
sw.Start();
int answer = f2(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("迴圈計算用" + sw.ElapsedMilliseconds / 1000.0 + "秒");//以毫秒為單位,設定計數方式
Console.Read();
}
}
}

B10833018 杜立笙 提到...

1.
Stopwatch類別重要的成員不外乎StartNew,Start,Stop,Reset,ElapsedTicks,與ElapsedMilliseconds。使用上,只要依序調用Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以獲取運行的耗費時間。逐漸耗費的時間,也只要開始→停止→…→開始→停止→經過的毫秒或經過的計時即可。



但在計算累積耗費時間時,也有人會用重置→開始→停止→加總→…這樣的方法來做。但這樣的做法會比較耗時,求得的值也會有誤差。

2.
使用系統;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Diagnostics;

命名空間ConsoleApp1
{
類Program
{
靜態int [] f =新int [100];
static int f0(int n)
{
if(n == 0 || n == 1)返回n;
否則返回f0(n-1)+ f0(n-2);
}
static int f1(int n)
{
if(n == 0 || n == 1)返回n;
f [0] = 0; f [1] = 1;
對於(int i = 2; i <= n; i ++)
f [i] = f [i-1] + f [i-2];
返回f [n];
}

static void Main(string [] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int答案= f1(45);
sw.Stop();
Console.WriteLine(“ f(45)” + answer);
Console.WriteLine(“ loop計算” +(sw.ElapsedMilliseconds / 1000.0)+“秒”);
Console.Read();
}
}
}

唐一渝 提到...

1.
Stopwatch類別重要的成員不外乎StartNew,Start,Stop,Reset,ElapsedTicks,與ElapsedMilliseconds。使用上,只要依序調用Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以獲取運行的耗費時間。逐漸耗費的時間,也只要開始→停止→…→開始→停止→經過的毫秒或經過的計時即可。



但在計算累積耗費時間時,也有人會用重置→開始→停止→加總→…這樣的方法來做。但這樣的做法會比較耗時,求得的值也會有誤差。

2.
使用系統;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Diagnostics;

命名空間ConsoleApp1
{
類Program
{
靜態int [] f =新int [100];
static int f0(int n)
{
if(n == 0 || n == 1)返回n;
否則返回f0(n-1)+ f0(n-2);
}
static int f1(int n)
{
if(n == 0 || n == 1)返回n;
f [0] = 0; f [1] = 1;
對於(int i = 2; i <= n; i ++)
f [i] = f [i-1] + f [i-2];
返回f [n];
}

static void Main(string [] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int答案= f1(45);
sw.Stop();
Console.WriteLine(“ f(45)” + answer);
Console.WriteLine(“ loop計算” +(sw.ElapsedMilliseconds / 1000.0)+“秒”);
Console.Read();
}
}
}

B10813027唐一渝 提到...

1.
Stopwatch類別重要的成員不外乎StartNew,Start,Stop,Reset,ElapsedTicks,與ElapsedMilliseconds。使用上,只要依序調用Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以獲取運行的耗費時間。逐漸耗費的時間,也只要開始→停止→…→開始→停止→經過的毫秒或經過的計時即可。



但在計算累積耗費時間時,也有人會用重置→開始→停止→加總→…這樣的方法來做。但這樣的做法會比較耗時,求得的值也會有誤差。

2.
使用系統;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Diagnostics;

命名空間ConsoleApp1
{
類Program
{
靜態int [] f =新int [100];
static int f0(int n)
{
if(n == 0 || n == 1)返回n;
否則返回f0(n-1)+ f0(n-2);
}
static int f1(int n)
{
if(n == 0 || n == 1)返回n;
f [0] = 0; f [1] = 1;
對於(int i = 2; i <= n; i ++)
f [i] = f [i-1] + f [i-2];
返回f [n];
}

static void Main(string [] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int答案= f1(45);
sw.Stop();
Console.WriteLine(“ f(45)” + answer);
Console.WriteLine(“ loop計算” +(sw.ElapsedMilliseconds / 1000.0)+“秒”);
Console.Read();
}
}
}

B10813027唐一渝 提到...

1.
秒錶類別重要的成員不外乎StartNew,Start,Stop,Reset,ElapsedTicks,與ElapsedMilliseconds。使用上,只要依序調用Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以獲取運行的耗費時間。 ,,也只要開始→停止→...→開始→停止→經過的數秒或經過的計時即可。



但在計算累積耗費時間時,也有人會用重置→開始→停止→加總→...這樣的方法來做但這樣的做法會比較耗時,求得的值也會有誤差。

2.
使用系統;
使用System.Collections.Generic;
使用System.Linq的;
使用System.Text;
使用System.Threading.Tasks;
使用System.Diagnostics;

命名空間ConsoleApp1
{
類程序
{
靜態int [] f =新int [100];
static int f0(int n)
{
if(n == 0 || n == 1)返回n;
否則返回f0(n-1)+ f0(n-2);
}
static int f1(int n)
{
if(n == 0 || n == 1)返回n;
f [0] = 0; f [1] = 1;
對於(int i = 2; i <= n; i ++)
f [i] = f [i-1] + f [i-2];
返回f [n];
}

static void Main(字符串[]參數)
{
秒錶sw =新的秒錶();
sw.Start();
int答案= f1(45);
sw.Stop();
Console.WriteLine(“ f(45)” +答案);
Console.WriteLine(“循環計算” +(sw.ElapsedMilliseconds / 1000.0)+“秒”);
Console.Read();
}
}
}

b10833084詹祐宗 提到...

Stopwatch類別重要的成員不外乎StartNew,Start,Stop,Reset,ElapsedTicks,與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。的時間,也只要開始→停止→…→開始→停止→經過的毫秒數或經過的計時即可。



但在計算累積耗費時間時,也有人會用重置→開始→停止→加總→...這樣的方法來做。但是這樣的做法會比較耗時,求得的值也會有誤差

。--------------------------------- -------------------------------------------------- --------

使用系統;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Diagnostics;

名稱空間費式係數
{
類Program
{
static int [] f = new int [100];
靜態整數f0(int n)
{
如果(n == 0 || n == 1)
返回n;
否則
返回f0(n-1)+ f0(n-2);
}
static int f2(int n)
{
if(n == 0)返回0;
如果(n == 1)
{
f [n] = 1;
返回f [n];
}
如果(f [n] == 0)
{
f [n] = f2(n-1)+ f2(n-2);
}
return f [n];
}
static int f1(int n)
{
if(n == 0 || n == 1)
返回n;
f [0] = 0;
f [1] = 1;
對於(int i = 2; i <= n; i ++)
{
f [i] = f [i-1] + f [i-2];
}
return f [n];
}
static void Main(string [] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
Console.WriteLine(f2(45));
sw.Stop();
Console.WriteLine(sw.ElapsedMilliseconds / 1000.0 +“ sec”);
Console.Read();
}
}
}

b10833070葉奕志 提到...

Stopwatch是診斷方法裡的其中一種類別,Stopwatch提供一組方法和屬性,可以使用這些方法和屬性,精確地測量已耗用時間,Stopwatch可以設定以什麼方式計時,可設定計時開始與結束。

比如用秒錶計算費氏數列的計算時間,用法如下:
使用系統;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Diagnostics程序; //提供類別,允許您與系統處理序(工序),事件記錄檔和效能計數器互動。

命名空間FIB
{
類節目
{
靜態INT [] F =新INT [100]; //叫出100個
靜態static int f0(int n)//原始費式數列算法
{
if(n == 0 || n == 1)返回n;
否則返回f0(n-1)+ f0(n-2);
}

static void Main(string [] args)
{
Stopwatch sw = new Stopwatch(); //呼叫診斷方法
sw.Start();
int答案= f0(45);
sw.Stop();
Console.WriteLine(“ f(45)=” + answer);
Console.WriteLine(“迴圈計算用” + sw.ElapsedMilliseconds / 1000.0 +“秒”); //以毫秒為單位,設置計數方式
Console.Read();
}
}
}

2.迴圈法計算費氏數列

使用系統;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用

名稱空間fib
{
類Program
{
static int [] f = new int [100]; //叫出100個堆棧
static int f1(int n)//迴圈算法
{
如果(n == 0 || n == 1)返回n;
f [0] = 0; f [1] = 1;
對於(int i = 2; i <= n; i ++)
{
f [i] = f [i-1] + f [i-2];
}
return f [n]; //回傳值
}

static void Main(string [] args)
{
Stopwatch sw = new Stopwatch(); //呼叫診斷方法
sw.Start();
int答案= f1(45);
sw.Stop();
Console.WriteLine(“ f(45)=” + answer);
Console.WriteLine(“迴圈計算用” + sw.ElapsedMilliseconds / 1000.0 +“秒”); //以毫秒為單位,設置計數方式
Console.Read();
}
}
}

3.
使用系統的具有記憶的遞歸計算費氏數列;
使用System.Collections.Generic;
使用System.Linq;
使用System.Text;
使用System.Threading.Tasks;
使用System.Diagnostics程序; //提供類別,允許您與系統處理序(工序),事件記錄檔和效能計數器互動。

命名空間FIB
{
類節目
{
靜態INT [] F =新INT [100]; //叫出100個
靜態static int f2(int n)//有記憶的遞歸算法
{
if(n == 0)返回0;
如果(n == 1)
{
f [n] = 1;
}
如果(f [n] == 0)
{
f [n] = f2(n-1)+ f2(n-2);
}
return f [n];
}


static void Main(string [] args)
{
Stopwatch sw = new Stopwatch(); //
調用Diagnostics方法sw.Start();
int答案= f2(45);
sw.Stop();
Console.WriteLine(“ f(45)=” + answer);
Console.WriteLine(“迴圈計算用” + sw.ElapsedMilliseconds / 1000.0 +“秒”); //以毫秒為單位,設置計數方式
Console.Read();
}
}
}

b10833020 黃俊浩 提到...

1.Stopwatch類別重要的成員不外乎StartNew、Start、Stop、Reset、ElapsedTicks、與ElapsedMilliseconds。使用上,只要依序呼叫Start→Stop→ElapsedMilliseconds或ElapsedTicks,就可以得到運行的耗費時間。要計算多段程式累計耗費的時間,也只要Start→Stop→…→Start→Stop→ElapsedMilliseconds或ElapsedTicks即可。

2.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

3.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConsoleApp1
{
class Program
{
static int[] f = new int[100];
static int f0(int n)
{
if (n == 0 || n == 1) return n;
else return f0(n- 1) + f0(n- 2);
}
static int f1(int n)
{
f[0] = 0; f[1] = 1;
for (int i = 2; i <= n; i++)
f[i] = f[i - 1] + f[i - 2];
return f[n];
}
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
int answer = ff(45);
sw.Stop();
Console.WriteLine("f(45)=" + answer);
Console.WriteLine("array+recursion計算用" + (sw.ElapsedMilliseconds / 1000.0) + "秒");
Console.Read();
}
}
}

Related Posts Plugin for WordPress, Blogger...

熱門文章