㈠ 什麼是模擬系統
系統模擬(system simulation)就是根據系統分析的目的,在分析系統各要素性質及其相互關系的基礎上,建立能描述系統結構或行為過程的、且具有一定邏輯關系或數量關系的模擬模型,據此進行試驗或定量分析,以獲得正確決策所需的各種信息。
計算機試驗常被用來研究模擬模型(simulation model)。模擬也被用於對自然系統或人造系統的科學建模以獲取深入理解。模擬可以用來展示可選條件或動作過程的最終結果。
模擬也可用在真實系統不能做到的情景,這是由於不可訪問(accessible)、太過於危險、不可接受的後果、或者設計了但還未實現、或者壓根沒有被實現等。
模擬的主要論題是獲取相關選定的關鍵特性與行為的有效信息源,模擬時使用簡化的近似或者假定,模擬結果的保真度(fidelity)與有效性。模型驗證(verification)與有效性(validation)的過程、協議是學術學習、改進、研究、開發模擬技術的熱點,特別是對計算機模擬。
(1)時空之門前端代碼生成器45擴展閱讀
模擬科學與技術在控制科學、系統科學、計算機科學等學科中孕育發展,並在各行各業的實際應用中成長,已經成為人類認識與改造客觀世界的重要方法手段,在一些關系國家實力和安全的國防及國民經濟等關鍵領域。
如航空航天、信息、生物、材料、能源、先進製造、農業、教育、軍事、交通、醫學等領域,發揮著不可或缺的作用。經過近一個世紀的發展,「模擬科學與技術」已形成獨立的知識體系,包括由模擬建模理論、模擬系統理論和模擬應用理論構成的理論體系。
由系統、模型、計算機和應用領域專業知識綜合而成的知識基礎;由基於相似原理的模擬建模,基於整體論的網路化、智能化、協同化、普適化的模擬。
近年來,結合計算機、通信和人工智慧技術的發展,模擬科學與技術呈現出許多新的趨勢。如系統模擬可視化得到快速發展並廣泛應用,系統模擬可視化應包括:科學可視化、數據可視化、信息可視化以及知識可視化,是系統模擬的結果展示與人機交口的重要內容。
在國防和軍工領域模擬科學與技術的助推作用更為明顯,已廣泛用於武器研究、作戰指揮、軍事訓練等,尤其在我國飛行器設計相關領域的發展取得了令世界矚目的成就。
和平年代部隊的多兵種的協同作戰、作戰指揮等能力的提升模擬系統是其重要的平台支撐,作戰指揮模擬服務於作戰指揮分析或作戰指揮訓練的虛擬環境,通過滿足作戰指揮分析和訓練需求來實現價值。
量子信息、量子計算、量子通信發展迅速,復雜量子動力學系統的建模與模擬是量子力學系統行為描述的基礎,可以更好地探索和掌握量子系統的內部特性。
建模、行為描述和知識表達是模擬科學與技術的基礎,隨著智能化及智慧化發展的需要,針對模擬對象的過程建模、行為描述和屬性表達的全方位的知識獲取,已成必須。
㈡ 大學數學(計算機專業)
計算機科學與技術學習反思錄
計算機理論的一個核心問題--從數學談起:
記得當年大一入學,每周六課時高等數學,天天作業不斷(那時是六日工作制)。頗有些同學驚呼走錯了門:咱們這到底念的是什麼系?不錯,你沒走錯門,這就是計算機科學與技術系。我國計算機科學系裡的傳統是培養做學術研究,尤其是理論研究的人(方向不見得有問題,但是做得不是那麼盡如人意)。而計算機的理論研究,說到底了,如網路安全,圖形圖像學,視頻音頻處理,哪個方向都與數學有著很大的關系,雖然也許是正統數學家眼裡非主流的數學。這里我還想闡明我的一個觀點:我們都知道,數學是從實際生活當中抽象出來的理論,人們之所以要將實際抽象成理論,目的就在於想用抽象出來的理論去更好的指導實踐,有些數學研究工作者喜歡用一些現存的理論知識去推導若干條推論,殊不知其一:問題考慮不全很可能是個錯誤的推論,其二:他的推論在現實生活中找不到原型,不能指導實踐。嚴格的說,我並不是一個理想主義者,政治課上學的理論聯系實際一直是指導我學習科學文化知識的航標(至少我認為搞計算機科學與技術的應當本著這個方向)。
其實我們計算機系學數學光學高等數學是不夠的(典型的工科院校一般都開的是高等數學),我們應該像數學系一樣學一下數學分析(清華計算機系開的好像就是數學分析),數學分析這門科學,咱們學計算機的人對它有很復雜的感情。在於它是偏向於證明型的數學課程,這對我們培養良好的分析能力極有幫助。我的軟體工程學導師北工大數理學院的王儀華先生就曾經教導過我們,數學系的學生到軟體企業中大多作軟體設計與分析工作,而計算機系的學生做程序員的居多,原因就在於數學系的學生分析推理能力,從所受訓練的角度上要遠遠在我們之上。當年出現的怪現象是:計算機系學生的高中數學基礎在全校數一數二(希望沒有冒犯其它系的同學),教學課時數也僅次於數學系,但學完之後的效果卻不盡如人意。難道都是學生不努力嗎,我看未見得,方向錯了也說不一定,其中原因何在,發人深思。
我個人的淺見是:計算機系的學生,對數學的要求固然跟數學系不同,跟物理類差別則更大。通常非數學專業的所謂「高等數學」,無非是把數學分析中較困難的理論部分刪去,強調套用公式計算而已。而對計算機系來說,數學分析里用處最大的恰恰是被刪去的理論部分。說得難聽一點,對計算機系學生而言,追求算來算去的所謂「工程數學」已經徹底地走進了誤區。記上一堆曲面積分的公式,難道就能算懂了數學?那倒不如現用現查,何必費事記呢?再不然直接用Mathematics或是Matalab好了。
我在系裡最愛做的事情就是給學弟學妹們推薦參考書。中文的數學分析書,一般都認為以北大張築生老師的「數學分析新講」為最好。萬一你的數學實在太好,那就去看菲赫金哥爾茨的「微積分學教程」好了--但我認為沒什麼必要,畢竟你不想轉到數學系去。吉米多維奇的「數學分析習題集」也基本上是計算型的東東。書的名氣很大,倒不見得適合我們,還是那句話,重要的是數學思想的建立,生活在信息社會里我們求的是高效,計算這玩意還是留給計算機吧。不過現在多用的似乎是復旦大學的《數學分析》也是很好的教材。
中國的所謂高等代數,就等於線性代數加上一點多項式理論。我以為這有好的一面,因為可以讓學生較早感覺到代數是一種結構,而非一堆矩陣翻來覆去。這里不得不提南京大學林成森,盛松柏兩位老師編的「高等代數」,感覺相當舒服。此書相當全面地包含了關於多項式和線性代數的基本初等結果,同時還提供了一些有用的又比較深刻的內容,如Sturm序列,Shermon-Morrison公式,廣義逆矩陣等等。可以說,作為本科生如能吃透此書,就可以算高手。國內較好的高等代數教材還有清華計算機系用的那本,清華出版社出版,書店裡多多,一看就知道。從抽象代數的觀點來看,高等代數里的結果不過是代數系統性質的一些例子而已。莫宗堅先生的《代數學》里,對此進行了深刻的討論。然而莫先生的書實在深得很,作為本科生恐怕難以接受,不妨等到自己以後成熟了一些再讀。
正如上面所論述的,計算機系的學生學習高等數學:知其然更要知其所以然。你學習的目的應該是:將抽象的理論再應用於實踐,不但要掌握題目的解題方法,更要掌握解題思想,對於定理的學習:不是簡單的應用,而是掌握證明過程即掌握定理的由來,訓練自己的推理能力。只有這樣才達到了學習這門科學的目的,同時也縮小了我們與數學系的同學之間思維上的差距。
概率論與數理統計這門課很重要,可惜大多數院校講授這門課都會少些東西。少了的東西現在看至少有隨機過程。到畢業還沒有聽說過Markov過程,此乃計算機系學生的恥辱。沒有隨機過程,你怎麼分析網路和分布式系統?怎麼設計隨機化演算法和協議?據說清華計算機系開有「隨機數學」,早就是必修課。另外,離散概率論對計算機系學生來說有特殊的重要性。而我們國家工程數學講的都是連續概率。現在,美國已經有些學校開設了單純的「離散概率論」課程,乾脆把連續概率刪去,把離散概率講深些。我們不一定要這么做,但應該更加強調離散概率是沒有疑問的。這個工作我看還是盡早的做為好。
計算方法學(有些學校也稱為數學分析學)是最後一門由數理學院給我們開的課。一般學生對這門課的重視程度有限,以為沒什麼用。不就是照套公式嘛!其實,做圖形圖像可離不開它,密碼學搞深了也離不開它。而且,在很多科學工程中的應用計算,都以數值的為主。這門課有兩個極端的講法:一個是古典的「數值分析」,完全講數學原理和演算法;另一個是現在日趨流行的「科學與工程計算」,乾脆教學生用軟體包編程。我個人認為,計算機系的學生一定要認識清楚我們計算機系的學生為什麼要學這門課,我是很偏向於學好理論後用計算機實現的,最好使用C語言或C++編程實現。向這個方向努力的書籍還是挺多的,這里推薦大家高等教育出版社(CHEP)和施普林格出版社(Springer)聯合出版的《計算方法(Computational Methods)》,華中理工大學數學系寫的(現華中科技大學),這方面華科大做的工作在國內應算是比較多的,而個人認為以這本最好,至少程序設計方面涉及了:任意數學函數的求值,方程求根,線性方程組求解,插值方法,數值積分,場微分方程數值求解。李慶揚的那本則理論性過強,與實際應用結合得不太緊。
每個學校本系裡都會開一門離散數學,涉及集合論,圖論,和抽象代數,數理邏輯。不過,這么多內容擠在離散數學一門課里,是否時間太緊了點?另外,計算機系學生不懂組合和數論,也是巨大的缺陷。要做理論,不懂組合或者數論吃虧可就太大了。從理想的狀態來看,最好分開六門課:集合,邏輯,圖論,組合,代數,數論。這個當然不現實,因為沒那麼多課時。也許將來可以開三門課:集合與邏輯,圖論與組合,代數與數論。(這方面我們學校已經著手開始做了)不管課怎麼開,學生總一樣要學。下面分別談談上面的三組內容。
古典集合論,北師大出過一本《基礎集合論》不錯。
數理邏輯,中科院軟體所陸鍾萬教授的《面向計算機科學的數理邏輯》就不錯。現在可以找到陸鍾萬教授的講課錄像,http://www.cas.ac.cn/html/Dir/2001/11/06/3391.htm自己去看看吧。總的來說,學集合/邏輯起手不難,普通高中生都能看懂。但越往後越感覺深不可測。
學完以上各書之後,如果你還有精力興趣進一步深究,那麼可以試一下GTM系列中的《Introction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。這兩本都有世界圖書出版社的引進版。你如果能搞定這兩本,可以說在邏輯方面真正入了門,也就不用再浪費時間聽我瞎侃了。
據說全中國最多隻有三十個人懂圖論。此言不虛。圖論這東東,技巧性太強,幾乎每個問題都有一個獨特的方法,讓人頭痛。不過這也正是它魅力所在:只要你有創造性,它就能給你成就感。我的導師說,圖論裡面隨便揪一塊東西就可以寫篇論文。大家可以體會裡面內容之深廣了吧!國內的圖論書中,王樹禾老師的「圖論及其演算法」非常成功。一方面,其內容在國內教材里算非常全面的。另一方面,其對演算法的強調非常適合計算機系(本來就是科大計算機系教材)。有了這本書為主,再參考幾本翻譯的,如Bondy & Murty的《圖論及其應用》,人民郵電出版社翻譯的《圖論和電路網路》等等,就馬馬虎虎,對本科生足夠了。再進一步,世界圖書引進有GTM系列的"Modern Graph Theory"。此書確實經典!國內好象還有一家出版了個翻譯版。不過,學到這個層次,還是讀原版好。搞定這本書,也標志著圖論入了門。 外版的書好就好在這里,最新的科技成果裡面都有論述,別的先不說,至少是「緊跟時代的理論知識」。
組合感覺沒有太適合的國產書。還是讀Graham和Knuth等人合著的經典「具體數學」吧,西安電子科技大學出版社有翻譯版。
抽象代數,國內經典為莫宗堅先生的「代數學」。此書是北大數學系教材,深得好評。然而對本科生來說,此書未免太深。可以先學習一些其它的教材,然後再回頭來看「代數學」。國際上的經典可就多了,GTM系列裡就有一大堆。推薦一本談不上經典,但卻最簡單的,最容易學的:http://www.math.miami.e/~ec/book/這本「Introction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代數和線性代數結合起來,對初學者來說非常理想,我校比較牛的同學都有收藏。
數論方面,國內有經典而且以困難著稱的」初等數論「(潘氏兄弟著,北大版)。再追溯一點,還有更加經典(可以算世界級)並且更加困難的」數論導引「(華羅庚先生的名著,科學版,九章書店重印,繁體的看起來可能比較困難)。把基礎的幾章搞定一個大概,對本科生來講足夠了。但這只是初等數論。本科畢業後要學計算數論,你必須看英文的書,如Bach的"Introction to Algorithmic Number Theory"。
計算機科學理論的根本,在於演算法。現在很多系裡給本科生開設演算法設計與分析,確實非常正確。環顧西方世界,大約沒有一個三流以上計算機系不把演算法作為必修的。演算法教材目前公認以Corman等著的"Introction to Algorithms"為最優。對入門而言,這一本已經足夠,不需要再參考其它書。
再說說形式語言與自動機。我看過北郵的教材,應該說寫的還清楚。但是,有一點要強調:形式語言和自動機的作用主要在作為計算模型,而不是用來做編譯。事實上,編譯前端已經是死領域,沒有任何open problems,北科大的班曉娟博士也曾經說過,編譯的技術已相當成熟。如果為了這個,我們完全沒必要去學形式語言--用用yacc什麼的就完了。北郵的那本在國內還算比較好,但是在深度上,在跟可計算性的聯繫上都有較大的局限,現代感也不足。所以建議有興趣的同學去讀英文書,不過國內似乎沒引進這方面的教材。可以去互動出版網上看一看。入門以後,把形式語言與自動機中定義的模型,和數理邏輯中用遞歸函數定義的模型比較一番,可以說非常有趣。現在才知道,什麼叫「宮室之美,百官之富」!
計算機科學和數學的關系有點奇怪。二三十年以前,計算機科學基本上還是數學的一個分支。而現在,計算機科學擁有廣泛的研究領域和眾多的研究人員,在很多方面反過來推動數學發展,從某種意義上可以說是孩子長得比媽媽還高了。但不管怎麼樣,這個孩子身上始終流著母親的血液。這血液是the mathematical underpinning of computer science(計算機科學的數學基礎),也就是理論計算機科學。原來在東方大學城圖書館中曾經看過一本七十年代的譯本(書皮都沒了,可我就愛關注這種書),大概就叫《計算機數學》。那本書若是放在當時來講決是一本好書,但現在看來,涵蓋的范圍還算廣,深度則差了許多,不過推薦大一的學生倒可以看一看,至少可以使你的計算數學入入門。
最常和理論計算機科學放在一起的一個詞是什麼?答:離散數學。這兩者的關系是如此密切,以至於它們在不少場合下成為同義詞。(這一點在前面的那本書中也有體現)傳統上,數學是以分析為中心的。數學系的同學要學習三四個學期的數學分析,然後是復變函數,實變函數,泛函數等等。實變和泛函被很多人認為是現代數學的入門。在物理,化學,工程上應用的,也以分析為主。
隨著計算機科學的出現,一些以前不太受到重視的數學分支突然重要起來。人們發現,這些分支處理的數學對象與傳統的分析有明顯的區別:分析研究的問題解決方案是連續的,因而微分,積分成為基本的運算;而這些分支研究的對象是離散的,因而很少有機會進行此類的計算。人們從而稱這些分支為「離散數學」。「離散數學」的名字越來越響亮,最後導致以分析為中心的傳統數學分支被相對稱為「連續數學」。
離散數學經過幾十年發展,基本上穩定下來。一般認為,離散數學包含以下學科 :
1) 集合論,數理邏輯與元數學。這是整個數學的基礎,也是計算機科學的基礎。
2) 圖論,演算法圖論;組合數學,組合演算法。計算機科學,尤其是理論計算機科學的核心是
演算法,而大量的演算法建立在圖和組合的基礎上。
3) 抽象代數。代數是無所不在的,本來在數學中就非常重要。在計算機科學中,人們驚訝地發現代數竟然有如此之多的應用。
但是,理論計算機科學僅僅就是在數學的上面加上「離散」的帽子這么簡單嗎?一直到大約十幾年前,終於有一位大師告訴我們:不是。D.E.Knuth(他有多偉大,我想不用我廢話了)在Stanford開設了一門全新的課程Concrete Mathematics。 Concrete這個詞在這里有兩層含義:
首先:對abstract而言。Knuth認為,傳統數學研究的對象過於抽象,導致對具體的問題關心不夠。他抱怨說,在研究中他需要的數學往往並不存在,所以他只能自己去創造一些數學。為了直接面向應用的需要,他要提倡「具體」的數學。在這里我做一點簡單的解釋。例如在集合論中,數學家關心的都是最根本的問題--公理系統的各種性質之類。而一些具體集合的性質,各種常見集合,關系,映射都是什麼樣的,數學家覺得並不重要。然而,在計算機科學中應用的,恰恰就是這些具體的東西。Knuth能夠首先看到這一點,不愧為當世計算機第一人。其次,Concrete是Continuous(連續)加上discrete(離散)。不管連續數學還是離散數學,都是有用的數學!
理論與實際的結合--計算機科學研究的范疇
前面主要是從數學角度來看的。從計算機角度來看,理論計算機科學目前主要的研究領域包括:可計算性理論,演算法設計與復雜性分析,密碼學與信息安全,分布式計算理論,並行計算理論,網路理論,生物信息計算,計算幾何學,程序語言理論等等。這些領域互相交叉,而且新的課題在不斷提出,所以很難理出一個頭緒來。想搞搞這方面的工作,推薦看中國計算機學會的一系列書籍,至少代表了我國的權威。下面隨便舉一些例子。
由於應用需求的推動,密碼學現在成為研究的熱點。密碼學建立在數論(尤其是計算數論),代數,資訊理論,概率論和隨機過程的基礎上,有時也用到圖論和組合學等。很多人以為密碼學就是加密解密,而加密就是用一個函數把數據打亂。這樣的理解太淺顯了。
現代密碼學至少包含以下層次的內容:
第一,密碼學的基礎。例如,分解一個大數真的很困難嗎?能否有一般的工具證明協議正確?
第二,密碼學的基本課題。例如,比以前更好的單向函數,簽名協議等。
第三,密碼學的高級問題。例如,零知識證明的長度,秘密分享的方法。
第四,密碼學的新應用。例如,數字現金,叛徒追蹤等。
在分布式系統中,也有很多重要的理論問題。例如,進程之間的同步,互斥協議。一個經典的結果是:在通信信道不可靠時,沒有確定型演算法能實現進程間協同。所以,改進TCP三次握手幾乎沒有意義。例如時序問題。常用的一種序是因果序,但因果序直到不久前才有一個理論上的結果....例如,死鎖沒有實用的方法能完美地對付。例如,......操作系統研究過就自己去舉吧!
如果計算機只有理論,那麼它不過是數學的一個分支,而不成為一門獨立的科學。事實上,在理論之外,計算機科學還有更廣闊的天空。
我一直認為,4年根本不夠學習計算機的基礎知識,因為面太寬了,8年,應該差不多了......
這方面我想先說說我們系在各校普遍開設的《計算機基礎》。在高等學校開設《計算機基礎課程》是我國高教司明文規定的各專業必修課程要求。主要內容是使學生初步掌握計算機的發展歷史,學會簡單的使用操作系統,文字處理,表格處理功能和初步的網路應用功能。但是在計算機科學系教授此門課程的目標決不能與此一致。在計算機系課程中目標應是:讓學生較為全面的了解計算機學科的發展,清晰的把握計算機學科研究的方向,發展的前沿即每一個課程在整個學科體系中所處的地位。搞清各學科的學習目的,學習內容,應用領域。使學生在學科學習初期就對整個學科有一個整體的認識,以做到在今後的學習中清楚要學什麼,怎麼學。計算機基本應用技能的位置應當放在第二位或更靠後,因為這一點對於本系的學生應當有這個摸索能力。這一點很重要。推薦給大家一本書:機械工業出版社的《計算機文化》(New Perspective of Computer Science),看了這本書我才深刻的體會到自己還是個計算機科學初學者,才比較透徹的了解了什麼是計算機科學。
一個一流計算機系的優秀學生決不該僅僅是一個編程高手,但他一定首先是一個編程高手。我上大學的時候,第一門專業課是C語言程序設計,念計算機的人從某種角度講相當一部分人是靠寫程序吃飯的。關於第一程序設計語言該用哪一種。我個人認為,用哪種語言屬於末節,關鍵在養成良好的編程習慣。當年老師對我們說,打好基礎後學一門新語言只要一個星期。現在我覺得根本不用一個星期,前提是先把基礎打好。不要再猶豫了,學了再說,等你抉擇好了,別人已經會了幾門語言了。
匯編語言和微機原理是兩門特煩人的課。你的數學/理論基礎再好,也占不到什麼便宜。這兩門課之間的次序也好比先有雞還是先有蛋,無論你先學哪門,都會牽扯另一門課里的東西。所以,只能靜下來慢慢琢磨。這就是典型的工程課,不需要太多的聰明和頓悟,卻需要水滴石穿的漸悟。有關這兩門課的書,計算機書店裡不難找到。弄幾本最新的,對照著看吧。組成原理推薦《計算機組成與結構》清華大學王愛英教授寫的。匯編語言大家拿8086/8088入個門,之後一定要學80x86匯編語言。實用價值大,不落後,結構又好,寫寫高效病毒,高級語言里嵌一點匯編,進行底層開發,總也離不開他,推薦清華大學沈美明的《IBM-PC匯編語言程序設計》。有些人說不想了解計算機體系結構,也不想製造計算機,所以諸如計算機原理,匯編語言,介面之類的課覺得沒必要學,這樣合理嗎?顯然不合理,這些東西遲早得掌握,肯定得接觸,而且,這是計算機專業與其他專業學生相比的少有的幾項優勢。做項目的時候,了解這些是非常重要的,不可能說,僅僅為了技術而技術,只懂技術的人最多做一個編碼工人,而永遠不可能全面地了解整個系統的設計,而編碼工人是越老越不值錢。關於組成原理還有個講授的問題,在我學這門課程時老師講授時把CPU工作原理譽微程序設計這一塊略掉了,理由是我們國家搞CPU技術不如別的國家,搞了這么長時間好不容易出了個龍芯比Intel的還差個十萬八千里,所以建議我們不要學了。我看這在各校也未見得不是個問題吧!若真是如他所說,那中國的計算機科學哪個方向都可以停了,軟硬體,應用,有幾項搞得過美國,搞不過別人就不搞了,那我們坐在這里干什麼?教學的觀念需要轉變的。
模擬電路這東東,如今不僅計算機系學生搞不定,電子系學生也多半害怕。如果你真想軟硬體通吃,那麼建議你先看看邱關源的「電路原理」,也許此後再看模擬電路底氣會足些。教材:康華光的「電子技術基礎」(高等教育出版社)還是不錯的(我校電子系在用)。有興趣也可以參考童詩白的書。
數字電路比模擬電路要好懂得多。清華大學閻石的書算一本好教材,遺憾的一點是集成電路講少了些。真有興趣,看一看大規模數字系統設計吧(北航那本用的還比較多)。
計算機系統結構該怎麼教,國際上還在爭論。國內能找到的較好教材為Stallings的"Computer Organization and Architecture:Designing for Performance"(清華影印
本)。國際上最流行的則是「Computer architecture: aquantitative approach", by Patterson & Hennessy。
操作系統可以隨便選用《操作系統的內核設計與實現》和《現代操作系統》兩書之一。這兩部都可以算經典,唯一缺點就是理論上不夠嚴格。不過這領域屬於Hardcore System,所以在理論上馬虎一點也情有可原。想看理論方面的就推薦清華大學出版社《操作系統》吧,高教司司長張堯學寫的,我們教材用的是那本。 另外推薦一本《Windows操作系統原理》機械工業出版社的,這本書是我國操作系統專家在微軟零距離考察半年,寫作歷時一年多寫成的,教操作系統的專家除了清華大學的張堯學(現高教司司長)幾乎所有人都參加了。Bill Gates親自寫序。裡面不但結合windows2000,xp詳述操作系統的內核,而且後面講了一些windows編程基礎,有外版書的味道,而且上面一些內容可以說在國內外只有那本書才有對windows內核細致入微的介紹,
如果先把形式語言學好了,則編譯原理中的前端我看只要學四個演算法:最容易實現的遞歸下降;最好的自頂向下演算法LL(k);最好的自底向上演算法LR(k);LR(1)的簡化SLR(也許還有另一簡化LALR)。後端完全屬於工程性質,自然又是another story。
推薦教材:Kenneth C.Louden寫的「Compiler Construction Principles and Practice」即是《編譯原理及實踐》(機械工業出版社的譯本)
學資料庫要提醒大家的是,會用VFP,VB, Power builder不等於懂資料庫。(這世界上自以為懂資料庫的人太多了!)資料庫設計既是科學又是藝術,資料庫實現則是典型的工程。所以從某種意義上講,資料庫是最典型的一門計算機課程--理工結合,互相滲透。另外推薦大家學完軟體工程學後再翻過來看看資料庫技術,又會是一番新感覺。推薦教材:Abraham Silberschatz等著的 "Database System Concepts".作為知識的完整性,還推薦大家看一看機械工業出版社的《數據倉庫》譯本。
計算機網路的標准教材還是來自Tanenbaum的《Computer Networks》(清華大學有譯本)。還有就是推薦謝希仁的《計算機網路教程》(人民郵電出版社)問題講得比較清楚,參考文獻也比較權威。不過,網路也屬於Hardcore System,所以光看書是不夠的。建議多讀RFC,http://www.ietf.org/rfc.htm里可以按編號下載RFC文檔。從IP的讀起。等到能掌握10種左右常用協議,就沒有幾個人敢小看你了。再做的工作我看放在網路設計上就比較好了。
數據結構的重要性就不言而喻了,學完數據結構你會對你的編程思想進行一番革命性的洗禮,會對如何建立一個合理高效的演算法有一個清楚的認識。對於演算法的建立我想大家應當注意以下幾點:
當遇到一個演算法問題時,首先要知道自己以前有沒有處理過這種問題.如果見過,那麼你一般會順利地做出來;如果沒見過,那麼考慮以下問題:
1. 問題是否是建立在某種已知的熟悉的數據結構(例如,二叉樹)上?如果不是,則要自己設計數據結構。
2. 問題所要求編寫的演算法屬於以下哪種類型?(建立數據結構,修改數據結構,遍歷,查找,排序...)
3. 分析問題所要求編寫的演算法的數學性質.是否具備遞歸特徵?(對於遞歸程序設計,只要設計出合理的參數表以及遞歸結束的條件,則基本上大功告成.)
4. 繼續分析問題的數學本質.根據你以前的編程經驗,設想一種可能是可行的解決辦法,並證明這種解決辦法的正確性.如果題目對演算法有時空方面的要求,證明你的設想滿足其要求.一般的,時間效率和空間效率難以兼得.有時必須通過建立輔助存儲的方法來節省時間.
5. 通過一段時間的分析,你對解決這個問題已經有了自己的一些思路.或者說,你已經可以用自然語言把你的演算法簡單描述出來.繼續驗證其正確性,努力發現其中的錯誤並找出解決辦法.在必要的時候(發現了無法解決的矛盾),推翻自己的思路,從頭開始構思.
6. 確認你的思路可行以後,開始編寫程序.在編寫代碼的過程中,盡可能把各種問題考慮得詳細,周密.程序應該具有良好的結構,並且在關鍵的地方配有注釋.
7. 舉一個例子,然後在紙上用筆執行你的程序,進一步驗證其正確性.當遇到與你的設想不符的情況時,分析問題產生的原因是編程方面的問題還是演算法思想本身有問題.
8. 如果程序通過了上述正確性驗證,那麼在將其進一步優化或簡化。
9. 撰寫思路分析,注釋.
對於具體的演算法思路,只能靠你自己通過自己的知識和經驗來加以獲得,沒有什麼特定的規律(否則程序員全部可以下崗了,用機器自動生成代碼就可以了).要有豐富的想像力,就是說當一條路走不通時,不要鑽牛角尖,要敢於推翻自己的想法.我也只不過是初學者,說出上面的一些經驗,僅供大家參考和討論。
關於人工智慧,我覺得的也是非常值得大家仔細研究的,雖然不能算是剛剛興起的學科了,但是絕對是非常有發展前途的一門學科。我國人工智慧創始人之一,北京科技大學塗序彥教授(這老先生是我的導師李小堅博士的導師)對人工智慧這樣定義:人工智慧是模
㈢ 我的世界怎麼創造模式打造時空之門
3*4的黑曜石,放在地上,然後打火石點火就行。
㈣ DNF時空之門地圖代碼,謝謝
u豆腐乳通風管人頭如果腹痛法國同步
㈤ 求紅色警戒2共和國之輝的作弊器(要有快速建造)
修改MOD的RULES:
NO.1:
我先教大家修改RULES.INI文件,這個文件可以到網上下載
1.查找TeamDelays,這是RULES中最重要的AI命令.如TeamDelays=1200,1350,1600,它分別對應冷酷的,中等的,簡單的敵人的部隊建造間隔.一般設為250,250,250,與下面的代碼連用的話你將體會到敵人連續攻擊的厲害!
MinimumAIDefensiveTeams 電腦最小的防禦部隊數量
MaximumAIDefensiveTeams 電腦最大的防禦部隊數量
AISafeDistance 電腦聚集部隊離敵方(我方)基地的距離
電腦識別幻影坦克的幾率
AttackInterval 電腦每次進攻的時間間隔(建議設為0)
AttackDelay電腦首次進攻的時間間隔(建議設為0)
PowerSurplus 電腦保留電量的大小(建議設為250)
repair and refit RefundPercent=50% 這是規定拍賣建築物時價格與實際造價的比例為50%,要是改為120%就是說賣 價比造價高(有點變態!)
2.空投規則
GEF
;************ American Paradrop Special Rules ***********
;These two lists _must_ have the same number of elements
;AmerParaDropInf=E1,GHOST,ENGINEER
;AmerParaDropNum=6,6,6 ;How many of each of those infantry
AmerParaDropInf=E1 ;(美國空投步兵類型)
AmerParaDropNum=8 ;(美國空投步兵數量)
AllyParaDropInf=E1 ;(盟軍佔有科技機場空投步兵類型)
AllyParaDropNum=6 ;(盟軍佔有科技機場空投步兵數量)
SovParaDropInf=E2 ;(蘇軍佔有科技機場空投步兵類型)
SovParaDropNum=9 ;(蘇軍佔有科技機場空投步兵數量)
可以把E1和E2改成COW(母牛)如:AmerParaDropInf=COW 你就會看到美國空投母牛了(搞笑!)E1是美國大兵,E2是動員
3. 這是遭遇戰模式下的玩家設置,加*的最好不要修改
[MultiplayerDialogSettings]
MinMoney=5000(可調最小資金)
Money=10000(默認資金)
MaxMoney=10000(可調最大資金,不要超過50000,否則數據有可能溢出)
MoneyIncrement=100
MinUnitCount=1(開始時最小單位數)*
UnitCount=10(開始時默認單位數)
MaxUnitCount=10(開始時最大單位數)
TechLevel=10*
GameSpeed=0*
AIDifficulty=0*
AIPlayers=0*
BridgeDestruction=yes(橋是否可摧毀)
ShadowGrow=no
Shroud=yes
Bases=yes*
TiberiumGrows=yes(礦石是否自然增長)
Crates=yes(升級工具箱)
CaptureTheFlag=no*
HarvesterTruce=no*
MultiEngineer=no*
AlliesAllowed=no(是否允許結盟)
ShortGame=yes(快速游戲)*
FogOfWar=no*
MCVRedeploys=yes(基地重新部署)*
4.自然規則
在RULES.INI中查找下列語句
RepairPercent=15% (修理建築物所耗資金與原價比例)
BuildSpeed=.7 (建造時花費1000元所用時間,默認42秒,若改為".1"則只用6秒,暴快!
SoloCrateMoney=2000 (獲得金錢升級工具箱所得資金)
ReloadRate=.3 (戰機或反潛直升機重新裝彈速度)
GrowthRate=5 (礦石自然增長速度,該值越大越慢)
5.單位注冊名字
步兵類:
[E1]美國大兵 [SNIPE]狙擊手 [E2]動員兵 [FLAKT]防空步兵 [SHK]磁暴步兵
[ENGINEER] 盟軍工程師 [SENGINEER]蘇軍工程師 [JUMPJET]火箭飛行兵
[GHOST]海豹部隊 [TANY]譚雅 [YURI]尤里 [IVAN]瘋狂伊萬 [DESO]輻射工兵
[CLEG]超時空軍團兵 [DOG]蘇軍警犬 [ADOG]盟軍警犬 [SPY]間諜 [TERROR]恐怖分子
戰車類
[APOC]天啟坦克 [DTRUCK]自爆卡車 [V3]V3火箭車 [DRON]恐怖機器人 [HARV]武裝采礦車
[CMIN]超時空采礦車 [AMCV]盟軍基地車 [SMCV]蘇軍基地車 [HTK]防空履帶車
[HTNK]犀牛坦克 [MTNK]灰熊坦克 [MGTK]幻影坦克 [FV]多功能戰斗車 [TNKD]坦克殺手
[TTNK]磁能坦克 [SREF]光棱坦克
艦船類
[SUB]攻擊潛艇 [DLPH]海豚 [AEGIS]神盾巡洋艦 [CARRIER]航空母艦 [DRED]無畏級戰艦
[HYD]海蠍 [DEST]驅逐艦 [SQD]烏賊 [LCRF]盟軍氣墊船 [SAPC]蘇軍氣墊船
戰機類
[ORCA]入侵者戰機 [SHAD]夜鷹直升機 [ZEP]基洛夫飛艇 [BEAG]黑鷹戰機
建築類
[GATECH]盟軍作戰實驗室 [NATECH]蘇軍作戰實驗室 [GAWEAP]盟軍戰車工廠
[NAWEAP]蘇軍戰車工廠 [GAREFN]盟軍礦廠 [NAREFN]蘇軍礦廠 [GAOREP]礦石精煉器 [GAYARD]盟軍船塢[NAYARD]蘇軍船塢 [GAAIRC]空指部 [AMRADR]美國空指部
[GASPYSAT]間諜衛星[GAGAP]裂縫產生器 [GAPOWR]盟軍發電廠 [NAPOWR]蘇軍發電廠
[NAHAND]蘇軍兵營 [NARADR]雷達 [NADEPT]蘇軍修理廠[NACLON]復制中心
[GAPILE]盟軍兵營 [GADEPT]盟軍修理廠[GAWALL]盟軍圍牆 [NAWALL]蘇軍圍牆
[NAIRON]鐵幕裝置 [GAWEAT]天氣控制器 [GACSPH]時空轉移器 [NAPSIS]心靈感應器
[TESLA]磁暴線圈 [ATESLA]光棱塔 [NAMISL]核彈井 [NALASR]哨戒炮
[GAPILL]碉堡 [NASAM]愛國者導彈 [NAFLAK]防空炮 [NANRCT]核電站 [GTGCAN]巨炮
如何提取紅警游戲裡面的文件:
紅警游戲目錄下有很多以mix為擴展名的文件,它們實際上是多個文件的集合,經過打包形成了一個文件(你可以把它想像成壓縮文件)。紅警游戲裡面的許多游戲屬性,都寫在ini為擴展名的文件內,而ini文件就被藏在mix文件里。我們要修改游戲,就是把ini文件從mix文件中提取出來,經過對ini文件進行修改,以達到我們修改游戲的目的。
要想把從mix文件中提取文件,目前最常用的工具就是「Xcc Mixer」。滌塵同志的主頁「紅警風暴」網站一直提供最新版本的「Xcc Mixer」系列工具,如果你手頭還沒有,趕快去下載吧。
下載後,解壓縮,直接執行裡面的「XCC Mixer.exe」文件即可運行該程序。
它的程序界面是這樣的(本篇以XCC Mixer 1.24版為例):
可以看到,這個窗口分為兩個部分,左側是一個目錄窗口,它顯示當前文件夾的內容及電腦內所有驅動器的分布情況:第一行「a:\」指的是電腦中的A盤驅動器,第二行至第五行指的是硬碟上從C盤到F盤四個分區,第六行「g:\」是光碟驅動器。當然了,每台電腦的分區各不相同,也許你的硬碟分區較多,「g:\」就不是光碟驅動器了。第七行「..」指的是當前文件夾的上一級目錄。你只要用滑鼠雙擊上面的任一行,就可進入相應的目錄。
我們利用上面的窗口就可以打開mix文件了。
下面以《陰雲密布》為例詳細介紹從mix文件中提取文件的方法:
在上面的窗口中用滑鼠左鍵單擊「文件」->「打開」,彈出一個標題為「打開」的窗口,在該窗口內找到並進入游戲目錄,找到一個「expandmd01.mix」文件,在該窗口內雙擊這個文件,我們就打開了這個mix文件。如下圖:
在左側的窗口中可以看到這個mix文件中所包含的全部文件信息,它顯示了每個文件的文件名、文件類型、文件大小等信息。用滑鼠左鍵單擊其中的某個文件(以「rulesmd.ini」為例),在右側窗口立即可以顯示這個文件的部分內容預覽。
如果你要編輯這個文件(這個文件很重要),必須把它提取出來。方法是:用滑鼠右鍵在左側窗口單擊這個文件,彈出的右鍵菜單中有一個選項是「釋放(E)...」,用滑鼠左鍵單擊一下這個選項,出現一個以「另存為」為標題的窗口,你可以把這個「rulesmd.ini」文件釋放到硬碟的任意一個地方,以方便你以後對它進行編輯。
Rules編輯
士兵系列代碼
士兵屬性
Category=Soldier 只有士兵才能用,代表由訓練類建築(Factory=InfantryType)來「建造」他們
佔領建築
Occupier=yes 能否佔領平民建築=能
OccupyWeapon=UCMP5 佔領平民建築後使用的武器
EliteOccupyWeapon=UCMP5E 3級時佔領平民建築後使用的武器
OccupyPip= 建築下面的人口標志小格的顏色,一共有5種顏色:PersonBlue為藍色,盟軍專用;PersonRed為紅色,蘇軍專用;PersonPurple為紫色,尤里專用;PersonGreen為綠色,中國專用;沒有此語句默認為白色
IFV裝載時顯示的名稱
UseOwnName=true 一直使用自己的名稱,比如將伯里斯裝入步兵戰車後,顯示為「伯里斯 多功能步兵戰斗車」
不可升級
Trainable=no 用了這個以後該單位無論殺多少人都不會升級,所以只用於遙控性單位或自爆性的單位,還有狗狗。但是強行拖進部隊訓練場後仍然可以升3級。沒有此語句則默認可以升級。
盔甲類型 注意,盔甲類型和防禦能力無關,只和彈頭有關,即是說,有時候無盔甲比重型盔甲更經打
Armor=none 無盔甲
Armor=flak 英雄盔甲
Armor=Plate 重型盔甲
探測隱形
Sensors=yes 能探測隱形單位=能
SensorsSight=8 探測范圍=8格,即當靠近敵放隱形單位8格以內時,敵放隱形單位將現身
維修建築
Engineer=yes 凡是有了這個語句的單位都成了工程兵,可以進入己方受損建築進行維修或進入敵放建築強占
行動范圍
MovementZone=Infantry 專用於步兵,位置判定在地面上高度1層以下的范圍,只能在陸地上行走
MovementZone= 專用於飛行兵,位置判定在地面上高度1層以上的范圍,可以到達任何地方
動作類型
Locomotor={4A582744-9839-11d1-B709-00A024DDAFD1} 步兵專用「行走」,單點陣圖像為SHP,必須在Art里設置Sequence。默認SpeedType=Foot
SpeedType=Amphibious 兩棲步兵單位專用,必須有水中的SHP動畫以及對應的Sequence,同時需要加上語句「MovementZone=AmphibiousDestroyer」,這樣就可以水陸兩棲了。詳細代碼請見海豹。
Locomotor={4A582746-9839-11d1-B709-00A024DDAFD1} 飛行兵專用「飛行」,速度方式默認為SpeedType=Winged
SpeedType=Hover 使用了這個語句的飛行兵不會在空中不動,而是不停的上下浮動,同時需要加上語句「MovementZone=」,否則就是在地表懸浮了
IFV裝載時的武器
IFVMode=0 只能用於步兵,對飛行兵毫無意義。數字代表IFV的武器和炮塔圖形,共18種武器
免役
ImmuneToVeins=yes 機動部隊不會誤傷他
ImmuneToPsionics=yes 精神控制對他無效,通常用於智力底下的單位、遙控單位、飛行式空軍單位、英雄單位或召喚者單位
ImmuneToRadiation= yes 輻射對他無效
非人類單位
NotHuman=yes 動物專用,不知道究竟有什麼實際的用處,通常人類單位都有語句「Category=Soldier或Civilian」,而動物沒有
Natural=yes 野外生物專用,不知道有什麼實際用處,通常和「NotHuman=yes」同時存在。狂獸人居然還有「Unnatural=yes」,難道是指半人+半獸?
平民單位
Category=Civilian 使用了這個語句後單位將隨機地到處亂走,被攻擊後有逃跑的動作,但這個動作必須由Sequence指定
對戰初始兵力
AllowedToStartInMultiplayer=yes 使用yes的話就會在對戰開場時隨基地車出現,no則不出現。一個派別至少必須有一種士兵單位作為初始兵力,否則就會彈出出錯對話框
自動進入范圍防禦狀態
DefaultToGuardArea=yes 有了這個語句的單位,不需要人工指揮,只要達到GuardRange就會自動迎敵,通常用於射程較短的單位
永不畏懼
Fearless=yes 只用於控制單位的語音,永不畏懼即不管怎樣挨打都不會叫苦,「VoiceFeedback和DieSound」就失去作用了
人口數量限制
BuildLimit=1 一次最多隻能出這么多個這種單位,對機動部隊和建築同樣有效(載入物除外),這個限制的數值不能超過255,通常限制英雄和特殊建築只能有1個,對其他單位和建築只要限製得合理平衡就好
機動部隊系列代碼
戰車屬性
Category=AFV 只有戰車和戰艦才能用,代表由陸軍工廠類建築(Factory=UnitType和WeaponsFactory=yes)來生產他們
Category=Support 用處同上,沒有什麼實際意義,「Support」難道是指「後勤部隊」?
Category=Transport 運輸工具專用,有了這個語句的戰車可以裝人或坦克
戰艦屬性
Naval=yes 除了必須使用戰車屬性的其中一種以外,還需要這個語句,代表由海軍工廠類建築(Factory=UnitType、WeaponsFactory=yes、Naval=yes和WaterBound=yes)來生產他們
空軍屬性
Category=AirPower 可以飛的機動部隊專用,代表由陸軍工廠類建築或機場類建築(Factory=AircraftType和Helipad=yes)來生產他們
ConsideredAircraft=yes 有此語句的飛機將從工廠的天窗出來
AirportBound=yes 有此語句的飛機將由機場類建築生產
裝甲類型 注意,裝甲類型和防禦能力無關,只和彈頭有關,即是說,有時候輕型裝甲比重型裝甲更經打
Armor=light 輕型裝甲
Armor=medium 中型裝甲
Armor=heavy 重型裝甲
Armor=special_1 輕型特殊裝甲,我用他來做攻擊機專用裝甲
Armor=special_2 重型特殊裝甲,我用他來做戰斗機專用裝甲
旋轉炮塔
Turret=yes 可以不動車身,只需轉動炮塔就可以打八方,海陸空通用。炮塔必須有對應的VXL和HVA
固定炮塔
Turret=no 沒有炮塔的單位專用,如果給灰熊用上,則灰熊沒了腦袋。通常用於戰斗機,只要其武器里有語句「OmniFire=yes」
那麼它不動機身就可以從固定的地方(如機翼兩端)發射出武器對付八方的敵人,這招叫全向開火。詳細請見飛龍
雷達隱形
RadarInvisible=yes 敵方在小地圖里看不到它的存在,只在大地圖里能看到。
可以探路
MoveToShroud=yes 默認的空軍是不能把黑幕探亮的,有了這個語句,飛機就可以當作「飛在空中的坦克」用,可飛進黑幕探路
陸軍動作方式
Locomotor={4A582741-9839-11d1-B709-00A024DDAFD1} 用於車輛單位,圖像為VXL的單位能夠正常的旋轉、移動、搖晃、上下山,若是SHP則沒有以上動作。它的速度方式默認為SpeedType=Wheel,只能在地面上行動
Locomotor={4A582742-9839-11d1-B709-00A024DDAFD1} 用於兩棲單位的「懸浮」,在半空上下浮動,位置判定在地表,可以下水,如果又有語句「SpeedType=Amphibious和MovementZone=AmphibiousCrusher」,那麼在水中的速度將大大快於岸上,但單位將與地面接觸,失去了懸浮效果。詳細請見風暴
不能停留於橋下
TooBigToFitUnderBridge=true 即使你讓他們運動到橋下時按「S」強行停止,他們也會自動出來,除非是任務腳本的設置
碾壓物體
Crusher=yes 陸軍單位專用,可以碾壓士兵
OmniCrusher=yes 戰斗要塞的特點,可以碾壓任何有生命的單位,包括圍牆,需要和語句「MovementZone=CrusherAll」連用
OmniCrushResistant=yes 禁止被戰斗要塞或其他戰車碾壓,效果和「Crusheable=no」相仿
隱藏於箱箱中
CrateGoodie=yes 在隨機部隊寶箱中能拾得它,千萬不要用於戰艦和飛機,否則小心出錯,最好不要用於人,否則BT
運輸單位
PipScale=Passengers 下方用小格表示容量空間
Passengers=10 容量空間大小,需要以被載者的體積來定可運載數量
OpenTopped=yes 被載者可以在裡面向外開火,戰斗要塞的特點
SizeLimit=6 裝載口徑,體積大於6的東西都無法進入
EnterTransportSound=EnterTransport 裝載聲音
LeaveTransportSound=ExitTransport 釋放聲音,這兩個聲音最好不要去更改
不可放入坦克堡壘
Bunkerable=no 沒有此語句時默認可以放入
不接受攻擊命令
StupidHunt=yes 常用於片面武器的單位,即使你強行叫它去打它不能攻擊的東西,它也不會動
移動攻擊
OpportunityFire=yes 可以一邊移動一邊開火,但命中率~~,所以通常用於武器為導彈、光束、機槍等的單位,如果武器為炮彈,則大有可能打偏。這個語句對沒有炮塔而且又不能全向開火的單位無效
噴氣式飛行
JumpjetSpeed=32 平飛速度
JumpjetClimb=7 爬升速度,遇到山脈、樓房時抬升飛行高度時的上升速度
JumpjetCrash=15 被擊落後的下落速度,不可大於15,否則就會在地面上打轉,一直不死,且無法被攻擊,也無法接受指令,因為判定認為它為已經死亡
JumpJetAccel=10 啟動加速度,太大的話看不出加速的感覺
JumpJetTurnRate=2 掉轉方向的速度,數值越小轉彎半徑就越小,轉彎越快
JumpjetHeight=1000 平飛時離地面的高度,1000最為合適,大致在第6層到第8層之間
JumpjetNoWobbles=yes 禁止浮動,飛機在空中停留不動,不會上下浮動
永不落地
BalloonHover=yes 飛機從工廠出來以後就再不落地,除非遇到變形部署或被擊落
可以落地
Landable=yes 常用於運輸機,在地面上,只要沒有指令時就會自動著陸,除非有人占據了它的著陸點
空中攻擊
HoverAttack=yes 如果飛機在地面,那麼必須升空以後方可攻擊敵軍
上方攻擊
Fighter=yes 如果飛機處於它攻擊對象的頭頂上時仍然可以開火而且能夠命中,否則不行,多用於攻擊機和轟炸機
毫無主見
CanPassiveAquire=no 永遠只在得到指令後才按計劃行動,自己不會變通,更不會私自行動
CanRetaliate=no 打不還手,如果在執行指令(哪怕只是移動)的過程中遭到攻擊也不會自動還手,此二語句最好不要濫用,通常只用於不易控制的單位、積極性太高的單位、極度危險的單位(如血咒)或是飛行式攻擊機(如黑鷹)
展開部署
DeploysInto=DROD 按「D」展開後變成一個建築,比如基地車變成基地
變形部署 注意,部署後將只能使用副武攻擊
IsSimpleDeployer=yes 表示按「D」部署後仍然還是它自己,看似變成了另外一個單位,其實這只是障眼法
UnloadingClass=MMBTNK 部署後更換為MMBTNK的皮膚,這個MMBTNK必須是另一個有效的單位。其實完全可以繼續使用它自己的皮膚
DeployingAnim=MMBDEPL 部署過程的動畫,不要動畫則是立刻變,看起來不連貫
DeployFire=yes 部署後可以開火,當然要能開火,否則還部署它干什麼
Turret=yes 部署後使用旋轉炮塔,當然要使用,因為部署後單位不能轉動和移動,沒有旋轉炮塔還打什麼打
釋放部署
Deployer=yes 表示按「D」後使用副武攻擊,這種副武由於是以它為中心向四周發散,所以成為釋放型副武,通常有震盪波、混亂氣流等。可以連續釋放多次
DeployFire=yes 表示部署後立刻以副武開火
UndeployDelay=150 這個語句對戰車無效,只對士兵有效,代表他在釋放的時候將硬直這么多時間不能做其他任何動作,其硬直動作需要SHP支持並需要設置Sequence
建築系列代碼
建築屬性
BuildCat=Tech 科技類,沒有生產作用的建築,只提供建造前提,如作戰實驗室
BuildCat=Power 能源類,專門用於提供電力,只有這類建築當Power值為正時不會損失動畫效果
Factory=BuildingType 基地類,專門建造建築。
BuildCat=Resource 資源類,專門負責採集礦石,只有這類建築可以支持礦車進入並卸礦,需要和語句「DockUnload=yes及Refinery=yes」連用。前4類出現在建築欄
BuildCat=Combat 防禦類,出現在防禦欄
材料類型 注意,材料類型和防禦能力無關,只和彈頭有關,即是說,有時候木質材料比鋼精混凝土更經打
Armor=wood 木質材料
Armor=steel 鋼鐵材料
Armor=concrete 鋼精混凝土材料
生產類型
Factory=InfantryType 兵營類,訓練步兵,可以選擇集合點
Factory=UnitType 工廠類,生產戰車或噴氣式戰斗機,可以選擇集合點,需要與「WeaponsFactory=yes」連用。如果有「WaterBound=yes」則是海軍工廠,生產戰艦
Factory=AircraftType 機場類,生產飛行式攻擊機
維修作用
UnitRepair=yes 維修廠,維修破損的戰車,可以選擇出廠點
訓練作用
Armory=yes 步兵訓練場,非3級的步兵可以進入,出來後直接升成3級,不能選擇集合點,但如果把訓練場加上「Factory=InfantryType」,那麼就可以選擇集合點,但是訓練場就成了2號兵營了
Ammo=9999 訓練數量,只能訓練9999個人,通常把這個數字設多些(不能用-1),以保證幾乎用不完的
載入作用
Upgrades=2 用於主體建築,以它為基礎,往它上面還可以載入2個部分
PowersUpBuilding=UAPOWR 用於附屬部分,載入於主體建築UAPOWR(地熱發電廠),即只能放在主體建築上面,不能放在空地或其他地方
PowersUpToLevel=-1 用於附屬部分,表示總共可以載入的次數,通常需要無限載入,直到用滿主體建築的載入量2個為止,詳細請見地熱發電廠和能量渦輪之間的關系
回收建築
UndeploysInto=FLMCV 建築可以被命令移動而被拖開成為戰車單位,通常用於基地的建立和回收
免費單位
FreeUnit=FLMIN 通常用於礦廠,建立以後出現一個免費贈送的單位。要是這個建築可以反復收起來再展開,那麼就可以生成一大堆免費單位,這么BT的招數專用於布雷戰車,如果免費單位不是地雷而是光棱,那麼就真的太BT了
用圍牆包圍
ProtectWithWall=yes 給電腦用的,電腦會給這個建築以圍牆保護
可被滲透
Spyable=yes 間諜可以進入,對於不同類的建築可以產生一些不同的效果,進入機場以外的生產類建築可以給單位加1級,進入雷達可以使對方地圖全黑,進入電力類建築可以斷電1分鍾,進入資源類建築(收起來的農民礦廠不算)可以偷錢,進入超級武器可以重置其充能時間,進入實驗室可以偷出一些科技單位。
可被吸取
Drainable=yes 飛碟可以吸取它的能量,或停止工作,或資金被吸收
可被佔領
Capturable=true 工程兵可以進入佔領,否則的話不能進入
特殊平台
Bib=yes 一些有特殊功能的建築需要這個平台,比如機場用來停飛機,地面單位可以從這個平台上經過,這個Bib需要圖形和ART的支持
無人控制
BaseNormal=no 這種建築不能作為連接基礎,通常用於防禦建築和船廠以及一些可以相隔很遠建造的建築
Crewed=no 這種建築被擊毀或賣掉後不會出來殘兵,這個語句對地面戰車也有效,但最好不要用於飛機和戰艦,否則小心出錯
過載建築
Overpowerable=true 這種建築可以被有「充能功能」的單位充能從而造成供能過多,實現攻擊力加強,過載前用主武攻擊,過載後的使用副武攻擊,比如磁暴線圈和光明聖碑。
彈體系列代碼
常規彈體
Damage=100 武器的攻擊力,對於一些特殊的武器它還表示其他一些量,比如混亂氣流的混亂時間、偵察機的探路面積、心靈控制可變敵人的總數等。1代表有特殊作用,可以攻擊,但不造成傷害,0和2代表不能攻擊,負數代表可以攻擊,但不是傷害而是加血,比如維修車
AmbientDamage=200 武器的穿偷攻擊力,只有當武器類型為聲波和粒子系統類時才可以有穿偷效應
ROF=80 武器的發射頻率,60表示1秒一次,數字越大就停頓得越久才發第二炮
Range=15 武器射程上限
MinimumRange=8 武器射程下限
Projectile=Cannon 武器的射彈形狀及飛行軌跡,最常用的是Invisible一類無實體的射彈類型
Speed=40 彈體飛行速度,數字越大就飛得越快,但這個速度只對炮彈和導彈兩類有實體的彈體有效
Warhead=ApocAP 彈體對應的彈頭
Report=ApocalypseAttackGround 開炮時的炮口聲音
Anim=GUNFIRE 開炮時的炮口動畫,比如坦克炮開火時炮口有火花
DecloakToFire=no 當使用這個武器的單位處於隱形狀態或被隱形屏蔽狀態時,他開火是不會顯形的
Burst=2 一炮發射2個炮彈,每一個炮彈都有攻擊力,所以2個炮彈將造成雙倍攻擊力,建議這個數字不要大於4
Bright=yes 彈頭擊中目標或地面時將爆出一團閃光,Damage的值越大那麼閃光面積就越大
隱蔽的彈體
RevealOnFire=no 這種單位在開火的時候不會顯示給對方看,通常用於隱形單位、幻影單位和狙擊單位
游戲平台定死了的彈體
IsLaser=true 激光類武器,其Projectile=Invisible類最好
IsMagBeam=yes 磁電波類武器,其Projectile=Invisible類最好
IsSonic=Yes 聲波類武器,其Projectile=Invisible類最好
可自定義的彈體
IsRailgun=true 雷射炮,屬於粒子系統類武器,其Projectile=Invisible類最好,這個語句要和語句「AttachedParticleSystem」連用,還需要設置對應的粒子系統
光束設置
LaserInnerColor = 255,0,255 設置激光和雷射炮中心光束的顏色,InnerColor代表發射時的顏色
LaserOuterColor = 255,0,255 OuterColor代表逐漸暗淡到消失時的顏色
LaserOuterSpread= 255,0,255 OuterSpread代表向外圍散開時的顏色
LaserDuration = 30 光束閃動的時間,數字越大,激光就越久才消失
IsHouseColor=false 如果有了以上3個Color值,那麼這個語句一定要false。如果沒有以上3個值,那麼就必須為true,光束顏色自適應成玩家的所屬色
自殺武器
LimboLaunch=yes 使用這種武器的單位開火後將消失,判定認為它已經死亡,人口空間里卻還認為它存在。這種武器最好在射彈里設置上它的本體圖形,這樣看起來是它去撞擊敵方單位,就象自爆飛機。使用自殺武器的單位最好不要限制它的人口數量,否則撞完了就不能再造了
高射武器
Lobber=yes 只用於有實體的彈體,其飛行路線將在開炮時先望上高拋,然後再落地
㈥ 處理器的發展具體什麼情況怎麼一看就知道處理器的情況啊
心問題--從數學談起:
記得當年大一入學,每周六課時高等數學,天天作業不斷(那時是六日工作制)。頗有些同學驚呼走錯了門:咱們這到底念的是什麼系?不錯,你沒走錯門,這就是計算機科學與技術系。我國計算機科學系裡的傳統是培養做學術研究,尤其是理論研究的人(方向不見得有問題,但是做得不是那麼盡如人意)。而計算機的理論研究,說到底了,如網路安全,圖形圖像學,視頻音頻處理,哪個方向都與數學有著很大的關系,雖然也許是正統數學家眼裡非主流的數學。這里我還想闡明我的一個觀點:我們都知道,數學是從實際生活當中抽象出來的理論,人們之所以要將實際抽象成理論,目的就在於想用抽象出來的理論去更好的指導實踐,有些數學研究工作者喜歡用一些現存的理論知識去推導若干條推論,殊不知其一:問題考慮不全很可能是個錯誤的推論,其二:他的推論在現實生活中找不到原型,不能指導實踐。嚴格的說,我並不是一個理想主義者,政治課上學的理論聯系實際一直是指導我學習科學文化知識的航標(至少我認為搞計算機科學與技術的應當本著這個方向)。
其實我們計算機系學數學光學高等數學是不夠的(典型的工科院校一般都開的是高等數學),我們應該像數學系一樣學一下數學分析(清華計算機系開的好像就是數學分析),數學分析這門科學,咱們學計算機的人對它有很復雜的感情。在於它是偏向於證明型的數學課程,這對我們培養良好的分析能力極有幫助。我的軟體工程學導師北工大數理學院的王儀華先生就曾經教導過我們,數學系的學生到軟體企業中大多作軟體設計與分析工作,而計算機系的學生做程序員的居多,原因就在於數學系的學生分析推理能力,從所受訓練的角度上要遠遠在我們之上。當年出現的怪現象是:計算機系學生的高中數學基礎在全校數一數二(希望沒有冒犯其它系的同學),教學課時數也僅次於數學系,但學完之後的效果卻不盡如人意。難道都是學生不努力嗎,我看未見得,方向錯了也說不一定,其中原因何在,發人深思。
我個人的淺見是:計算機系的學生,對數學的要求固然跟數學系不同,跟物理類差別則更大。通常非數學專業的所謂「高等數學」,無非是把數學分析中較困難的理論部分刪去,強調套用公式計算而已。而對計算機系來說,數學分析里用處最大的恰恰是被刪去的理論部分。說得難聽一點,對計算機系學生而言,追求算來算去的所謂「工程數學」已經徹底地走進了誤區。記上一堆曲面積分的公式,難道就能算懂了數學?那倒不如現用現查,何必費事記呢?再不然直接用Mathematics或是Matalab好了。
我在系裡最愛做的事情就是給學弟學妹們推薦參考書。中文的數學分析書,一般都認為以北大張築生老師的「數學分析新講」為最好。萬一你的數學實在太好,那就去看菲赫金哥爾茨的「微積分學教程」好了--但我認為沒什麼必要,畢竟你不想轉到數學系去。吉米多維奇的「數學分析習題集」也基本上是計算型的東東。書的名氣很大,倒不見得適合我們,還是那句話,重要的是數學思想的建立,生活在信息社會里我們求的是高效,計算這玩意還是留給計算機吧。不過現在多用的似乎是復旦大學的《數學分析》也是很好的教材。
中國的所謂高等代數,就等於線性代數加上一點多項式理論。我以為這有好的一面,因為可以讓學生較早感覺到代數是一種結構,而非一堆矩陣翻來覆去。這里不得不提南京大學林成森,盛松柏兩位老師編的「高等代數」,感覺相當舒服。此書相當全面地包含了關於多項式和線性代數的基本初等結果,同時還提供了一些有用的又比較深刻的內容,如Sturm序列,Shermon-Morrison公式,廣義逆矩陣等等。可以說,作為本科生如能吃透此書,就可以算高手。國內較好的高等代數教材還有清華計算機系用的那本,清華出版社出版,書店裡多多,一看就知道。從抽象代數的觀點來看,高等代數里的結果不過是代數系統性質的一些例子而已。莫宗堅先生的《代數學》里,對此進行了深刻的討論。然而莫先生的書實在深得很,作為本科生恐怕難以接受,不妨等到自己以後成熟了一些再讀。
正如上面所論述的,計算機系的學生學習高等數學:知其然更要知其所以然。你學習的目的應該是:將抽象的理論再應用於實踐,不但要掌握題目的解題方法,更要掌握解題思想,對於定理的學習:不是簡單的應用,而是掌握證明過程即掌握定理的由來,訓練自己的推理能力。只有這樣才達到了學習這門科學的目的,同時也縮小了我們與數學系的同學之間思維上的差距。
概率論與數理統計這門課很重要,可惜大多數院校講授這門課都會少些東西。少了的東西現在看至少有隨機過程。到畢業還沒有聽說過Markov過程,此乃計算機系學生的恥辱。沒有隨機過程,你怎麼分析網路和分布式系統?怎麼設計隨機化演算法和協議?據說清華計算機系開有「隨機數學」,早就是必修課。另外,離散概率論對計算機系學生來說有特殊的重要性。而我們國家工程數學講的都是連續概率。現在,美國已經有些學校開設了單純的「離散概率論」課程,乾脆把連續概率刪去,把離散概率講深些。我們不一定要這么做,但應該更加強調離散概率是沒有疑問的。這個工作我看還是盡早的做為好。
計算方法學(有些學校也稱為數學分析學)是最後一門由數理學院給我們開的課。一般學生對這門課的重視程度有限,以為沒什麼用。不就是照套公式嘛!其實,做圖形圖像可離不開它,密碼學搞深了也離不開它。而且,在很多科學工程中的應用計算,都以數值的為主。這門課有兩個極端的講法:一個是古典的「數值分析」,完全講數學原理和演算法;另一個是現在日趨流行的「科學與工程計算」,乾脆教學生用軟體包編程。我個人認為,計算機系的學生一定要認識清楚我們計算機系的學生為什麼要學這門課,我是很偏向於學好理論後用計算機實現的,最好使用C語言或C++編程實現。向這個方向努力的書籍還是挺多的,這里推薦大家高等教育出版社(CHEP)和施普林格出版社(Springer)聯合出版的《計算方法(Computational Methods)》,華中理工大學數學系寫的(現華中科技大學),這方面華科大做的工作在國內應算是比較多的,而個人認為以這本最好,至少程序設計方面涉及了:任意數學函數的求值,方程求根,線性方程組求解,插值方法,數值積分,場微分方程數值求解。李慶揚的那本則理論性過強,與實際應用結合得不太緊。
每個學校本系裡都會開一門離散數學,涉及集合論,圖論,和抽象代數,數理邏輯。不過,這么多內容擠在離散數學一門課里,是否時間太緊了點?另外,計算機系學生不懂組合和數論,也是巨大的缺陷。要做理論,不懂組合或者數論吃虧可就太大了。從理想的狀態來看,最好分開六門課:集合,邏輯,圖論,組合,代數,數論。這個當然不現實,因為沒那麼多課時。也許將來可以開三門課:集合與邏輯,圖論與組合,代數與數論。(這方面我們學校已經著手開始做了)不管課怎麼開,學生總一樣要學。下面分別談談上面的三組內容。
古典集合論,北師大出過一本《基礎集合論》不錯。
數理邏輯,中科院軟體所陸鍾萬教授的《面向計算機科學的數理邏輯》就不錯。現在可以找到陸鍾萬教授的講課錄像,自己去看看吧。總的來說,學集合/邏輯起手不難,普通高中生都能看懂。但越往後越感覺深不可測。
學完以上各書之後,如果你還有精力興趣進一步深究,那麼可以試一下GTM系列中的《Introction to Axiomatic Set Theory》和《A Course of Mathematical Logic》。這兩本都有世界圖書出版社的引進版。你如果能搞定這兩本,可以說在邏輯方面真正入了門,也就不用再浪費時間聽我瞎侃了。
據說全中國最多隻有三十個人懂圖論。此言不虛。圖論這東東,技巧性太強,幾乎每個問題都有一個獨特的方法,讓人頭痛。不過這也正是它魅力所在:只要你有創造性,它就能給你成就感。我的導師說,圖論裡面隨便揪一塊東西就可以寫篇論文。大家可以體會裡面內容之深廣了吧!國內的圖論書中,王樹禾老師的「圖論及其演算法」非常成功。一方面,其內容在國內教材里算非常全面的。另一方面,其對演算法的強調非常適合計算機系(本來就是科大計算機系教材)。有了這本書為主,再參考幾本翻譯的,如Bondy & Murty的《圖論及其應用》,人民郵電出版社翻譯的《圖論和電路網路》等等,就馬馬虎虎,對本科生足夠了。再進一步,世界圖書引進有GTM系列的"Modern Graph Theory"。此書確實經典!國內好象還有一家出版了個翻譯版。不過,學到這個層次,還是讀原版好。搞定這本書,也標志著圖論入了門。 外版的書好就好在這里,最新的科技成果裡面都有論述,別的先不說,至少是「緊跟時代的理論知識」。
組合感覺沒有太適合的國產書。還是讀Graham和Knuth等人合著的經典「具體數學」吧,西安電子科技大學出版社有翻譯版。
抽象代數,國內經典為莫宗堅先生的「代數學」。此書是北大數學系教材,深得好評。然而對本科生來說,此書未免太深。可以先學習一些其它的教材,然後再回頭來看「代數學」。國際上的經典可就多了,GTM系列裡就有一大堆。推薦一本談不上經典,但卻最簡單的,最容易學的:這本「Introction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代數和線性代數結合起來,對初學者來說非常理想,我校比較牛的同學都有收藏。
數論方面,國內有經典而且以困難著稱的」初等數論「(潘氏兄弟著,北大版)。再追溯一點,還有更加經典(可以算世界級)並且更加困難的」數論導引「(華羅庚先生的名著,科學版,九章書店重印,繁體的看起來可能比較困難)。把基礎的幾章搞定一個大概,對本科生來講足夠了。但這只是初等數論。本科畢業後要學計算數論,你必須看英文的書,如Bach的"Introction to Algorithmic Number Theory"。
計算機科學理論的根本,在於演算法。現在很多系裡給本科生開設演算法設計與分析,確實非常正確。環顧西方世界,大約沒有一個三流以上計算機系不把演算法作為必修的。演算法教材目前公認以Corman等著的"Introction to Algorithms"為最優。對入門而言,這一本已經足夠,不需要再參考其它書。
再說說形式語言與自動機。我看過北郵的教材,應該說寫的還清楚。但是,有一點要強調:形式語言和自動機的作用主要在作為計算模型,而不是用來做編譯。事實上,編譯前端已經是死領域,沒有任何open problems,北科大的班曉娟博士也曾經說過,編譯的技術已相當成熟。如果為了這個,我們完全沒必要去學形式語言--用用yacc什麼的就完了。北郵的那本在國內還算比較好,但是在深度上,在跟可計算性的聯繫上都有較大的局限,現代感也不足。所以建議有興趣的同學去讀英文書,不過國內似乎沒引進這方面的教材。可以去互動出版網上看一看。入門以後,把形式語言與自動機中定義的模型,和數理邏輯中用遞歸函數定義的模型比較一番,可以說非常有趣。現在才知道,什麼叫「宮室之美,百官之富」!
計算機科學和數學的關系有點奇怪。二三十年以前,計算機科學基本上還是數學的一個分支。而現在,計算機科學擁有廣泛的研究領域和眾多的研究人員,在很多方面反過來推動數學發展,從某種意義上可以說是孩子長得比媽媽還高了。但不管怎麼樣,這個孩子身上始終流著母親的血液。這血液是the mathematical underpinning of computer science(計算機科學的數學基礎),也就是理論計算機科學。原來在東方大學城圖書館中曾經看過一本七十年代的譯本(書皮都沒了,可我就愛關注這種書),大概就叫《計算機數學》。那本書若是放在當時來講決是一本好書,但現在看來,涵蓋的范圍還算廣,深度則差了許多,不過推薦大一的學生倒可以看一看,至少可以使你的計算數學入入門。
最常和理論計算機科學放在一起的一個詞是什麼?答:離散數學。這兩者的關系是如此密切,以至於它們在不少場合下成為同義詞。(這一點在前面的那本書中也有體現)傳統上,數學是以分析為中心的。數學系的同學要學習三四個學期的數學分析,然後是復變函數,實變函數,泛函數等等。實變和泛函被很多人認為是現代數學的入門。在物理,化學,工程上應用的,也以分析為主。
隨著計算機科學的出現,一些以前不太受到重視的數學分支突然重要起來。人們發現,這些分支處理的數學對象與傳統的分析有明顯的區別:分析研究的問題解決方案是連續的,因而微分,積分成為基本的運算;而這些分支研究的對象是離散的,因而很少有機會進行此類的計算。人們從而稱這些分支為「離散數學」。「離散數學」的名字越來越響亮,最後導致以分析為中心的傳統數學分支被相對稱為「連續數學」。
離散數學經過幾十年發展,基本上穩定下來。一般認為,離散數學包含以下學科 :
1) 集合論,數理邏輯與元數學。這是整個數學的基礎,也是計算機科學的基礎。
2) 圖論,演算法圖論;組合數學,組合演算法。計算機科學,尤其是理論計算機科學的核心是
演算法,而大量的演算法建立在圖和組合的基礎上。
3) 抽象代數。代數是無所不在的,本來在數學中就非常重要。在計算機科學中,人們驚訝地發現代數竟然有如此之多的應用。
但是,理論計算機科學僅僅就是在數學的上面加上「離散」的帽子這么簡單嗎?一直到大約十幾年前,終於有一位大師告訴我們:不是。D.E.Knuth(他有多偉大,我想不用我廢話了)在Stanford開設了一門全新的課程Concrete Mathematics。 Concrete這個詞在這里有兩層含義:
首先:對abstract而言。Knuth認為,傳統數學研究的對象過於抽象,導致對具體的問題關心不夠。他抱怨說,在研究中他需要的數學往往並不存在,所以他只能自己去創造一些數學。為了直接面向應用的需要,他要提倡「具體」的數學。在這里我做一點簡單的解釋。例如在集合論中,數學家關心的都是最根本的問題--公理系統的各種性質之類。而一些具體集合的性質,各種常見集合,關系,映射都是什麼樣的,數學家覺得並不重要。然而,在計算機科學中應用的,恰恰就是這些具體的東西。Knuth能夠首先看到這一點,不愧為當世計算機第一人。其次,Concrete是Continuous(連續)加上discrete(離散)。不管連續數學還是離散數學,都是有用的數學!
理論與實際的結合--計算機科學研究的范疇
前面主要是從數學角度來看的。從計算機角度來看,理論計算機科學目前主要的研究領域包括:可計算性理論,演算法設計與復雜性分析,密碼學與信息安全,分布式計算理論,並行計算理論,網路理論,生物信息計算,計算幾何學,程序語言理論等等。這些領域互相交叉,而且新的課題在不斷提出,所以很難理出一個頭緒來。想搞搞這方面的工作,推薦看中國計算機學會的一系列書籍,至少代表了我國的權威。下面隨便舉一些例子。
由於應用需求的推動,密碼學現在成為研究的熱點。密碼學建立在數論(尤其是計算數論),代數,資訊理論,概率論和隨機過程的基礎上,有時也用到圖論和組合學等。很多人以為密碼學就是加密解密,而加密就是用一個函數把數據打亂。這樣的理解太淺顯了。
現代密碼學至少包含以下層次的內容:
第一,密碼學的基礎。例如,分解一個大數真的很困難嗎?能否有一般的工具證明協議正確?
第二,密碼學的基本課題。例如,比以前更好的單向函數,簽名協議等。
第三,密碼學的高級問題。例如,零知識證明的長度,秘密分享的方法。
第四,密碼學的新應用。例如,數字現金,叛徒追蹤等。
在分布式系統中,也有很多重要的理論問題。例如,進程之間的同步,互斥協議。一個經典的結果是:在通信信道不可靠時,沒有確定型演算法能實現進程間協同。所以,改進TCP三次握手幾乎沒有意義。例如時序問題。常用的一種序是因果序,但因果序直到不久前才有一個理論上的結果....例如,死鎖沒有實用的方法能完美地對付。例如,......操作系統研究過就自己去舉吧!
如果計算機只有理論,那麼它不過是數學的一個分支,而不成為一門獨立的科學。事實上,在理論之外,計算機科學還有更廣闊的天空。
我一直認為,4年根本不夠學習計算機的基礎知識,因為面太寬了,8年,應該差不多了......
這方面我想先說說我們系在各校普遍開設的《計算機基礎》。在高等學校開設《計算機基礎課程》是我國高教司明文規定的各專業必修課程要求。主要內容是使學生初步掌握計算機的發展歷史,學會簡單的使用操作系統,文字處理,表格處理功能和初步的網路應用功能。但是在計算機科學系教授此門課程的目標決不能與此一致。在計算機系課程中目標應是:讓學生較為全面的了解計算機學科的發展,清晰的把握計算機學科研究的方向,發展的前沿即每一個課程在整個學科體系中所處的地位。搞清各學科的學習目的,學習內容,應用領域。使學生在學科學習初期就對整個學科有一個整體的認識,以做到在今後的學習中清楚要學什麼,怎麼學。計算機基本應用技能的位置應當放在第二位或更靠後,因為這一點對於本系的學生應當有這個摸索能力。這一點很重要。推薦給大家一本書:機械工業出版社的《計算機文化》(New Perspective of Computer Science),看了這本書我才深刻的體會到自己還是個計算機科學初學者,才比較透徹的了解了什麼是計算機科學。
一個一流計算機系的優秀學生決不該僅僅是一個編程高手,但他一定首先是一個編程高手。我上大學的時候,第一門專業課是C語言程序設計,念計算機的人從某種角度講相當一部分人是靠寫程序吃飯的。關於第一程序設計語言該用哪一種。我個人認為,用哪種語言屬於末節,關鍵在養成良好的編程習慣。當年老師對我們說,打好基礎後學一門新語言只要一個星期。現在我覺得根本不用一個星期,前提是先把基礎打好。不要再猶豫了,學了再說,等你抉擇好了,別人已經會了幾門語言了。
匯編語言和微機原理是兩門特煩人的課。你的數學/理論基礎再好,也占不到什麼便宜。這兩門課之間的次序也好比先有雞還是先有蛋,無論你先學哪門,都會牽扯另一門課里的東西。所以,只能靜下來慢慢琢磨。這就是典型的工程課,不需要太多的聰明和頓悟,卻需要水滴石穿的漸悟。有關這兩門課的書,計算機書店裡不難找到。弄幾本最新的,對照著看吧。組成原理推薦《計算機組成與結構》清華大學王愛英教授寫的。匯編語言大家拿8086/8088入個門,之後一定要學80x86匯編語言。實用價值大,不落後,結構又好,寫寫高效病毒,高級語言里嵌一點匯編,進行底層開發,總也離不開他,推薦清華大學沈美明的《IBM-PC匯編語言程序設計》。有些人說不想了解計算機體系結構,也不想製造計算機,所以諸如計算機原理,匯編語言,介面之類的課覺得沒必要學,這樣合理嗎?顯然不合理,這些東西遲早得掌握,肯定得接觸,而且,這是計算機專業與其他專業學生相比的少有的幾項優勢。做項目的時候,了解這些是非常重要的,不可能說,僅僅為了技術而技術,只懂技術的人最多做一個編碼工人,而永遠不可能全面地了解整個系統的設計,而編碼工人是越老越不值錢。關於組成原理還有個講授的問題,在我學這門課程時老師講授時把CPU工作原理譽微程序設計這一塊略掉了,理由是我們國家搞CPU技術不如別的國家,搞了這么長時間好不容易出了個龍芯比Intel的還差個十萬八千里,所以建議我們不要學了。我看這在各校也未見得不是個問題吧!若真是如他所說,那中國的計算機科學哪個方向都可以停了,軟硬體,應用,有幾項搞得過美國,搞不過別人就不搞了,那我們坐在這里干什麼?教學的觀念需要轉變的。
模擬電路這東東,如今不僅計算機系學生搞不定,電子系學生也多半害怕。如果你真想軟硬體通吃,那麼建議你先看看邱關源的「電路原理」,也許此後再看模擬電路底氣會足些。教材:康華光的「電子技術基礎」(高等教育出版社)還是不錯的(我校電子系在用)。有興趣也可以參考童詩白的書。
數字電路比模擬電路要好懂得多。清華大學閻石的書算一本好教材,遺憾的一點是集成電路講少了些。真有興趣,看一看大規模數字系統設計吧(北航那本用的還比較多)。
計算機系統結構該怎麼教,國際上還在爭論。國內能找到的較好教材為Stallings的"Computer Organization and Architecture:Designing for Performance"(清華影印
本)。國際上最流行的則是「Computer architecture: aquantitative approach", by Patterson & Hennessy。
操作系統可以隨便選用《操作系統的內核設計與實現》和《現代操作系統》兩書之一。這兩部都可以算經典,唯一缺點就是理論上不夠嚴格。不過這領域屬於Hardcore System,所以在理論上馬虎一點也情有可原。想看理論方面的就推薦清華大學出版社《操作系統》吧,高教司司長張堯學寫的,我們教材用的是那本。 另外推薦一本《Windows操作系統原理》機械工業出版社的,這本書是我國操作系統專家在微軟零距離考察半年,寫作歷時一年多寫成的,教操作系統的專家除了清華大學的張堯學(現高教司司長)幾乎所有人都參加了。Bill Gates親自寫序。裡面不但結合windows2000,xp詳述操作系統的內核,而且後面講了一些windows編程基礎,有外版書的味道,而且上面一些內容可以說在國內外只有那本書才有對windows內核細致入微的介紹,
如果先把形式語言學好了,則編譯原理中的前端我看只要學四個演算法:最容易實現的遞歸下降;最好的自頂向下演算法LL(k);最好的自底向上演算法LR(k);LR(1)的簡化SLR(也許還有另一簡化LALR)。後端完全屬於工程性質,自然又是another story。
推薦教材:Kenneth C.Louden寫的「Compiler Construction Principles and Practice」即是《編譯原理及實踐》(機械工業出版社的譯本)
學資料庫要提醒大家的是,會用VFP,VB, Power builder不等於懂資料庫。(這世界上自以為懂資料庫的人太多了!)資料庫設計既是科學又是藝術,資料庫實現則是典型的工程。所以從某種意義上講,資料庫是最典型的一門計算機課程--理工結合,互相滲透。另外推薦大家學完軟體工程學後再翻過來看看資料庫技術,又會是一番新感覺。推薦教材:Abraham Silberschatz等著的 "Database System Concepts".作為知識的完整性,還推薦大家看一看機械工業出版社的《數據倉庫》譯本。
計算機網路的標准教材還是來自Tanenbaum的《Computer Networks》(清華大學有譯本)。還有就是推薦謝希仁的《計算機網路教程》(人民郵電出版社)問題講得比較清楚,參考文獻也比較權威。不過,網路也屬於Hardcore System,所以光看書是不夠的。建議多讀RFC,里可以按編號下載RFC文檔。從IP的讀起。等到能掌握10種左右常用協議,就沒有幾個人敢小看你了。再做的工作我看放在網路設計上就比較好了。
數據結構的重要性就不言而喻了,學完數據結構你會對你的編程思想進行一番革命性的洗禮,會對如何建立一個合理高效的演算法有一個清楚的認識。對於演算法的建立我想大家應當注意以下幾點:
當遇到一個演算法問題時,首先要知道自己以前有沒有處理過這種問題.如果見過,那麼你一般會順利地做出來;如果沒見過,那麼考慮以下問題:
1. 問題是否是建立在某種已知的熟悉的數據結構(例如,二叉樹)上?如果不是,則要自己設計數據結構。
2. 問題所要求編寫的演算法屬於以下哪種類型?(建立數據結構,修改數據結構,遍歷,查找,排序...)
3. 分析問題所要求編寫的演算法的數學性質.是否具備遞歸特徵?(對於遞歸程序設計,只要設計出合理的參數表以及遞歸結束的條件,則基本上大功告成.)
4. 繼續分析問題的數學本質.根據你以前的編程經驗,設想一種可能是可行的解決辦法,並證明這種解決辦法的正確性.如果題目對演算法有時空方面的要求,證明你的設想滿足其要求.一般的,時間效率和空間效率難以兼得.有時必須通過建立輔助存儲的方法來節省時間.
5. 通過一段時間的分析,你對解決這個問題已經有了自己的一些思路.或者說,你已經可以用自然語言把你的演算法簡單描述出來.繼續驗證其正確性,努力發現其中的錯誤並找出解決辦法.在必要的時候(發現了無法解決的矛盾),推翻自己的思路,從頭開始構思.
6. 確認你的思路可行以後,開始編寫程序.在編寫代碼的過程中,盡可能把各種問題考慮得詳細,周密.程序應該具有良好的結構,並且在關鍵的地方配有注釋.
7. 舉一個例子,然後在紙上用筆執行你的程序,進一步驗證其正確性.當遇到與你的設想不符的情況時,分析問題產生的原因是編程方面的問題還是演算法思想本身有問題.
8. 如果程序通過了上述正確性驗證,那麼在將其進一步優化或簡化。
9. 撰寫思路分析,注釋.
對於具體的演算法思路,只能靠你自己通過自己的知識和經驗來加以獲得,沒有什麼特定的規律(否則程序員全部可以下崗了,用機器自動生成代碼就可以了).要有豐富的想像力,就是說當一條路走不通時,不要鑽牛角尖,要敢於推翻自己的想法.我也只不過是初學者,說出上面的一些經驗,僅供大家參考和討論。
關於人工智慧,我覺得的也是非常值得大家仔細研究的,雖然不能算是剛剛興起的學科了,但是絕對是非常有發展前途的一門學科。我國人工智慧創始人之一,北京科技大學塗序彥教授(這老先生是我的導師李小堅博士的導師)對人工智慧這樣定義:人工智慧是模?
㈦ 什麼是編程,編程主要用來干什麼
編程(biān chéng)是編定程序的中文簡稱,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。
為了使計算機能夠理解人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。
(7)時空之門前端代碼生成器45擴展閱讀:
編程的語言:
1、機器語言
在計算機系統中,一條機器指令規定了計算機系統的一個特定動作。一個系列的計算機在硬體設計製造時就用了若干指令規定了該系列計算機能夠進行的基本操作,這些指令一起構成了該系列計算機的指令系統。
2、匯編語言
在匯編語言中,每一條用符號來表示的匯編指令與計算機機器指令一一對應;記憶難度大大減少了,不僅易於檢查和修改程序錯誤,而且指令、數據的存放位置可以由計算機自動分配。
3、匯編程序
使用匯編語言編寫計算機程序,程序員仍然需要十分熟悉計算機系統的硬體結構,所以從程序設計本身上來看仍然是低效率的、繁瑣的。
但正是由於匯編語言與計算機硬體系統關系密切,在某些特定的場合,如對時空效率要求很高的系統核心程序以及實時控製程序等,迄今為止匯編語言仍然是十分有效的程序設計工具。
4、高級語言
高級語言是一類接近於人類的自然語言和數學語言的程序設計語言的統稱。按照其程序設計的出發點和方式不同,高級語言分為了面向過程的語言和面向對象的語言。
㈧ 編程課是學什麼的
編程課是學以下5種:
1、C 語言:C 語言作為一種簡單靈活的高級編程語言,它是一個面向過程的語言,一般是作為計算機專業的基礎入門語言課程。
2、Python:Python是一種面向對象、互動式計算機程序設計語言。它的特點是語法簡捷而清晰。由於它的易學、易讀的特性,有些學校用它代替C語言作為基礎入門的語言。
3、C++:C++語言保留了C語言的有效性、靈活性等特點,又添加了面向對象編程的支持,具有強大的編程功能,可方便地模擬現實問題的過程和操作。
4、JavaScript:JavaScript是一種輕量級的編程語言,它是一個腳本語言,可以嵌入到HTML頁面中,由來瀏覽器來解釋執行,用來實現瀏覽器和用戶之間的交互。它的應用場景主要是基於Web的開發。
5、Java:是較為傳統的面向對象語言,特點是支持跨平台的開發。Jav語言是基於面向對象的思想來設計的 , 但是刪去了C+中幾乎不用或很難用好的一些面向對象的特徵。Jav語言隨著互聯網的發展逐漸流行,而且大量的開源框架和類庫支持Java在各個場景的開發實踐。
㈨ 電視節目互動系統的設計與實現
為了提高觀眾對電視節目的參與性和互動性,提高電視節目的收視率和企業競爭力,發揮網路的方便性和快捷性,提出了網路互動節目管理系統的設計方案。
網路互動節目管理系統的設計以windows XP為操作平台,採用ASP作為前端開發工具,SQL Server 2000作為後台資料庫,主要實現了用戶注冊登錄,查詢、點播節目,瀏覽、發表評論,瀏覽網路廣告,參加網路投票等功能;實現了管理員對電視節目、網路廣告、投票內容的添加、修改與刪除,對網路評論與觀眾、節目參加人員的信息管理。整個系統的設計過程中,充分考慮了資料庫的安全性、一致性、穩定性和可靠性等問題,為使用人員提供了簡單方便的操作環境。此系統投入使用後,能充分利用Internet無時空限制,無地域限制的優勢,打破了傳統的電視節目以轉播,直播為手段的播放方式,節省了人們的時間,迎合了現代人們的口味,增強了企業的市場競爭力。
㈩ 請問哪一種手機卡最好
雖然移動很無恥,但是我還是得用移動的啊,因為它的業務種類很多,3G是指第三代移動通信技術,我門現在用的是第2.5代移動通信技術,3G是什麼?
3G是"3rd Generation"(第三代)的縮寫,即第三代移動通信系統(IMT-2000),它是高速移動數據網路通信領域的行業術語。縱觀移動通訊系統的發展歷史,模擬移動手機被稱作"第一代";數字移動手機被列入"第二代";而其後的發展技術被稱作"第三代"。當前全球還存在多種第一代和第二代通訊系統,它們成為全球范圍內普及單一通訊終端設備的一個阻力。另外,3G技術面臨的最大挑戰是系統的標准化,如何能夠支持單一通訊終端設備可以在全球范圍內得到通用。3G技術的設計基礎是支持全系列的移動多媒體系統,其對多種數據速率提供靈活的支持,不僅可以傳送語音數據,還可以根據需要傳送視頻數據。使用3G網路,我們可以傳輸需要高帶寬的應用數據,例如:它可以隨時隨地根據需要提供全視頻、視頻會議、高質量語音和Web數據服務。
在日本,目前存在兩種3G系統:NTT DoCoMo公司和Vodafone公司使用的是W-CDMA;而au公司使用的是CDMA2000 1x。
3G-324M協議
第三代移動通信系統IMT-2000的技術標准由ITU-R和ITU-T組織制定。ITU-R和ITU-T組織接受和評估各個國家和地區標准組織提交的建議(草案標准)。參與制定草案標準的主要標准組織包括:ARIB組織(Association of Radio Instries and Businesses)、日本TTC組織(Telecommunication Technology Committee)、歐洲ETSI組織、美國T1組織和韓國TTA組織。3GPP項目小組(Third Generation Partnership Project)就是由上述標准組織參與組成的,目標是制定全球性應用草案標准。3G-324M(*1)是3GPP組織制定的框架性標准,其制定基礎是ITU-T H.324/M和其它國際標准,它可以在無線電路交換網路支持實時多媒體服務應用。該標准包含的幾個子協議標準是:語音、視頻、用戶數據和控制數據的多路復用和分離(H.223);in-band呼叫控制(H.245)。它定義的功能組件和端到端通信程序用於支持可視化音頻通訊應用。
(*1) 3G-324M: H.323是ITU-T組織針對基於互聯網和區域網的通訊系統和終端設備制定的協議標准。而SIP是由IETF組織制定的著名的多媒體通訊協議標准。通訊網路需要協議標准支持,通過網關實現與SIP協議和H.323系統的互連,其中專門針對移動通訊的協議標準是H.324/M。3G-324M標準是H.324/M的進一步發展,它用來支持IMT-2000。
3G-324M標准在技術上與H.324/M非常相似,但是它指定H.263作為強制基本標准,而把MPEG-4作為視頻編碼推薦標准。AMR是音頻編碼強制標准。H.223制定了多路音頻和視頻信號在單個移動通訊信道的多路復用應用標准,H.245制定了在各個階段的消息控制交換標准。但是,在易出錯網路的高效傳輸方法在3G-324M標准中制定。另外,level 2(由H.223附錄B制定)被制定為強制的多路復用協議層,它可以提供增強的容錯控制。
3G-324M標準的協議配置細節如下所示。
3G-324M媒體編碼集
3G-324M為視頻、音頻和數據等媒體類型定義了強制性的媒體編碼標准。
(1)視頻編碼
3G-324M指定H.263為強制性基準協議(附錄中的擴展標准除外),而把MPEG-4制定為推薦視頻編碼標准。H.263作為老的編碼標准仍然應用於現有的H.323系統,因而保留它可以提供系統兼容性。MPEG-4比H.263基準協議擁有更高的靈活性,它提供了更先進的錯誤檢測和糾錯方法。
這兩種編碼集一般均採用QCIF(Quarter Common Intermediate Format)輸入圖象格式。MPEG-4採用一系列工具集提高了容錯性。它採用的方法包括:數據分區、可反置變長編碼(RVLC,Reversible Variable Length Codes)、再同步標識和HEC(header extension codes)。
數據分區方法通過標識符分別提供離散餘弦 (DCT) 系數和移動矢量參數,這樣可以避免某組數據的出錯影響到另外一組數據的解碼。例如,如果在某個給定的宏塊中檢測到DCT系數錯誤,我們仍然可以隱藏DCT系數錯誤,採用正確的移動矢量信息重新創建宏塊。這樣,與解碼過程中採用前面相鄰數據幀的正確宏塊替換出錯宏塊的方法相比,該方法可以提供更高的視頻圖象解碼質量。
RVLC方法允許對特定的數據塊從前端(前向)或者末端(反向)開始解碼。這種方法提高了對出錯數據集的修復機率。
再同步標識符是插入比特流中的一些代碼,它可以幫助解碼器對解碼進程進行重新同步。
HEC支持更高效的解碼進程再同步,其擴展的再同步標識符還包含了時間信息。
(2)語音編碼
ITU-T標准對語音編碼沒有強制性要求,只有IMT-2000語音服務應用強制性要求AMR編碼(Adaptive Multi-Rate),用於支持3G-324M設備。G.723.1是3GPP推薦的可選老編碼標准,它可以提供兼容H.323等標准。
AMR語音編碼的最高處理速率是12.2 kbps,取決於不同的基站距離、信號干擾和流量情況,AMR的實際傳輸速率范圍是4.75 kbps ~ 12.2 kbps。AMR還支持柔化噪音生成(CNG,Comfort Noise Generation)和非連續傳輸模式(DTX,Discontinuous Transmission)。它還可以根據不同的實際情況動態調整處理速率和錯誤控制,在當前的信道環境下提供最佳的語音質量。
AMR編碼還支持非對等錯誤檢測和預防(UED/UEP,Unequal Error Detection and Protection)。這種方法基於可判斷的數據相關性對比特流進行分類,如果在最相關的數據中檢測到錯誤,就可以對AMR數據幀直接進行解碼,並隱藏數據錯誤。
(3) 數據通訊協議
T.120是數據會議應用推薦的數據通訊協議。但是,當前還沒有制定任何強制性協議,因而它也只是一種可選標准。
H.245呼叫控制
H.245是面向H.324、 H.310、H.323和V.75而定義的通用呼叫控制標准。與其它ITU-T推薦標准兩年一修訂的程序不同,H.245需要根據需求隨時對其進行修訂,這主要是因為它應用於相當多種類的系統中,我們需要快速對其功能實現增強以滿足其高速發展的需要。
H.245採用簡單再傳輸協議(SRP,Simple Retransmission Protocol),或者採用可編號選項的SRP協議(NSRP,Numbered SRP)。H.245制定了一個控制信道分段和重新裝配的協議層(CCSRL,Control Channel Segmentation and Reassembly Layer),它可以在易出錯環境下保證應用的可靠性。SRP、NSRP和CCSRL的使用由協商層確定。H.245採用ASN.1(Abstract Syntax Notation 1)標準定義自己的消息結構。另外,消息數據基於PER(Packed Encoding Rule)規則採用二進制編碼。
在通話雙方啟動H.245會話之前,一個必須解決的問題是:如果端點設備之間出現協議沖突,究竟由哪個端點設備負責解決,或充當主角。不同的端點設備在H.223信號多路復用/信號分離、視頻和音頻編碼、數據共享和其它功能領域可能存在著不同的差異。H.245提供了一種功能交換的功能,它支持兩端設備通過協商確定一組通用的功能集。
媒體和數據流採用邏輯信道的方式進行傳輸,需要提供相應的控制支持。H.245採用邏輯信道信令,支持邏輯信道的開關和參數交換。在H.245標准中,發送方根據接收方廣播的可支持功能集,確定雙方通訊的編碼集和參數。如果接收方有指定的功能需求,它可以採用模式請求的方式向傳送方發送請求信號。
最後,H.245採用一組呼叫控制命令和提示符,提供數據流量控制、用戶輸入提示、視頻編碼控制、信號抖動和失真提示。
*H.245的用戶提示符(UII,User Input Indication)在需要用戶交互的所有應用服務中扮演著重要的角色。對於視頻消息應用,典型的UII應用一般提供用戶偏好選擇、消息錄音和查詢、以及常規的郵箱管理功能。H.245提供可靠的信令協議,可以確保各種消息(如:DTMF音頻)能夠得到可靠的傳輸。H.245 UII提供用戶提示的兩級表示:字元型提示和表示字元串提示時間長短的信息。例如,特定的鍵被用戶按了多長時間。
H.223多路復用和信號分離
為了提供不同級別的容錯支持,3G-324M定義了多級H.223傳輸。在H.223多媒體多路復用協議中,其轉換層(Adaptation Layer)提供邏輯信道的QoS,而多路復用和信號分離層(Multiplexing and Demultiplexing layer)提供多路邏輯信道到單個信道的合並。它可以同時支持分時多路復用和包多路服用兩種模式,可提供應用需要的靈活性、高效性和低延遲。
電路交換網路的多媒體通訊需要多路復用技術,以支持視頻、語音和數據流量的混合同步傳輸。多路復用技術為每種媒體類型指定了一個邏輯信道,可以把不同媒體源提供的多路比特流合並成單個比特流,在單路信道上進行傳輸。
媒體類型不同,其對應的邏輯信道對QoS的要求是不一樣的。例如,對於數據傳輸來說,其對延遲的要求一般不會太嚴格,但是它要求完全無錯誤的傳輸。另外,語音傳輸對延遲有著嚴格的限制,其綜合質量可以在10-3錯誤率的基礎上實現。視頻通訊對傳輸的要求介於數據和音頻通訊之間。因此,多路復用技術需要這么一種功能,它可以根據不同的媒體編碼需求,對邏輯信道提供不同的QoS控制。
(1)多路復用和信號分離層
Level 0 (H.223基本協議)
Level 0作為H.223的基本協議,它提供同步和比特填充支持。Level 0提供16種不同的多路復用模式,支持媒體、控制信息和數據包的混合傳輸。多路復用模式可以由通訊端點設備之間協商確定。Level 0的容錯功能非常有限。比特錯誤將可能中斷HDLC(High Level Data Link Controller)協議傳輸,並影響比特填充,把比特填充誤認為有效負載。
Level 1 (H.223附錄 A)
Level 1由H.223附錄A定義,它擁有的同步機制可以有效增強易出錯信道的傳輸性能。為了提高MUX-PDU的同步傳輸性能,在Level 0中MUX-PDU幀使用的8位HDLC同步標識符被16位PN(Pseudo Noise)序列所替代。HDLC被更穩定的幀模式和更長的幀標識所替代。PN序列作為一組類似偽噪音的信號,它實際上是按照統計學隨機產生的一組0和1比特序列。盡管它是隨機產生的,接收端可以根據其特定的結構判斷該序列的下一個比特符是什麼。
多路復用幀沒有採用比特填充,它採用位元組為單位(8位比特結構,幀的開頭對應的是第一個位元組。1位元組= 8比特),並以位元組為單位搜尋同步標識。
這樣, 即使在低速率和透明傳輸環境,同步標識的生成不再是確定的。但是,這顯著提高了在比特流出錯條件下對同步標識特徵的檢測。
Level 2 (H.223 附錄 B)
H.223附錄B定義了Level 2。它是Level 1的進一步增強,提供更穩定的MUX-PDU數據幀。
Level 3 (H.223 附錄 C)
Level 3由H.223附錄C定義,它提供了最穩定的傳輸方案。它包含了改進的多路復用和轉換層,提供前向糾錯(FEC,Forward Error Correction)和續傳機制(ARQ,Retransmission)。
(2) 轉換層
根據上一層媒體類型的不同(數據、語音和視頻),協議定義了三種類型的轉換層(AL1、AL2和AL3)。來自上一層的AL-SDU數據單元(Adaptation Layer-Service Data Unit)傳送到MUX層成為AL-PDU數據單元(Adaptation Layer-Protocol Data Unit)。AL1的設計基於數據傳輸,主要用來傳送用戶數據和H.245控制消息。它需要上一層協議提供出錯控制和處理。AL2提供8位CRC(Cyclic Rendancy Check)校驗和可選的順序編碼控制,用於進行丟包監測。AL2可以支持變長的AL SDU單元(Service Data Units),是適合音頻數據傳輸的理想轉換層。AL3主要基於視頻應用設計,提供了16位CRC校驗和可選的順序編碼。它支持變長的AL SDU單元,並提供可選的續傳機制。
媒體轉化簡介
多媒體移動通訊的支持技術(如:3G)可以通過任何聯網的多媒體終端、在任何時間、任何地點為用戶提供多媒體訪問服務。但是,目前的問題是:如何以可接收的格式向各種類型的終端設備提供多媒體內容和服務應用。而這些終端設備在計算能力、顯示、網路接入和帶寬支持等方面存在著各種差異。
媒體轉換處理可以動態調整幀的內容,包括:圖像尺寸、編碼格式、以及多媒體內容的組織,並盡可能保持轉換後的內容忠實於源內容。媒體轉換的依據是終端設備可支持的功能和用戶偏好。媒體轉換處理使用的相關部件包括:
轉換所需要的多媒體消息模型,包括對不同形式內容的層次性標識符,可以支持多媒體內容的顯示和傳送。
轉換策略決策部件可以分析內容的特性,計算和選擇合適的轉換策略。
媒體處理技術,支持媒體操作、翻譯、編碼轉換和多媒體內容的重整。
MPEG-7以及最新推出的MPEG-21標准都提供了多媒體信息模型的定義,用於支持媒體轉換。電信運營商一般會根據可用的媒體處理和傳輸資源制定可行的媒體轉換策略。
媒體轉換處理技術
媒體轉換支持技術至少可以分成兩類:媒體內轉換和跨媒體轉換。
媒體內轉換技術需要基於特定媒體的特殊編碼方案,提供相應的媒體轉換。例如,轉換可以依據的視頻壓縮特性包括:視頻幀傳輸率、圖像格式、以及特定的intra-frame和inter-frame質量,支持特定的數據尺寸和格式的轉換。類似的,內容通過轉換可以提供給具有帶寬限制的終端設備。另外,根據終端設備對不同編碼的支持,可以提供相應的代碼轉換。
對於基於3G-324M的應用服務,它們需要H.263和MPEG-4編碼轉換,這是兩種標准視頻格式。這種轉化模式有著自身的內在局限性,它的固有下限取決於特定媒體的最低可察覺接收質量。*跨媒體轉化可以克服這種局限。
跨媒體轉換採用"語義等效"的媒體類型替換特定的媒體類型,這種替換可以最小化的減輕對用戶接收效果的影響。
例如,一段電視格式的視頻片段(720 x 480像素)可以轉換為一系列靜止的關鍵圖像,只有在圖像場景發生變化或者發生明顯變化時進行圖像取樣,縮小圖像尺寸,轉化為QCIF格式(176 x 144),對速率較低的音頻數據進行同步,並採用NMS消息進行封裝。這樣,視頻片段就可以實現向2.5G手機的傳送。
由於移動通訊環境有著明顯受限的顯示能力和網路帶寬限制,因此,媒體內轉換和跨媒體轉換在移動視頻服務的內容傳送領域均將扮演重要角色。
基於3G手機的應用
2001年10月1日,NTT DoCoMo公司首家全球推出了第一款第三代移動應用服務"FOMA"。與第二帶移動手機應用系統"mova"相比,FOMA能夠提供高速數據通訊服務和視頻手機功能。視頻手機功能可以支持面對面通訊,它是傳統語音通訊的一個重大突破。
自2001年10月1日首家推出該服務以來,由於它是全球第一款第三代移動應用服務,因而運營商對其用戶增長的期待值很高。然而,由於移動手機的尺寸、電池壽命和通訊覆蓋范圍等方面還沒有完全滿足用戶的需求,因而FOMA的用戶增長並沒有預期的那麼令人振奮。隨著FOMA手機性能的增強,以及其尺寸、重量和電池壽命等指標的改進,FOMA的用戶定購在2004年得到了快速的增長。2004年7月20日,NTT DoCoMo公司宣布,其FOMA服務用戶定購數超過了500萬大關,僅僅在最近的兩個月內就增加了100萬新用戶。據電信運營商組織TCA(Telecommunications Carriers Association)消息,FOMA服務定購用戶11月30日已經達到了757萬。NTT DoCoMo公司宣稱,其計劃在2007年3月能夠實現FOMA服務用戶總數達到2500萬的目標,也就是說有一半的DoCoMo移動手機用戶將定購FOMA服務。
據NTT DoCoMo公司宣布的公司戰略,它將通過完善終端設備功能,發展和推出各種成熟的應用服務(如:可視通話和視頻/文本傳送服務等),來不斷的擴展自己的產品線,進一步拓展可支持高速、大容量數據傳輸的"FOMA"應用服務。
移動手機的視頻功能的將不斷得到發展,可以支持多媒體、普遍環境的各種應用。在3G技術中,視頻消息(視頻郵件)和視頻流功能可以支持內容向移動手機用戶的傳送;3G視頻網關功能可以通過寬頻等接入線路提供3G用戶到PC的連接;而視頻會議已經成為基本的移動視頻服務。對於沒有採用3G技術的應用系統也需要開發上述應用服務。
使用視頻手機功能開發應用系統
採用視頻手機功能的應用服務包括:;
實時/非實時應用
單向/雙向應用
點到點/多點應用
個人/商務應 用
不同的應用系統需要相應的運行平台(開發/實施環境)。NMS電訊公司提供了"Video Access"應用系統開發平台,可支持上述各種應用系統的開發。
視頻消息(視頻郵件)應用
離開辦公室或家庭在外旅行,你可以把旅途見聞拍攝下來,並把視頻圖象傳送給自己的朋友、家人和同事。使用視頻消息服務,你可以通過FOMA手機發送電子郵件給遠端的FOMA手機,還可以發送給連接在網路(如:IP網路)上的H.323設備。採用網關、視頻錄制/播放、視頻轉換等功能,我們可以搭建各種消息應用系統。視頻郵件應用的呼叫接入端是視頻伺服器,因而視頻伺服器需要配置編碼轉換功能,這樣可以在伺服器內部實現視頻的存儲和播放。
可視通訊/視頻會議應用
目前存在著點到點和多點視頻會議。視頻會議可以在FOMA和IP客戶端之間創建。FOMA用戶可以加入網路會議,而過去一般只有PC機才可以加入網路會議。如果你遠離家庭和辦公室,你也可以通過互聯網實現與朋友和同事的視頻通訊。
在消防隊和警察局,他們可以建立險情會議,並可以和總部共享火情、事故和犯罪現場等視頻信息。
在添加視頻錄制和播放功能後,視頻會議可以用於今後資料查詢。類似的,商務應用可以採用上述功能建立自己的視頻呼叫中心。視頻伺服器配置了視頻混合編碼轉換後,可以支持多方視頻會議應用。
視頻流應用
視頻流應用可以把存放在流處理伺服器上的視頻片段通過網關傳送給FOMA手機。快訊、旅遊信息、產品介紹、廣告甚至電影等都可以處理成視頻流向用戶傳送。這種處理比常規語音信息能夠傳遞更多可視、直觀信息。
視頻流應用還可以支持音樂會和體育等大家關注事件的現場直播,它通過遠程伺服器向FOMA手機傳送。使用FOMA手機,您還可以在任何時間,觀看由設置在遠程任何地方監控攝像機提供的各種事件的實時視頻流,應用領域包括:災區、旅遊景點、交通、醫院、學校、重要事件等。同樣的技術可以幫助我們監控家中的孩子和寵物。上述都是基本的單向實時應用。
使用3G-324M協議,壓縮視頻(MPEG4)、壓縮語音(AMR)和信號能夠以64 kbps的速率進行傳送。與基於包網路的視頻傳輸相比,這種方法可以支持更高效的視頻和語音信息的傳送。這種服務需要一個配有編碼轉化器的視頻網關,對數據流提供相應的處理。
更多內容請訪問NMS公司 www.nmscommunications.com.cn