因為沒有數學,就沒有現在的計算機科學。所以,請務必學好數學!

2020-12-08 騰訊網

數學在計算機科學中的重要性

數學是一門工具性很強的科學,它與別的科學比較起來還具有較高的抽象性等特徵。起初是計算機科學工作者離不開數學,而數學工作者認為計算機對他們可有可無,但是現在是互相都離不開對方了,計算機也提高了數學工作者在人們心目中的地位,大部分的數學工作者開始認識到計算機的重要性,並越來越多地進入到計算機領域發揮作用。

但是隨著人工智慧、GPS(全球定位系統)等飛速的發展和計算機運算性能飛躍性的提升,計算機的優勢越來越深入到思維領域,於是計算機將高深的數學理論用到實際中來,十分有效地解決了許多實際問題,例如著名難題四色問題就是被計算機證明的。問題的求解過程中有許多具有實用價值的數學分支,如分析幾何、小波分析、離散數學、仿生計算、數值計算中的有限單元方法等。它讓人們知道電腦程式設計結合的就是數學知識和數學思想。

軟體編程是基於數學模型的基礎上面的,所以,數學是計算機科學的主要基礎,以離散數學為代表的應用數學是描述學科理論、方法和技術的主要工具。軟體編程中不僅許多理論是用數學描述的,而且許多技術也是用數學描述的。從計算機各種應用的程序設計方面考察,任何一個可在存儲程序式電子數字計算機上運行的程序,其對應的計算方法首先都必須是構造性的,數據表示必須離散化,計算操作必須使用邏輯或代數的方法進行,這些都應體現在算法和程序之中。

此外,到現在為止,算法的正確性、程序的語義及其正確性的理論基礎仍然是數理邏輯,或進一步的模型論。真正的程序語義是模型論意義上的語義。於是軟體編程思想運行的嚴密性、學科理論方法與實現技術的高度一致是計算機科學與技術學科同數學學科密切相關的根本原因。

從學科特點和學科方法論的角度考察,軟體編程的主要基礎思想是數學思維,特別是數學中以代數、邏輯為代表的離散數學,而程序技術和電子技術僅僅只是計算機科學與技術學科產品或實現的一種技術表現形式。

軟體編程與數學思維的聯繫

數學在計算機領域的發展

如今形形色色的軟體,都與數學有必然的聯繫,它們相互相成。例如,邏輯學在學科中的應用從早期的數理邏輯發展到今天的程序設計模型論;數學在學科中的應用從早期的抽象代數發展到今天的圖形學、工程問題方面;幾何學的應用從早期的二維平面計算機繪圖發展到今天的三維動畫軟體系統,並在與複分析的結合中產生了分形理論與技術;在遊戲、圖形軟體開發中引用了線性代數中大量的坐標變換,矩陣運算;在數據壓縮與 還原、信息安全方面引入了小波理論、代數編碼理論等。

軟體編程的思維定式

軟體編程的思維定式決定了一個人編程的水平,在編程過程中,數學思維清晰,編寫出來的程序讓人耳目一新。結合教學,通過調查分析,了解到超過85%的學生,他們在編程時是根據語法而編寫程序,完全脫離了軟體編程的思維,這種思維定式使得他們編寫的程序相當糟糕,沒有一點邏輯。

之所以造成這種軟體編程的思維,是因為他們平時對數學思維的培養不夠重視。很多學計算機的學生想:學高數,這有什麼用?

學線性代數有什麼用?學離散數學,有什麼用?於是他們很少去上這些課,馬馬虎虎,整天悶在寢室裡,玩玩遊戲,裝裝軟體,看看C語言。只知道概率問題和矩陣知識在其它課程上起到了互補作用,學的不是很深。

但是當他們看到>時,感到其中的內容對他們而言感覺相當的艱澀難懂,這時他們就隱約感覺到了數學思維的作用了。在此之前,他們不僅荒廢了大學的高等數學,連初中的初等數學也忘的好多,當他們進行高抽象思維時,確實感覺自己的思維已經很遲鈍了。

學計算機的學生之所以覺得《數據結構》這門課程很難,就是因為他們的數學思維鍛鍊的不夠!其實生活中有很多這樣的例子:

