數學與程式  
     
     
  邏輯思維  
     
    邏輯的起源    
             
      邏輯是個很抽象的名詞,這個詞彙最早源自於希臘,古希臘已經發展出訓練邏輯的方法,主要就是幾何原本,我們將古希臘的研究者稱為哲學家,因為在那時所有的科學都是哲學家們進行發展,包括了社會學、心理學、數學等等,在後續的發展中才逐漸演變出各式各樣的專門科學,所以我們一般也都將古希臘哲學稱為科學之母。      
             
      邏輯(英語:logic)的字根源起於希臘語邏各斯(希臘語:λόγος),最初的意思有詞語、思想、概念、推理、論點之意。後譯為(法語:logique),最後發展為英文中的邏輯(英語:logic)。      
             
    甚麼是邏輯    
      以維基百科中的解釋,邏輯被說明如下:      
             
      邏輯(古希臘語:λογική;德語:Logik;法語:logique;英語:logic;義大利語、西班牙語、葡萄牙語: logica),又稱理則、論理、推理、推論,是對有效推論的哲學研究[1]。邏輯被使用在大部份的智能活動中,但主要在心理、學習、哲學、語義學、數學、推論統計學、腦科學、法律和電腦科學等領域內被視為一門學科。邏輯討論邏輯論證會呈現的一般形式,哪種形式是有效的,以及其中的謬論。      
      邏輯通常可分為三個部份:歸納推理、溯因推理和演繹推理。      
      在哲學裡,邏輯被應用在大多數的主要領域之中:形上學/宇宙論、本體論、知識論及倫理學。      
      在數學裡,邏輯是指形式邏輯和數理邏輯,形式邏輯是研究某個形式語言的有效推論[2]。主要是演繹推理。 在辯證法中也會學習到邏輯[3]。數理邏輯是研究抽象邏輯關係和數學基本的問題。      
      在心理、腦科學、語義學、法律裡,是研究人類思想推理的處理。      
      在學習、推論統計學裡,是研究最大可能的結論。主要是歸納推理、溯因推理。      
      在電腦科學裡, 是研究各種方法的性質,可能性,和實現在機器上。主要是歸納推理、溯因推理,也有在歸納推理的研究。      
      從古文明開始(如古印度[註 1]、古中國[註 2]和古希臘)都有對邏輯進行研究。在西方,亞里斯多德將邏輯建立成一門正式的學科,並在哲學中給予它一個基本的位置。      
             
    邏輯的簡單解釋    
      到了這裡,邏輯這個詞彙仍然是充滿抽象的,我們可以試圖以更簡單的概念來說明,邏輯是甚麼:      
             
      邏輯是一步一腳印的思考。      
      邏輯是一個蘿蔔一個坑的思考。      
      邏輯是因為……所以……的思考。      
             
      在邏輯的思考中,都一定有一個確定的理由,才會產生後續的結果,也就是我們一般所說的科學精神,在科學中所有的學科都講究這樣的邏輯概念,我們才能得到不變的真理,數學也自然必須符合這樣的邏輯精神。      
             
    數學的思考邏輯    
             
      我們將幾何學稱為數學之母,因為最早的數學是由幾何發展而來的,在幾何學中已經發展出了邏輯性的思考與驗證的方法,也經常被用來訓練邏輯思考。      
      下面是幾何學中的畢氏定理(勾股定理)證明,畢氏定理目前有超過400種的證明方法,我們列舉了古希臘哲學家歐幾里得在幾何原本一書中證明的方法:      
             
           
             
     

     
     

