Saturday, January 29, 2011

CPP_Class Summation of Matrix ( A+B )

//Code:
//==============================================

#include<iostream>
#include<stdio.h>
#define max 10
using namespace std;

class Matrix
    {   private:
                int r,c,i,j,MA[max][max],MB[max][max],MC[max][max];
        public:
                void InputDimention (void)
                {   cout<<"Summation of Matrix\nInput your Matrix's Demintion\n";
                    cout<<"Number of row    : ";cin>>r;
                    cout<<"Number of column : ";cin>>c;
                    cout<<"\n->The Dimention of Matrix is ("<<r<<"x"<<c<<")\n";
                }
                void InputMatrix(void)
                {   char NameMatrix;
                    cout<<"\nSelect Matrix A or B : ";
                    cin>>NameMatrix;
                    cout<<endl;
                    if (( NameMatrix =='A')||(NameMatrix=='a'))
                        {for (i=1;i<=r;i++)
                            for(j=1;j<=c;j++)
                                {   cout<<"A["<<i<<"]["<<j<<"] : ";
                                    cin>>MA[i][j];
                                }
                         cout<<"Matrix "<<NameMatrix<<" is :\n";
                         for (i=1;i<=r;i++)
                            {   cout<<"|\t";
                                for(j=1;j<=c;j++)
                                {  cout<<MA[i][j]<<"\t";  }
                                cout<<"|\n\n";
                            }
                        }
                    else
                        {for (i=1;i<=r;i++)
                            for(j=1;j<=c;j++)
                                {   cout<<"B["<<i<<"]["<<j<<"] : ";
                                    cin>>MB[i][j];
                                }
                         cout<<"Matrix "<<NameMatrix<<" is :\n";
                         for (i=1;i<=r;i++)
                            {   cout<<"|\t";
                                for(j=1;j<=c;j++)
                                {  cout<<MB[i][j]<<"\t";  }
                                cout<<"|\n\n";
                            }
                        }

                }
                void OutputSumMatrix(void)
                {   cout<<"-----Summation of Matrix A & B :----- \n\n";
                    for (i=1;i<=r;i++)
                            {   cout<<"|\t";
                                for(j=1;j<=c;j++)
                                {
                                    MC[i][j]=MA[i][j]+MB[i][j];
                                    cout<<MC[i][j]<<"\t";
                                }
                                cout<<"|\n\n";
                            }
                }


    };
int main()
{   Matrix Obj;
    Obj.InputDimention();
    Obj.InputMatrix();
    Obj.InputMatrix();
    Obj.OutputSumMatrix();
    return 0;
}

Friday, January 28, 2011

MathCom_Number Theory-Summeries

The Integers and Division :
     a,b belong to Z {a!=0}
     a|b  ==>  b=a×k  , k is integer
     a : factor / divisor
     b : multiple        
  Ex: 77|7    False {7=77×?}
        7|77    True {77=7*10}
        0|24    Flase {24=0×?}
        24|0    True {0=24×0}
      *Theorem : All a,b,c belong to Z
        1.a != 0  ==> a|0  and a|a
        2.(a|b and a|c) ==> a|(b+c)
        3.a|b ==> a|bc
        4.(a|b and b|c) ==> a|c
        5.[a|(b+c) and a|b] ==> a|c
Prime Number {จำนวนเฉพาะ}{ចំនួនបឋម}
     Prime is p , p > 1
     Prime is the number that has only 1 & itself as divisor / factor
     Beside of Prime number are Composite number {จำนวนประกอบ}
     Prime Factorization : is making the positive integers to equal the multiply by some Prime numbers
           Ex: 100 = 2×2×5×5=2²×5²
    Alogrithm of PrimeNumber:
    --------------------------------------------------------------------------
    boolean isPrime(integer n)
         if ( n < 2 ) return false
         for ( i = 2 to n-1 )
              if ( i|n )  {if n divide by i no left remainder}
                     return false
         return true
    --------------------------------------------------------------------------
