網頁

2020年5月5日 星期二

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



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

63 則留言:

  1. b10833069 鍾秉哲2020年5月6日 上午10:13

    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();
    }
    }
    }

    回覆刪除
  2. B10833042謝孟修2020年5月6日 上午10:15

    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();
    }
    }
    }

    回覆刪除
  3. B10833010 戴俊瑋2020年5月6日 上午10:15

    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();
    }
    }
    }

    回覆刪除
  4. B10833011彭丙玉2020年5月6日 上午10:15

    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();
    }
    }
    }

    回覆刪除
  5. 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();
    }
    }
    }

    回覆刪除
  6. B10833043 彭律惠2020年5月6日 上午10:17

    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();
    }
    }
    }

    回覆刪除
  7. B10833073毛聖翔2020年5月6日 上午10:17

    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();
    }
    }
    }

    回覆刪除
  8. B10833047馮群赫2020年5月6日 上午10:18

    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();
    }
    }
    }

    回覆刪除
  9. B10833046王子榮2020年5月6日 上午10:18

    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();
    }
    }
    }

    回覆刪除
  10. B10833006 朱軒廣2020年5月6日 上午10:21

    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();
    }
    }
    }

    回覆刪除
  11. B10833148張詔明2020年5月6日 上午10:21

    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();
    }
    }
    }

    回覆刪除
  12. B10833046王子榮2020年5月6日 上午10:21

    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();
    }
    }
    }

    回覆刪除
  13. B10833050 張少豪2020年5月6日 上午10:21

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

    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();

    }
    }
    }

    回覆刪除
  14. B10833026鄭亞易2020年5月6日 上午10:21

    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();

    }
    }
    }

    回覆刪除
  15. A10833001林承君2020年5月6日 上午10:22

    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();
    }
    }
    }

    回覆刪除
  16. B10833034 彭仲麟2020年5月6日 上午10:23

    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();
    }
    }
    }

    回覆刪除
  17. B10833029 余柏翰2020年5月6日 上午10:23

    使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  18. b10833024 王翔緯2020年5月6日 上午10:23

    使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  19. 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();
    }
    }
    }

    回覆刪除
  20. b10833002田昌弘2020年5月6日 上午10:25

    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();
    }
    }
    }

    回覆刪除
  21. B10833001宋映嫺2020年5月6日 上午10:26

    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();
    }
    }
    }

    回覆刪除
  22. B10833096林建鈞2020年5月6日 上午10:27

    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();

    }
    }
    }

    回覆刪除
  23. b10833023 陳姿茹2020年5月6日 上午10:31

    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();
    }
    }
    }

    回覆刪除
  24. b10815089潘宥丞2020年5月6日 上午10:34

     使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  25. B10833030吳璟辰2020年5月6日 上午10:35

    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();
    }
    }
    }

    回覆刪除
  26. B10815106林子豪2020年5月6日 上午10:35

     使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  27. b10833027呂沂真2020年5月6日 上午10:37

    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();
    }
    }
    }

    回覆刪除
  28. B10833033 蔡孟頻2020年5月6日 上午10:37

    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();
    }
    }
    }

    回覆刪除
  29. B10833082 黃鈺淇2020年5月6日 上午10:38

    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();
    }
    }
    }

    回覆刪除
  30. B10833025 徐郁堂2020年5月6日 上午10:38

    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();
    }
    }
    }

    回覆刪除
  31. B10833004黃薰田2020年5月6日 上午10:44

    使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  32. D10811007 蘇鈺貽2020年5月6日 上午10:45

    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();
    }
    }
    }

    回覆刪除
  33. B10833012 何郁麒2020年5月6日 上午10:46

    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();
    }
    }
    }

    回覆刪除
  34. B10833031游凱程2020年5月6日 上午10:46

    使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  35. b10833037沈泉澔2020年5月6日 上午10:47

    使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  36. b10833014巫明憲2020年5月6日 上午10:48

    使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  37. b10833014巫明憲2020年5月6日 上午10:48

    使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  38. B10833083 夏湘琳2020年5月6日 上午10:50

    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();


    }
    }
    }

    回覆刪除
  39. B10833114 鍾杰廷2020年5月6日 上午10:51

    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();


    }
    }
    }

    回覆刪除
  40. B10833007林文瑋2020年5月6日 上午10:51

    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();
    }
    }
    }

    回覆刪除
  41. B10833041 黃柏凱2020年5月6日 上午10:51

    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();


    }
    }
    }

    回覆刪除
  42. B10833009 張恩齊2020年5月6日 上午10:52

    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();


    }
    }
    }

    回覆刪除
  43. B10833148 張詔明2020年5月6日 上午10:53

    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();


    }
    }
    }

    回覆刪除
  44. b10815036李宥陞2020年5月6日 上午10:53

    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();
    }
    }
    }

    回覆刪除
  45. 使用的時候需要引用 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();
    }
    }
    }

    回覆刪除
  46. b10833038陳冠傑2020年5月6日 上午10:53

    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();
    }
    }
    }

    回覆刪除
  47. b10833044范光祐2020年5月6日 上午10:54

    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();
    }
    }
    }

    回覆刪除
  48. b10833016余竺瑾2020年5月6日 上午10:54

    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();
    }
    }
    }

    回覆刪除
  49. b10833019葉劉辰2020年5月6日 上午10:54

    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();
    }
    }
    }

    回覆刪除
  50. b10815106林子豪2020年5月6日 上午10:55

    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();
    }
    }
    }

    回覆刪除
  51. B10833072吳仲倫2020年5月6日 上午10:57

    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();
    }
    }
    }

    回覆刪除
  52. 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();
    }
    }
    }

    回覆刪除
  53. B10815088 徐仁祥2020年5月6日 上午11:35

    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();
    }
    }
    }

    回覆刪除
  54. B10813140邱東建2020年5月6日 上午11:39

    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();
    }
    }
    }

    回覆刪除
  55. B10833040徐嘉駿2020年5月6日 上午11:39

    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();
    }
    }
    }

    回覆刪除
  56. B10833022 許家銘2020年5月6日 上午11:49

    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();
    }
    }
    }

    回覆刪除
  57. B10833018 杜立笙2020年6月6日 晚上9:29

    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();
    }
    }
    }

    回覆刪除
  58. 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();
    }
    }
    }

    回覆刪除
  59. B10813027唐一渝2020年6月16日 晚上9:50

    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();
    }
    }
    }

    回覆刪除
  60. B10813027唐一渝2020年6月16日 晚上9:57

    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();
    }
    }
    }

    回覆刪除
  61. b10833084詹祐宗2020年6月17日 上午9:41

    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();
    }
    }
    }

    回覆刪除
  62. b10833070葉奕志2020年6月17日 上午9:42

    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();
    }
    }
    }

    回覆刪除
  63. b10833020 黃俊浩2020年6月17日 上午9:57

    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();
    }
    }
    }

    回覆刪除

HTML 編輯器