⑴ 離散數學基本知識
離散數學是數學的幾個分支的總稱,以研究離散量的結構和相互間的關系為主要目標,其研究對象一般地是有限個或可數無窮個元素;因此它充分描述了計算機科學離散性的特點.內容包含:數理邏輯、集合論、代數結構、圖論、組合學、數論等.《離散數學》課程簡介 離散數學是計算機專業的一門重要基礎課.它所研究的對象是離散數量關系和離散結構數學結構模型.由於數字電子計算機是一個離散結構,它只能處理離散的或離散化了的數量關系,因此,無論計算機科學本身,還是與計算機科學及其應用密切相關的現代科學研究領域,都面臨著如何對離散結構建立相應的數學模型;又如何將已用連續數量關系建立起來的數學模型離散化,從而可由計算機加以處理.離散數學課程主要介紹離散數學的各個分支的基本概念、基本理論和基本方法.這些概念、理論以及方法大量地應用在數字電路、編譯原理、數據結構、操作系統、資料庫系統、演算法的分析與設計、人工智慧、計算機網路等專業課程中;同時,該課程所提供的訓練十分有益於學生概括抽象能力、邏輯思維能力、歸納構造能力的提高,十分有益於學生嚴謹、完整、規范的科學態度的培養.
離散數學主要包括四個方面邏輯學集合論,代數結構,圖論,直接用來解決一些實際的問題的,比較少,因為它是一門計算機專業的理論基礎課,解決實際問題,你看哪些方面的問題了,
下面我舉一些例子:
1 數據結構,這是計算機專業的一門重量級課程,而離散數學里裡面的圖論,就是數據結構裡面圖和樹的理論基礎!像一些經典的演算法,在數據結構里會學到,其實,它們在圖論里就被研究得很透!
2.關系資料庫,不用說,它的理論基礎----關系代數,就是離散數學的一個分支!
3.在計算機網路原理裡面,有一些路由選擇演算法之類 的,像最短路徑演算法等,都是離散數學里圖論的應用,都是一些經典的演算法!
4.更深層次的,像人工智慧等學科,都是以離散數學做為理論基礎的,
所以,離散數學是計算機的一個理論基礎,
至於你在編程中解決的問題,那應該是數據結構和演算法的應用,因為這門課就是離散數學的理論,加上在計算機上的存儲以及操作實現的~~
⑵ 數據結構用到離散數學的 哪些知識
一、語言是最重要的基本功
無論側重於什麼方面,只要是通過計算機程序去最終實現的競賽,語言都是大家要
過的第一道關。亞洲賽區的比賽支持的語言包括C/C++與JAVA。筆者首先說說JAVA,眾所
周知,作為面向對象的王牌語言,JAVA在大型工程的組織與安全性方面有著自己獨特的
優勢,但是對於信息學比賽的具體場合,JAVA則顯得不那麼合適,它對於輸入輸出流的
操作相比於C++要繁雜很多,更為重要的是JAVA程序的運行速度要比C++慢10倍以上,而
競賽中對於JAVA程序的運行時限卻往往得不到同等比例的放寬,這無疑對演算法設計提出
了更高的要求,是相當不利的。其實,筆者並不主張大家在這種場合過多地運用面向對
象的程序設計思維,因為對於小程序來說這不旦需要花費更多的時間去編寫代碼,也會
降低程序的執行效率。
接著說C和C++。許多現在參加講座的同學還在上大一,C的基礎知識剛剛學完,還沒
有接觸過C++,其實在賽場上使用純C的選手還是大有人在的,它們主要是看重了純C在效
率上的優勢,所以這部分同學如果時間有限,並不需要急著去學習新的語言,只要提高
了自己在演算法設計上的造詣,純C一樣能發揮巨大的威力。
而C++相對於C,在輸入輸出流上的封裝大大方便了我們的操作,同時降低了出錯的
可能性,並且能夠很好地實現標准流與文件流的切換,方便了調試的工作。如果有些同
學比較在意這點,可以嘗試C和C++的混編,畢竟僅僅學習C++的流操作還是不花什麼時間
的。
C++的另一個支持來源於標准模版庫(STL),庫中提供的對於基本數據結構的統一
介面操作和基本演算法的實現可以縮減我們編寫代碼的長度,這可以節省一些時間。但是
,與此相對的,使用STL要在效率上做出一些犧牲,對於輸入規模很大的題目,有時候必
須放棄STL,這意味著我們不能存在「有了STL就可以不去管基本演算法的實現」的想法;
另外,熟練和恰當地使用STL必須經過一定時間的積累,准確地了解各種操作的時間復雜
度,切忌對STL中不熟悉的部分濫用,因為這其中蘊涵著許多初學者不易發現的陷阱。
通過以上的分析,我們可以看出僅就信息學競賽而言,對語言的掌握並不要求十分
全面,但是對於經常用到的部分,必須十分熟練,不允許有半點不清楚的地方,下面我
舉個真實的例子來說明這個道理——即使是一點很細微的語言障礙,都有可能釀成錯誤
:
在去年清華的賽區上,有一個隊在做F題的時候使用了cout和printf的混合輸出,由
於一個帶緩沖一個不帶,所以輸出一長就混亂了。只是因為當時judge team中負責F題的
人眼睛尖,看出答案沒錯只是順序不對(答案有一頁多,是所有題目中最長的一個輸出
),又看了看程序發現只是輸出問題就給了個Presentation error(格式錯)。如果審
題的人不是這樣而是直接給一個 Wrong Answer,相信這個隊是很難查到自己錯在什麼地
方的。
現在我們轉入第二個方面的討論,基礎學科知識的積累。
二、以數學為主的基礎知識十分重要
雖然被定性為程序設計競賽,但是參賽選手所遇到的問題更多的是沒有解決問題的
思路,而不是有了思路卻死活不能實現,這就是平時積累的基礎知識不夠。今年World
Final的總冠軍是波蘭華沙大學,其成員出自於數學系而非計算機系,這就是一個鮮活的
例子。競賽中對於基礎學科的涉及主要集中於數學,此外對於物理、電路等等也可能有
一定應用,但是不多。因此,大一的同學也不必為自己還沒學數據結構而感到不知從何
入手提高,把數學撿起來吧!下面我來談談在競賽中應用的數學的主要分支。
1、離散數學——作為計算機學科的基礎,離散數學是競賽中涉及最多的數學分支,
其重中之重又在於圖論和組合數學,尤其是圖論。
圖論之所以運用最多是因為它的變化最多,而且可以輕易地結合基本數據結構和許
多演算法的基本思想,較多用到的知識包括連通性判斷、DFS和BFS,關節點和關鍵路徑、
歐拉迴路、最小生成樹、最短路徑、二部圖匹配和網路流等等。雖然這部分的比重很大
,但是往往也是競賽中的難題所在,如果有初學者對於這部分的某些具體內容暫時感到
力不從心,也不必著急,可以慢慢積累。
競賽中設計的組合計數問題大都需要用組合數學來解決,組合數學中的知識相比於
圖論要簡單一些,很多知識對於小學上過奧校的同學來說已經十分熟悉,但是也有一些
部分需要先對代數結構中的群論有初步了解才能進行學習。組合數學在競賽中很少以難
題的形式出現,但是如果積累不夠,任何一道這方面的題目卻都有可能成為難題。
2、數論——以素數判斷和同餘為模型構造出來的題目往往需要較多的數論知識來解
決,這部分在競賽中的比重並不大,但只要來上一道,也足以使知識不足的人冥思苦想
上一陣時間。素數判斷和同餘最常見的是在以密碼學為背景的題目中出現,在運用密碼
學常識確定大概的過程之後,核心演算法往往要涉及數論的內容。
3、計算幾何——計算幾何相比於其它部分來說是比較獨立的,就是說它和其它的知
識點很少有過多的結合,較常用到的部分包括——線段相交的判斷、多邊形面積的計算
、內點外點的判斷、凸包等等。計算幾何的題目難度不會很大,但也永遠不會成為最弱
的題。
4、線性代數——對線性代數的應用都是圍繞矩陣展開的,一些表面上是模擬的題目
往往可以藉助於矩陣來找到更好的演算法。
5、概率論——競賽是以黑箱來判卷的,這就是說你幾乎不能動使用概率演算法的念頭
,但這也並不是說概率就沒有用。關於這一點,只有通過一定的練習才能體會。
6、初等數學與解析幾何——這主要就是中學的知識了,用的不多,但是至少比高等
數學多,我覺得熟悉一下數學手冊上的相關內容,至少要知道在哪兒能查到,還是必要
的。
7、高等數學——純粹運用高等數學來解決的題目我接觸的只有一道,但是一些題目
的敘述背景往往需要和這部分有一定聯系,掌握得牢固一些總歸沒有壞處。
以上就是競賽所涉及的數學領域,可以說范圍是相當廣的。我認識的許多人去搞信
息學的競賽就是為了逼著自己多學一點數學,因為數學是一切一切的基礎。
⑶ 離散數學小知識
把最外層的括弧去掉試試
樓上那個胡說八道!
第一:推導過程有問題
第二:就算結論是非P→P,也不能說明就是假命題,非P→P<=> P∨P<=>P
怎麼就是假命題了?
第三:合式公式的定義他都沒弄明白!
⑷ 離散數學,主要學習哪些知識
離散數學是數學的幾個分支的總稱,以研究離散量的結構和相互間的關系為主要目標,其研究對象一般地是有限個或可數無窮個元素;因此它充分描述了計算機科學離散性的特點.內容包含:數理邏輯、集合論、代數結構、圖論、組合學、數論等.《離散數學》課程簡介 離散數學是計算機專業的一門重要基礎課.它所研究的對象是離散數量關系和離散結構數學結構模型.由於數字電子計算機是一個離散結構,它只能處理離散的或離散化了的數量關系,因此,無論計算機科學本身,還是與計算機科學及其應用密切相關的現代科學研究領域,都面臨著如何對離散結構建立相應的數學模型;又如何將已用連續數量關系建立起來的數學模型離散化,從而可由計算機加以處理.離散數學課程主要介紹離散數學的各個分支的基本概念、基本理論和基本方法.這些概念、理論以及方法大量地應用在數字電路、編譯原理、數據結構、操作系統、資料庫系統、演算法的分析與設計、人工智慧、計算機網路等專業課程中;同時,該課程所提供的訓練十分有益於學生概括抽象能力、邏輯思維能力、歸納構造能力的提高,十分有益於學生嚴謹、完整、規范的科學態度的培養.
離散數學主要包括四個方面邏輯學集合論,代數結構,圖論,直接用來解決一些實際的問題的,比較少,因為它是一門計算機專業的理論基礎課,解決實際問題,你看哪些方面的問題了,
下面我舉一些例子:
1 數據結構,這是計算機專業的一門重量級課程,而離散數學里裡面的圖論,就是數據結構裡面圖和樹的理論基礎!像一些經典的演算法,在數據結構里會學到,其實,它們在圖論里就被研究得很透!
2.關系資料庫,不用說,它的理論基礎----關系代數,就是離散數學的一個分支!
3.在計算機網路原理裡面,有一些路由選擇演算法之類 的,像最短路徑演算法等,都是離散數學里圖論的應用,都是一些經典的演算法!
4.更深層次的,像人工智慧等學科,都是以離散數學做為理論基礎的,
所以,離散數學是計算機的一個理論基礎,
至於你在編程中解決的問題,那應該是數據結構和演算法的應用,因為這門課就是離散數學的理論,加上在計算機上的存儲以及操作實現的~~
⑸ 自學《離散數學》,哪本書比較好離散數學裡面涉及到哪些數學知識
高教版的《離散數學》(唐婉玲,耿素雲,張立昂)。主要是數理邏輯,集合論,代數結構,組合數學,圖論和初等數論六個部分。
⑹ 《離散數學》課程講什麼內容
離散數學是研究離散對象(量)的數學,粗略地來講,所謂「離散」就是不「連續」的、「可分離」的,比如自然數、書本、人等等,實數則是連續的。用集合論的術語來說,離散對象就是這樣的對象:其全體所構成的集合是有限或可數的。
離散數學課程是計算機專業的核心課程之一,為許多後繼課程(如數據結構、操作系統、資料庫原理、軟體工程、演算法設計與分析、系統結構、網路原理)提供了必要的數學基礎和工具,且其學習過程還為提高分析問題和解決問題的能力提供了一條有效的途徑,從而為今後的學習和工作打下堅實的基礎。
本課程涉及四個數學分支:集合論、數理邏輯、圖論和組合數學,主要介紹這些數學分支的基本框架、基礎知識、基本思想和方法,內容的取捨和講授方法充分考慮了計算機專業學生的特點和需要,展示了離散數學在計算機科學中的應用,強調基本概念、基本方法和能力培養。
⑺ 請教專家:離散數學的相關知識
離散數學很簡單啊。比學概率統計容易多了。
⑻ 離散數學裡面各個知識點對應的大概計算機知識
可到教育科學的工程技術或電腦/數碼里問問
⑼ 離散數學知識點
離散數學重點和難點都在後幾章,圖和樹的部分,都是重點章節。特別是一些公式必須熟記。考的很多。
另外就是集合,關系和函數這兩章也很重要,因為這兩章是給後面打基礎的,沒有這兩章,圖和樹很難學,相對來說考的也比較多。
⑽ 離散數學包括哪些知識
邏輯和證明,集合與函數, 演算法,數論和密碼學,歸納與遞歸,計數, 離散概率,高級計數技術
, 關系,圖,樹, 布爾代數, 計算模型