The Division
        Theorem :
               (a-r)/d = q
               a = d×q+r   and 0 <= r <= |d|
               a : dividend / ตัวตัง /​​ តំណាងចែក
               d : divisor {d != 0} / ตัวหาร​/  តួចែក
               q : quotient / ผลหาร​ / ផលចែក
               r : remainder / เศษ​​ / សំណល់
Greatest Common Divisor { gcd(x,y) } ตัวหารรวมมาก តួចែករួមធំបំផុត
         gcd(a,b) = d = max(d: d|a and d|b) <=> d|a and d|b and All e belong to Z ,(e|a and e|b) ==> d >= e
         gcd(a,b) = {min of multiply of prime numbers of a & b}
                     Ex : gcd(20,15) = ?
                           20 = 2×2×5 = 2²   × 3^0 × 5
                           15 = 3×5     = 2^0 × 3    × 5
                           gcd(20,15) = 2^0 × 3^0× 5 = 5 #

Wednesday, January 26, 2011

MathCom_Algorithms_Exercise with Answer

แบบฝึกหัด
Algorithms
1. จงสร้าง algorithm เพื่อหาผลบวกของเลขจำนวนเต็มทุกตัวในรายการ(List)
-----------------------------------------------------------------
procedure Summation List(A1,A2,A3,.......,An : integers)
             sum := A1 {set sum equal the value of first element}
             for  i := 2 to n
                   sum := sum+Ai    {sum is the summation of all elements}
             return sum   {copy value of sum to function above}
-----------------------------------------------------------------

2.จงเขียน algorithm เพื่อเปลี่ยนค่าตัวแปร x และ y โดยใช้การกำหนดค่า (assignments) เพียงอย่างเดียว และตอบว่าต้องใช้การ
กำหนดค่ากี่ครั้ง
-----------------------------------------------------------------
procedure exchange value (x,y : integers)
             A := x     { 1times }
             x := y      { 1times }
             y := A     { 1times }
-----------------------------------------------------------------
     Answer : Time Complexity is 3 times
-----------------------------------------------------------------
3.จงเขียน algorithm เพื่อหาตำแหน่งของตัวเลขที่มีค่ามากที่สุดตัวเลขแรกในลิสต์ของจำนวนเต็ม โดยเลขจำนวนเต็มในลิสต์อาจซ้ำกันได้
-----------------------------------------------------------------
procedure location of max(A1,A2,A3,......,An : integers)
     max := A1 {set max equal the first element}
     for   i := 2  to  n   {do loop location of element from 2 to n}
           if   Ai > A1   then  max := Ai {consider to the value of max} 
     location := i   {copy location of max element}
     return location 
