㈠ 什么是仿真系统
系统仿真(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