對於一個剛畢業的,編應用軟體的大學生,在編程中用到《線性代數》的矩陣時,恐怕便會想,在大學把線性代數學好就好了;

當在程序中用到動態鍊表、樹時,恐怕也會想「在大學時花點時間去學《數據結構》,會多麼的有意義」;當學數據結構時,恐怕也會想「學《離散數學》時為什麼要逃那麼多的課,要不然學離散的時候就會很輕鬆」。所以數學思維不夠,在軟體編程會有很多的疑慮,顯的有點縮手縮尾,而且寫的程序也不夠健全,缺乏邏輯。

軟體編程與數學思維的融合

很多專業人士覺得數學和軟體編程能力就像太極和拳擊,軟體編程能力很強就好比出拳速度很快很重,能直接給人以重擊;數學很好的話就好像一個太極高手,表面上看沒有太大的力量但是內在的能量是更強大的,但是好的拳擊手是越年輕越好,而太極大師都是資歷越深越厲害。所以數學是成就大師的必備能力,雖然很多學生看上去感覺沒有什麼用途,但是到了一定的水平之後就會體會它的力量了。

數學思維在軟體編程中的應用

目前很多出名的IT公司在筆試的時候,都會在程序設計題中考察應聘者的數學思維能力,因此,這應該引起廣大學生在平時的學習中注意鍛鍊自己的數學思維,有機會的話參加一下數學建模比賽,你便會有很深刻的體會 ---原來數學和計算機結合得這樣緊密。下面典型的代碼,在設計過程中充分的運用了數學思維。

題目一:從3個紅球,5個白球,6個黑球中任意取出8個球,且其中必須有白球,輸出所有可能的方案。

程序一:

#include "stdio.h"

void main()