-----------------------------------------------------------------
4.จงเขียน algorithm ที่จะนับจำนวนเลข 1 ในบิตสตริงโดยพิจารณาแต่ละบิตของสตริงเพื่อตรวจสอบว่าเป็นเลข 1 หรือไม่       
-----------------------------------------------------------------
procedure Number of 1digit(A0,A1,A2,.....,An-1:character)
     {string array of An-1 = \o is NULL so we didn't count it}
     count := 0
     for i := 0 to n-2
           if Ai := 1 then count := count + 1 {add to count 1 if Ai = 1}
     return count
-----------------------------------------------------------------
5.จงแสดงว่าฟังก์ชั่นที่กำหนดให้ ข้อใดเป็น O(x2)
    a.f(x)=17x+11

-----------------------------------------------------------------
method of Big-O : |f(x)|<=c×|g(x)| ; x>=k
17x+11 <= c×x²  ;  x>=k
17x+11 <= 17x²+11x²   when x >=1
17x+11 <= 28x²  when  x >=1
=> c = 28 , k = 1
So : f(x) = 17x+11เป็น O(x2) #
-----------------------------------------------------------------
   b.f(x)= x2+1000
-----------------------------------------------------------------
method of Big-O : |f(x)|<=c×|g(x)| ; x>=k
x²+1000 <= c×x² when x >= k
x²+1000 <= x²+1000x² when x >= 1
x²+1000 <= 1001x² when x >= 1
=> c = 1001 , k = 1
So : f(x) = x²+1000เป็น O(x2) #
-----------------------------------------------------------------
   c.f(x)=x4/2
-----------------------------------------------------------------
we knew that f(x) is not big-o of x² so we use converse proof by 
proof x²=O(f(x)) if true mean that f(x) != O(x²) :
method of Big-O :
 x² <= c×x4/2 when x >= k
 x² <= 2×x4/2 when x >= 1
=> c = 2 , k = 1
So : f(x) = x4/2ไม่เป็น O(x2) #
-----------------------------------------------------------------
6.จงแสดงว่า 10n+8 เป็น O(n)
-----------------------------------------------------------------

method of Big-O :
10n+8 <= c×n when x >= k
10n+8 <= 10n+8n when x >= 1
10n+8 <= 18n when x >= 1
=> c = 18 , k = 1
So : 10n+8 เป็น O(n) #
-----------------------------------------------------------------

7.จงแสดงว่า n2+1 เป็น O(n2)
-----------------------------------------------------------------

method of Big-O :
n²+1 <= c×n² when x >= k
n²+1 <= n²+n² when x >= 1
n²+1 <= 2n² when x >= 1
=> c = 2 , k = 1
So : n²+1 เป็น O(n²) #
-----------------------------------------------------------------
8.จงแสดงว่า f(n) = n2 + 2n + 1 เป็น O(n2)
-----------------------------------------------------------------


method of Big-O :
n²+2n+1 <= c×n² when x >= k
n²+2n+1 <= n²+2n²+n² when x >= 1
n²+2n+1 <= 4n² when x >= 1
=> c = 4 , k = 1
So : n²+2n+1 เป็น O(n²) #
-----------------------------------------------------------------
9.จงแสดงว่า f(n) = 4n3+2n2+n+5 คือ O(n3)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
-----------------------------------------------------------------
method of Big-O :
4n³+2n²+n+5 <= c×n³ when x >= k
4n³+2n²+n+5 <= 4n³+2n³+n³+5n³ when x >= 1
4n³+2n²+n+5 <= 12n³ when x >= 1
=> c = 12 , k = 1
So : 4n³+2n²+n+5 เป็น O(n³) #
-----------------------------------------------------------------

MathCom_Algorithm_CrowthOfFunction-Summeries



Big-O notation : 
f(n) = O[g(n)] { f(n) เป็น Big-O ของ g(n) }
|f(n)| <= c×|g(n)| เมื่อ n >=k
ถ้า f(n) เป็นบวกทุก n
นั้นสามารถเขียน f(n) <= c×g(n) เมื่อ n >=k
Ex: f(n)=An³+Bn²+Cn+D = O(n³) ?
An³+Bn²+Cn+D <= c×n³ เมื่อ n >=k
An³+Bn²+Cn+D <= An³+Bn³+Cn³+Dn³ เมื่อ n >= 1 
An³+Bn²+Cn+D <= (A+B+C+D)n³ เมื่อ n >= 1
==> c = (A+B+C+D) ; k = 1
So : f(n) = O(n³)
Note : A(n^z)+........ = O(n^m) <=> m >= z 
{หมายความว่า ถ้า A(n^z)+........Big-O ของ n^m ต่อเมื่่อ m >= z   }
Comparision of Big-O {การเปลียบเทียบของBig-O}
{ O(1) <= O(log n) <= O(n) <= O(n×log n) <= O(n²) <= O(n^k) <= O(2^n) }

Summation , Multiply of Function with Big-O {การคูณและบวก}
f1(n) = O(g1(n)) and f2(n) = O(g2(n)) ==> f1(n)+f2(n) = O(max{g1(n),g2(n)}) 
f1(n) = O(g1(n)) and f2(n) = O(g2(n)) ==> f1(n)×f2(n) = O({g1(n)×g2(n)}) 


MathCom_Sequences-Summeries


MathCom_Function-Summeries





MathCom_Sequencse_Example with Answer

แบบฝึกหัด
Sequence, Summation และ Mathematical Induction

  1. จงเขียนสูตรของชุดลำดับเลขจำนวนเต็มต่อไปนี้
    1. 15,8,1,-6,-13,-20,-27,...     d=-7 ; a=15 => An=15-(n-1)7 , n>=1
    2. 2,16,54,128,250,432,686,...  An=2n³ , n>=1
    3. 3,6,12,24,48,96,192,...  r = 2 ; a = 3 => An=ar^(n-1) , n>=1
    4. 3,6,11,18,27,38,51,66,83,102,...  An=3+(n²-1) , n>=1
  2. จงหาสูตรของชุดลำดับเลขจำนวนเต็มต่อไปนี้ พร้อมทั้งหาผลรวมของชุดลำดับจากสูตรที่หาได้
    1. 4,12,36,108,324,972 a = 4 , r = 3 ; An=4×3^(n-1) ;S{i=1 to 6}Ai = 4(3^6-1)/(3-1)
    2. 399,391,383,375,367,359,351,343 d=-8 ; a = 399 ; An=399-8(n-1) ; S{i=1 to 8}Ai = 8(2×399-8(8+1))/2
  3. จงหาค่าต่อไปนี้





4.จงพิสูจน์โดยใช้วิธีอุปนัยเชิงคณิตศาสตร์(Mathematical Induction)
    a)  จงพิสูจน์ว่า  1+ 2 + 3 +…+ n  = n ( n + 1)/2  สำหรับทุก ๆ จำนวนเต็มบวก n
    b)  จงแสดงว่า  3 + 3.5 + 3.52 + … + 3.5n  = 3(5 n + 1 - 1)/4  เมื่อ n เป็น nonnegative number
    c)  จงแสดงว่า  12 + 22 + 32 +…+n2  =  n(n +1)(2n + 1)/6 เมื่อ n เป็นจำนวนเต็มบวกใดๆ
    d)  จงแสดงว่า  1.1! + 2.2! + 3.3! + … + n.n!  =  (n + 1)! - 1 เมื่อ n เป็นจำนวนเต็มบวกใดๆ
    e)  จงแสดงว่า  2n < n!  เมื่อ n เป็นจำนวนเต็มบวกใดๆที่มากกว่า 4
    f)  จงแสดงว่า  n! < nn  เมื่อ n เป็นจำนวนเต็มบวกใดๆที่มากกว่า  1
    g)  จงแสดงว่า  1.2 + 2.3 + 3.4 + …+ n(n+1)  =   n(n+1)(n + 2) / 3  เมื่อ n เป็นจำนวนเต็มบวกใดๆ
    h)  จงพิสูจน์ว่า  7  ê(23n-1) สำหรับ n ทุกตัวที่เป็นจำนวนเต็ม
    i)  จงพิสูจน์ว่า 2+22+23+ … +2n = 2n+1- 2  สำหรับทุกจำนวนเต็ม n³1
        

















    MathCom_Function_Example with Answer

    แบบฝึกหัด
    ฟังก์ชัน(Function)

    1. จงพิจารณาว่าเซตใดต่อไปนี้เป็นฟังก์ชัน เมื่อกำหนดให้โดเมนและโคโดเมนของทุกเซตเป็นจำนวนจริง
    a.              {(x,y)| y = x+3} 
    b.             {(x,y)| y = x2+3x-2}
    c.              {(x,y)| x = 7}
    d.             {(x,y)| x = y+1}
    Answer :
    1. ให้ X = {1,2,3,4} จงพิจารณาว่าความสัมพันธ์ต่อไปนี้ข้อใดเป็นฟังก์ชันจาก X ไป X
    a.              f = {(2,3),(1,4),(2,1),(3,2),(4,4)} ไม่ใช่ฟังก์ชัน เพราะ (2,3),(2,1) มี pre-image ตัวเดียวกัน
    b.             g = {(3,1),(4,2),(1,1)} ไม่ใช่ฟังก์ชัน เพราะ pre-image {2​} ไม่ได้เลื่อกมาใช้เลย
    c.              h = {(2,1),(3,4),(1,4),(2,1),(4,4)}  เป็นฟังก์ชัน
    1. เมื่อกำหนดให้โดเมนและโคโดเมนของทุกเซตเป็นจำนวนจริง จงวาดกราฟของ
    a.              f(x) = x2 + x – 6

    b.             g(x) = x3 – x +3


    1. จงตรวจสอบว่าฟังก์ชัน จากเซต R ไป R ต่อไปนี้เป็นฟังก์ชันแบบ bijection หรือไม่พร้อมทั้งให้เหตุผลประกอบอย่างชัดเจน
    a.              f(x) = 2x + 1
    b.             f(x) = x2 + 1
    c.              f(x) = (x2 + 1)/( x2 + 2)

    1. จงหา  fog และ gof  เมื่อ f(x) = x2 + 1 และ g(x) = x + 2 เป็นฟังก์ชัน จากเซต Rไป R
    2. จงพิจารณาว่าฟังก์ชันต่อไปนี้เป็นฟังก์ชันจาก {a, b, c, d}ไปยังตัวมันเอง แบบหนึ่งต่อหนึ่งหรือไม่ เพราะเหตุใด
    a.              f(a) = b, f(b) = a, f(c) = c, f(d) = d
    b.             f(a) = b, f(b) = b, f(c) = d, f(d) = c
    c.              f(a) = d, f(b) = b, f(c) = c, f(d) = d
    Answer

    1. จงพิจารณาว่าฟังก์ชันต่อไปนี้ซึ่งเป็นฟังก์ชันจาก Z ไปยัง  Z  เป็นฟังก์ชันหนึ่งต่อหนึ่งหรือไม่ เพราะเหตุใด
    a.              f(x) =x-1
    b.             f(x) = x2-1
    c.              f(x) = x3
    d.             f(x) =éx/2ù
    Answer :
    1. ให้ f: RàR ถูกนิยามโดย f(x) = 2x – 3, f เป็น one-to-one และ onto ดังนั้น f สามารถหาผกผันได้(Inverse function) จงหา f -1(x)
    2. กำหนดให้ S = {-1, 0, 2, 4, 7} จงหา  f(S) ถ้า
    a.              f(x) = 1
    b.             f(x) = 2x+1
    c.              f(x) = éx/5ù
    d.             f(x) = ë(x2+1)/3û
    1. ให้ฟังก์ชัน f และ g ถูกนิยามโดย f(x) = 2x + 1 และ g(x) = x2 – 2 จงหา gf
    2. กำหนดให้ f(x) = x2+1 และ g(x) = x+2 เป็นฟังก์ชันจาก R ไปยัง  R จงหา
    a.              f g
    b.             g f
    c.              f + g
    d.             f ∙ g
    1. ให้ f: AàB และ g: BàC ถูกนิยามดังรูป จงหา gf:AàC
    1. ให้ f:AàB, g:BàC และ h:CàD
    a.              จงหาว่าแต่ละฟังก์ชันใดเป็น onto
    b.             จงหา hgf
    1. กำหนดให้ f(x) = x และ g(x) = x+1 เป็นฟังก์ชันจาก R ไปยัง  R จงหา
    a.              f(g(2))
    Answer :
    b.             g(f(4))
    c.              g(g(1))
    d.             g(f(f(16)))
    1. จงหา
    a.              ë 7.5 ûë -7.5 ûë -18 û
    b.             é 7.5 ù ; é -7.5 ù ; é -18 ù
    Answer :
    1. จงวาดกราฟของฟังก์ชัน f(x) = éxù + ëx/2û ซึ่งเป็นฟังก์ชันจาก R ไปยัง  R