在這個證明中,我們可以看到每一個步驟,都是因為….所以….的論述方式,也就是一步一腳印地證明,完全以邏輯的思考方式來進行。

     
             
    程式的思考邏輯    
      我們以氣泡排序法(Bubble Sorting)來說明程式中邏輯思考的例子。      
             
      氣泡排序法是逐步地將相臨的資料互相比較,若發現前面的資料比後面的資料大時,就將資料互換。依次由左至右,會像氣泡般依次將最小的數字後往前浮起,最後所有的資料將會依照由小至大的順序排列。      
      在這個例子中,我們需要整理出氣泡排序法的原則性,然後依照原則性推敲程式進行的各個步驟,也需要考慮在這樣的步驟中是否會發生錯誤的狀況,讓程式執行能夠完全正確,不會有錯誤發生。      
             
    氣泡排序法的思考步驟:    
             
           
     

 

     
    氣泡排序法的流程圖    
      撰寫程式時,我們會利用流程圖的方式來幫助我們整理思考,讓邏輯清晰而正確。      
             
      下面的例子中,我們利用流程圖來一步一步地思考程式執行的步驟,並且容易看出可能的錯誤狀況。      
             
     

     
             
    氣泡排序法的程式碼    
             
           
     

 

     
  簡化運算、提升效率  
             
    數列與級數    
             
      我們經常使用的例子為加總,將若干項的數字累加計算出總和。      
             
           
             
      在級數中,我們必須對每一項的數字累加計算,所以我們需要計算n次,才能得到結果。      
             
           
             
      上面的級數經由數學的整理後,能夠得到一個加總的公式,在加總公式中,我們只需要進行3次的計算就能夠得到加總的結果。      
             
           
             
      利用此類的數學公式,我們能夠以很少的計算次數,得到我們需要的結果。      
             
    簡化的方程式    
             
      典型的例子是傅立葉轉換(Fourier Transform),數學上發展出很多種傅立葉轉換的計算方式,如離散傅立葉轉換(Discrete Fourier Transform,簡稱DFT)以及快速傅立葉轉換(Fast Fourier Transform,簡稱FFT),這兩者需要的計算次數就差異很大,如下表示一個以硬體執行計算的例子,標示出DFT與FFT的計算次數,在執行512個輸入樣本數的情形下,DFT需要262144次的執行次數,FFT則只需要2304次。這表示使用FFT計算時只需要使用DFT時的1/113的時間      
     

 

     
           
     

 

     
           
     

 

     
  實用的數學方法  
             
      程式中為了某些特定的目的,會直接使用數學的模型來達成目的,例如我們需要計算加總,我們就會直接利用級數的加總公式,我們想要計算平均數,就會利用統計的各種計算平均值的公式,在撰寫程式的時候,我們可以利用各式各樣的數學公式,就能夠較為專注在程式的其他判斷或式處理上,讓撰寫程式變得更有效率。      
             
    常見使用於程式中的數學    
             
      以下列舉了一些較為常見使用在程式中的的數學領域,也是一般會在高中大學時學習到的數學,如果能夠對這些數學有更多了解,能夠大幅增加程式撰寫的功力。      
             
        1.多元多次方程式      
        2.三角函數      
        3.級數      
        4.微積分      
        5.線性代數      
        6.離散數學      
        7.機率      
        8.統計      
               
             
             
             
     
     
     
     
     
     
     
     
     
   

威宇嵌入式科技股份有限公司

新北市三峽區愛國路198號1樓

電話 : 02-26737160 傳真 : 02-26738712

 

 

CopyRight Cat Embedded Vision System Co.,Ltd. ,All rights reserved.

 
 

樹莓派 Pythonx Raspberry Pi 教學 課程機器人教學套件 電子套件 電路套件 電子實習 電學套件 避障車 108課綱 程式設計 創客 智慧機器人 彈性自主學習 積木套件 益智玩具 演算法 校園營隊 社團活動 編程 多元學習 DIY 平價套件 CEVT 科學教育實作 積木教材 教學資源線上下載 應用教學 BBC 機構組裝電路程式手冊 Python程式教學 MicroBit教學 自動控制 電機 資工 機械 MicroBit套件課程 PT套件 MicroBit演算法 自動控制概論程式技巧 教學套件 感測及控制元件機器人 教學套件 電子套件 電路套件 電子實習 電學套件