{

int i,j,k; //I代表紅球,j代表白球,k代表黑球

printf("\n red write black\n");

for(i=0;i

for(j=1;j

{

k=8-i-j; //黑球的個數

if(k>=0&&k

{

printf("%3d,%3d,%3d",i,j,k); //輸出組成方案

}

}

}

從上面的例子中我們可以隱隱知道數學思維在軟體編程中的應用。儘管學習數學帶給計算機專業人士的回報大過常人,但現今社會裡每個人都能由此受益,是讓人們提高自己思維能力,變得聰穎的絕佳方法。這種思維能力能讓人們在各方面受益!但實際上,數學上功底紮實,在軟體編程上的優勢盡顯,項目的設計模式格外地優化,程序邏輯條理也格外地清晰。因為數學可以培養人的邏輯思維能力,而程序設計需要很強的邏輯思維能力。

這些讓我們深刻的體會到數學思維與軟體編程的耦合性,其實我們國家的計算機軟體水平的落後不是因為我們缺少程式設計師,而是因為缺乏懂數學的高質量的程式設計師。一個具有數學修養的程式設計師在寫代碼時更有可能寫出邏輯嚴密的最簡化的高質量代碼。而目前一些龍頭IT公司,比如微軟公司總裁比爾·蓋茨年青時就對數學很痴迷,而他們的項目經理,必須得具備超強的數學思維,而且有些還是數學專業的博士,從這也可以看出微軟公司對於數學人才的重視程度。

軟體編程的思想最重要是算法,而算法是建立在數學思維上的,其實說白了,程序只是一件衣服,算法才是它的靈魂,算法就來自於數學,沒有深厚的數學思維功底,是弄不懂算法的。所以,如果你想從事軟體編程,那麼就認真的培養自己的數學思維吧!

相關焦點

  • 數學在計算機科學中的重要性
    起初是計算機科學工作者離不開數學,而數學工作者認為計算機對他們可有可無,但是現在是互相都離不開對方了,計算機也提高了數學工作者在人們心目中的地位,大部分的數學工作者開始認識到計算機的重要性,並越來越多地進入到計算機領域發揮作用。
  • 高一數學沒有學好,高二就學不會?家長不要被孩子的藉口蒙蔽了
    最近很多家長來信,說自己的孩子跟自己說,自己高一的時候就沒有把數學學好,現在高二或者高三再去學習就來不及了。真的是這樣的嗎?到底高一的數學能不能決定你的未來兩年的數學基礎?是不是自己的孩子在找藉口欺騙作為家長的我們呢?這次課程咱們來給大家一一解答。
  • 學計算機專業,「數學」和「英語」不好能學好嗎?
    「聽說想要學計算機專業的話,數學成績和英語成績不好學起來會很吃力是真的嗎?我孩子明年參加高考,他說他想報考計算機專業,但是數學和英語的成績不太好,尤其是英語成績一直都沒有上過一百分,所以想問問如果這兩科成績不好,學計算機有沒有影響?」
  • 數學一般般,能學好計算機嗎?
    聽到很多人提問:XX,我數學成績一般般,能學好計算機嗎?答案顯然是肯定的。當然了,這也要看你所學的具體計算機專業,如果該專業不需要深入學習數學[例如計算機應用技術、網絡運維等],那應該是沒問題,但是需要深入學習數學的專業[例如人工智慧、信息工程等],則一般不建議學習計算機,不然學習會很吃力的。那麼,哪些計算機專業或編程中,需要學習一些數學知識呢?
  • 翻譯書籍《計算機科學與數學》
    之前看文章說學計算機繞不開的兩項技能:英語和數學,在此期間深刻體會到了其重要性。尤其是數學,我發現一般開發只需要中學數學知識就夠了,尤其是高中數學,當年只是為了高考,不知有何用,現在真要感謝高數的數學老師。當然搞人工智慧只有高中數學是不夠的,我想從事人工智慧行業的朋友應該對大學數學的作用有更深刻的認識。編程中兩項核心能力——抽象和邏輯能力,都可以通過紮實的數學訓練得到加強。
  • 如何學好高中數學
    數學是所有科學的基礎,數學是科學的皇冠。中學生將數學學好了,就沒有學不好的學科了。數學好,你選科就會左右逢緣,上大學專業隨你選。一. 現實中,很多高中生學數學會遇到下列各種疑惑和困難。一部分同學初中數學學的還好,進入高中卻學的很吃力。這是因為高中數學知識量大,進度快,縱橫聯繫廣。
  • 上了高中數學變難了,難道就真的沒有辦法學好嗎?
    九年義務教育階段,數學學起來真的挺容易,只要上課認真聽老師講課,作業認真完成,再加上細緻一點,考高分完全沒啥問題,差不多每個學生都能做到!但是到了高中就完全不是那麼回事了,想學好數學,除非少數有天賦的孩子,普通高中生幾乎都會拜倒在數學的難學之下。
  • 蘇步青:談談怎樣學好數學
    固然,現代數學涉及的問題範圍非常廣泛,要理解數學全盤的結構似乎尤為困難,但是事實並不這樣,因為數學各分支並不是孤立的、毫無聯繫的,而恰恰相反,代數、幾何、數學分析、拓撲等一類基礎知識相互關聯著,並且通過它們使數學的所有分支形成一個有機的整體。不但如此,由於現代物理學和其他科學的輝煌成就,又不斷地揭露出隱藏在數學與物理學等之間的密切關係。
  • 沒有女朋友,可能是因為你數學不好
    尋找兩名看起來富有激情的數學系女生,並進行同樣內容的訪談:你現在最需要什麼? (一名正在做數學題的數學系女生) 在漫長的數學歷史長河中,因為沒有草稿紙而引發的悲劇數不勝數。
  • 未來科學大獎花落山大青島校區,彭實戈教授獲得「數學與計算機科學獎」
    青島日報社/觀海新聞9月6日訊 今天,2020年未來科學大獎獲獎名單揭曉,共誕生4位獲獎人。「數學與計算機科學獎」獲獎者為中國科學院院士、山東大學教授彭實戈,大獎表彰他在倒向隨機微分方程理論、非線性Feynman-Kac公式和非線性數學期望理論中的開創性貢獻。彭實戈現在山東大學青島校區任教。彭實戈於1947年出生於山東。「我從小就喜歡數學。
  • 注意:有個學科寫著是信息,計算機,其實是個數學專業,慎考
    本來這個專業名稱叫計算數學,讓人一目了然,但為了吸引考生,就換了現在這個名字,其實實質是沒有變的。北大的信息與計算機科學專業北郵的這個課程還是很有北郵特色,有數學、計算機,另外信息方面的內容非常多,因為北郵的信息與通信工程是它的王牌專業,可以說是立校之本,因此每個學科能搭上邊的,都要學點信息方面的課程。南開的信息與計算機科學專業
  • 沒有天賦怎麼學好數學?一線名師分享最簡單的數學學習秘密
    數學是難住很多人的一門課,有些同學確實很努力很努力了,但每次考試想考90分都困難,總感覺自己沒有學習數學的天賦,到底怎麼樣學好數學呢?下面是新東方的崔路瑤老師分享的數學學習秘訣,非常實用。崔路瑤老師表示課本上的基礎知識一定要掌握住,指出任何一個知識點,要做到五秒鐘回答出來,只有我們最基礎的知識掌握住,做題的時候才是「有水之源」,基礎都沒有打好,就去大量做題,這樣肯定不可能學好數學的。2、數學也需要記憶。
  • 青少年對話數學與計算機科學獎獲獎人許晨陽
    王強:親愛的觀眾朋友們,還有線上直播的聽眾們,感謝大家犧牲了寶貴的午後時間,吃完了午餐之後,享受最玄妙、最美麗、最遙遠、最切近的精神盛宴,數學和計算機的盛宴,我是數學和計算機大獎的四位捐贈人之一,因為其他三位現在都忙,所以讓我來替他們掃盲。另外三個人是馬化騰、江南春和丁磊,他們當然在計算機和數學基礎上正在繁忙的工作。
  • 大學想學「計算機」專業,數學物理英語成績差能學得好嗎?
    其實計算機類專業的選擇比較多,不過都統稱為計算機類專業,很多高考生和家長其實也並沒有劃分的很細緻,畢竟也沒有哪個家長是真的會在高考之前過多地關注的。不過一千分享過,想要學好計算機專業的話,對有些學科的要求比較高,比如說數學、物理、英語等課程。
  • 李克正:怎樣學好數學?
    (6)數學是科學,所以學習數學應該用學習科學的方法,而不是用例如學習技術或法規的方法。(7)學習數學的過程不僅有知識的積累,而且有理念的提升,為了培養數學素質尤其需要因材施教。我們下面針對每個特點講得具體些,能否講完並不要緊,只希望同學們能看到一些要點。因此,如果有問題請隨時提出。
  • 青少年對話|2020未來科學大獎數學與計算機科學獎獲獎者彭實戈
    來源:新浪科技新浪科技訊 北京時間12月30日消息,青少年對話2020未來科學大獎獲獎者活動今日首播,2020年數學與計算機科學獎獲獎者彭實戈教授受邀出席,未來論壇機構理事單位代表、科大訊飛股份有限公司高級副總裁杜蘭主持本次活動。
  • 學好數學,需要理解數學的本質
    看大家在討論小學數學和奧數的內容後,她提出了自己的過來人經驗。根據我自己的學習經驗,確實如此。學好奧數,不等於學好數學;學好數學,不等於學好奧數。當然,這兩者可以同時學好,不過本質上不是一個東西。我的奧數水平很差,只在五年級的時候參與過一次奧賽尖子班海選,尖子班第一次培訓完考試就被刷下來了。
  • 中國科學院院士告訴你,怎樣才能學好數學?
    所以我希望數學文化發生改變,變成講道理的學問,變成講發明的科學。」現在有各種活動吸引我們,但是我覺得對於學習來說,這些只能起到輔助的作用。最重要的還是在課堂上學習,把正課學好。把小學的數學,最簡單的算術學好,把中學數學最簡單的代數和幾何學好,把大學的數學學好,就是把微積分和線性代數學好,這是最重要的。
  • 學好數學的方法20條 如何學好高中數學
    學好數學的方法20條 如何學好高中數學很多人說自己的數學成績不好,想知道怎麼提高高中數學的成績,有哪些提高數學成績的方法呢?下面小編為大家整理一些學好數學的方法,供參考!學好數學的20條方法總結1、把數學當成一門語言學習,學會每一個術語的用法,熟悉每一個符號的意義。
  • 小樂數學科普:數學與計算機科學2020年終總結-譯自量子雜誌
    計算機科學分支有時,科學成果是如此重要,許多學科被迫引起重視。一月份就有這種例子,一個簡單地稱為「 MIP * = RE」的地標性證明。由五位計算機科學家撰寫的論文證明,糾纏量子位計算的量子計算機可以從理論上驗證對一系列問題的答案。