导航:首页 > 编程语言 > java哲学家问题

java哲学家问题

发布时间:2023-07-13 01:47:27

1. 200分求java实现哲学家就餐问题的程序,完整可以再加分

public class kuai {
String name;

boolean Enable = true;

public kuai(String name) {
this.name = name;
}

public synchronized void pickup(){
try {
while(Enable==false){
this.wait();
}
this.Enable =false;
}
catch (Exception e) {

}

}

public synchronized void putdown() {
this.Enable =true;
this.notifyAll();
}

public static void main(String args[]) {
kuai k1 = new kuai("筷子1号");
kuai k2 = new kuai("筷子2号");
kuai k3 = new kuai("筷子3号");
kuai k4 = new kuai("筷子4号");
kuai k5 = new kuai("筷子5号");

People p1 = new People("老大", k1, k2);
People p2 = new People("老二", k2, k3);
People p3 = new People("老三", k3, k4);
People p4 = new People("老四", k4, k5);
People p5 = new People("老幺", k5, k1);

p1.start();
p2.start();
p3.start();
p4.start();
p5.start();
}
}

class People extends Thread {
String name;

kuai left;

kuai right;

public People(String name, kuai l, kuai r) {
this.name = name;
left = l;
right = r;
}

public void run() {
left.pickup();
System.out.println(name + " 眼明手快,以迅雷不及掩耳之势一把抓起 "+left.name);
right.pickup();
System.out.println(name + " 眼明手快,以迅雷不及掩耳之势一把抓起 "+right.name);
System.out.println(name + " 左右开弓,狼吞虎咽起来");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
System.out.println(name + " 酒足饭饱,打了个饱嗝,心满意足的放下了 "+left.name+" 和 " +right.name);
left.putdown();
right.putdown();

}
}

别人做的,抄来的 :) 作者是:xy124

2. 一个好的程序员至少应该具备哪些条件

楼上的几位显然误会我的意思了,我并不是说不应当写文档加注释注重团队精神,看看下面的一篇文章,那位三天就写出UNIX的他需要写文档注释和团队精神吗,他用不着。哪个高手没有一点傲气和自信,他之所以敢对用户说:拿到你想要的,然后滚蛋,你已经很幸运了!是因为他有这个资本。天才本就不循规蹈矩,那样他就不叫天才了。

MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder,
and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。

Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还
是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据
说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前
身。当然是传说了,但足见他的功力。另一个传说是,1980年初的时候,DARPA让BBN在
Berkley Unix里加上BBN开发的TCP/IP代码。但当时还是研究生的B伯伯怒了,拒绝把BBN
TCP/IP加入BSD,因为他觉得BBN的TCP/IP写得不好。于是B伯伯出手了,端的是一箭封
喉,很快就写出了高性能的伯克利版TCP/IP。当时 BBN和DARPA签了巨额合同开发TCP/IP
Stack,谁知他们的代码还不如一个研究生的好。于是他们开会。只见当时B伯伯穿
个T-shirt出现在会议室(当时穿T-shirt不象现在,还是相当散漫的哈)。只见BBN问:你
怎么写出来的?而B伯伯答:简单,你读协议,然后编程就行了。最令偶晕倒的是,B伯
伯硕士毕业后决定到工业界发展,于是就到了当时只有一间办公室的Sun, 然后他就把
Sparc设计出来乐。。。象这种软硬通吃的牛人,想不佩服都不行的说。据Bill Joy的同
事说,一般开会的时候B伯伯总是拿一堆杂志漫不经心地读。但往往在关键之处,B伯伯
发言,直切要害,提出漂亮的构想,让同事们彻底崩溃。对了,他还是Java Spec和JINI
的主要作者之一。

John Carmack,ID Software的founder和Lead Programmer。上个月和一个搞图形的师兄
聊天,他竟然不知道John Carmack, 也让偶大大地晕了一把。不过也许搞研究的和搞实
战的多少有些隔吧。想必喜欢第一人称射击游戏的都知道J哥哥。90年代初只要能在PC
上搞个小动画都能让人惊叹一番的时候,J哥哥就推出了石破天惊的Castle Wolfstein,
然后再接再励,doom, doomII, Quake...每次都把3-D技术推到极限。J哥哥的简历上说
自己的专长是"Exhaust 3-D technology",真是牛人之言不我欺的说。做J哥哥这样的人
是很幸福的,因为各大图形卡厂家一有了新产品就要向他“进贡"
,不然如果他的游戏不支持哪种卡,哪种卡基本就会夭折乐。当初MS的Direct3D也得听
取他的意见,修改了不少API。当然,J哥哥在结婚前十数年如一日地每天编程14小时以
上,也是偶们凡人望尘莫及的。对了,J哥哥高中肆业(?),可以说是自学成才。不过
呢,谁要用这个例子来为自己学习不好辩护,就大错特错了。那 Leonardo Da Vinci还
是自学成才呢(人是私生子,不能上学)。普通人和天才还是有区别的。对了,其实偶们
叫“达分奇”是相当不对的,因为Vinci是地名,而Da Vinci就是从Vinci来的人的意
思。换句话说,Leonardo Da Vinci就是“从Vinci来的Leonardo”的意思。叫别
人“Da Vinci”就不知所谓乐。嗯,扯远了,打住。

David Cutler,VMS和Windows NT的首席设计师,去微软前号称硅谷最牛的kernel开发
员。当初他和他的手下在微软一周内把一个具备基本功能的bootable kernel写出来,然
后说:“who can't write an OS in a week?",也是牛气冲天的说。顺便说一句,D爷
爷到NT3.5时,管理1500名开发员,自己还兼做设计和编程,不改coder本色啊。

D爷爷天生脾气火爆,和人争论时喜欢双手猛击桌子以壮声势。 日常交谈fuck不离口。
他面试秘书时必问:"what do you think of the word 'fuck'?" ,让无数美女刹羽而
归。终于有一天,一个同样火爆的女面对这个问题脱口而出:"That's my favorite
word"。于是她被录取乐,为D爷爷工作到NT3.5发布。

Don Knuth。高爷爷其实用不着偶多说。学编程的不知道他就好像学物理的不知道牛顿,
学数学的不知道欧拉,学音乐的不知道莫扎特,学Delphi的不知到 Anders Hejlsberg,
或者学Linux不知道Linus Torvalds一样,不可原谅啊。为了让文章完整,就再罗唆几句
吧。高爷爷本科时就开始给行行色色的公司写各种稀奇古怪的编译器挣外快了。他卖给别
人时收一两千美元,那些公司拿了code,加工一下卖出去就是上万上十万。不过也没见高
爷爷不爽过,学者本色的说。想想那可是60年代初啊,高爷爷写编译器写多了,顺带就搞
出了个 Attribute Grammar和LR(k),大大地造福后人啊。至于高爷爷在CalTech的编程比
赛(有Alan Kay得众多高高手参加)总是第一,写的Tex到86年就code freeze,还附带2^n
美分奖励等等都是耳熟能详的,偶就不饶舌乐。

顺便说一下,高老大爷是无可争议的写作高手。他给Concrete Mathematics 写的前言可
谓字字铿锵,堪为前言的典范。他的技术文章也是一绝,文风细致,解释精当,而且没
有学究气,不失轻快跳脱。记得几年前读Concrete Mathemathics,时不时开怀大笑,让
老妈极其郁闷,觉得我nerdy到家,不可救药。其实呢,子非鱼,安知鱼之乐,更不知那
完全是高爷爷的功劳。说到写作高手,不能不提Stephen A. Cook。他的文章当年就被我
们的写作老师极力推荐,号称典雅文风的样本。库爷爷一头银发,身材颀长,总是面带
谦和的微笑,颇有仙风道骨,正好和他的仙文相配的说。

高爷爷其实还是开源运动的先驱。虽然他没有象Richard Stallman那样八方奔走,但他
捐献了好多作品,都可以在网上看到,比如着名的Mathematical Writing,MMIXWare,
The Tex Book等,更不用说足以让他流芳百世的Tex乐。

Ken Thompson,C语言前身B语言的作者,Unix的发明人之一(另一个是Dennis M. Riche
老大,被尊为DMR),Belle(一个厉害的国际象棋程序)的作者之一, 操作系统Plan 9的主
要作者(另一个是大牛人Rob Pike,
前不久被google挖走了)。Ken爷爷也算是计算机历史上开天辟地的人物了。1969年还是
计算机史前时代,普通人都认为只有大型机才能运行通用的操作系统,小型机只有高山
仰止的份儿。至于用高级语言来写操作系统,更是笑谈。Ken爷爷自然不是池中物,于是
他和DMR怒了,在1969年到1970间用汇编在PDP-7上写出了UNIX的第一个版本。他们并不
知道,一场轰轰烈烈的UNIX传奇由此拉开了序幕。Ken爷爷在1971年又把Unix用C重写,
于是C在随后20年成就了不知多少豪杰的梦想和光荣。

Ken爷爷还有段佳话: 装了UNIX的PDP-11最早被安装在Bell Lab里供大家日常使用。很
快大家就发现Ken爷爷总能进入他们的帐户,获得最高权限。Bell
Lab里的科学家都心比天高,当然被搞得郁闷无比。于是有高手怒了,跳出来分析了UNIX
代码,找到后门,修改代码,然后重新编译了整个UNIX。就在大家都以为“这个世界清
净了”的时候,他们发现Ken爷爷还是轻而易举地拿到他们的帐户权限,百思不解后,只
好继续郁闷。谁知道这一郁闷,就郁闷了14年,直到Ken爷爷道出个中缘由。原来,代码
里的确有后门,但后门不在Unix代码里,而在编译Unix代码的C编译器里。每次C编译器
编译UNIX的代码,就自动生成后门代码。而整个Bell Lab的人,都是用Ken爷爷的C编译
器。

(6)Rob Pike, AT&T Bell Lab前Member of Technical Staff ,现在google研究操作系
统 。罗伯伯是Unix的先驱,是贝尔实验室最早和Ken Thompson以及Dennis M. Ritche开
发 Unix的猛人,UTF-8的设计人。他还在美国名嘴David
Letterman的晚间节目上露了一小脸,一脸憨厚地帮一胖子吹牛搞怪。让偶佩服不已的
是,罗伯伯还是1980年奥运会射箭的银牌得主。他还是个颇为厉害的业余天文学家,设
计的珈玛射线望远镜差点被NASA用在航天飞机上。他还是两本经典,The Unix
Programming Environment 和 The Practice of Programming 的作者之一。如果初学者
想在编程方面精益求精,实在该好好读读这两本书。它们都有中文版的说。罗伯伯还写
出了Unix下第一个基于位图的窗口系统,并且是着名的blit终端的作者。当然了,罗伯
伯还是号称锐意革新的操作系统,Plan9,的主要作者。可惜的是,Plan9并没有引起多
少人的注意。罗伯伯一怒之下,写出了振聋发聩的雄文 Systems Software Research is
Irrelevant,痛斥当下系统开发的不思进取,固步自封的弊病。虽然这篇文章是罗伯伯
含忿出手,颇有偏激之词,但确实道出了系统开发的无奈:开发周期越来越长,代价越
来越大,用户被统一到少数几个系统上,结果越来越多的活动是测量和修补,而真正的
革新越来越少。

就在罗伯伯郁闷之极的时候,google登门求贤来乐。如果说现在还有一家大众公司在不
遗余力地把系统开发推向极致的话,也就是google乐。随便看看google的成果就知道
了。具有超强容错和负载平衡能力的分布式文件系统GFS
(现在能够用100,000台廉价PC搭起一个巨型分布系统,并且高效便宜地进行管理的系统
也不多哈),大规模机器学习系统(拼写检查,广告匹配,拼音搜寻。。。哪个都很牛的
说),更不用说处理海量并行计算的各式google服务了。Rob在System Software
Research is Irrelevant里萧瑟地说现在没有人再关心系统研究的前沿成果了。想不到
他错了,应为google关心。google网络了大批功成总是试图吸取系统研究的最新成果。
想必Rob Pike在google很幸福。愿他做出更棒的系统。

Dennis M. Ritchie, 既然Ken Thompson是我的偶像,新闻组上人称DMR的Dennis M.
Ritchie自然也是,毕竟两人共同缔造了UNIX,而Dennis几乎独力把C搞大(当然,C的前
身是B,而B是Ken Thompson一手做出来的)。两人1983年分享图灵奖,是有史以来少数几
个因工程项目得奖的工程师(本来是唯一的一对儿,但Alan Kay才因为SmallTalk得奖,
所以就成了唯二的乐) 一个人一生能做出一个卓越的系统已经不易,DMR的C和UNIX长盛
不衰近30年,至今生机勃勃,DMR此生可以无憾的说。

D爷爷也算有家学渊源:他老爸在AT&T贝尔实验室工作了一辈子,并在电路设计方面卓有
成就,还出了本颇有影响的书The Design of Switching Circuits,据说在交换理论和
逻辑设计方面有独到的论述。当然,D爷爷和他老爸是不同时代的人:他老爸的研究成
形于晶体管发明之前,而D爷爷的工作离了晶体管就玩儿不转乐。:-D

不要看D爷爷搞出了C,其实他最爱的编程语言是Alef,在Plan9上运行,支持并行编程。
Alef的语法和C相似,但数据类型和执行方式都和C大大不同。说到语言,D爷爷对后来
人有非常中肯的建议:抱着学习的目的来开发你自己的语言,不要冀望于它被众人接
受。这个建议不光对语言开发有用,也适用于其它大型系统的开发。别的不说,DMR后来
领导自己的团队在1995年和1996分别推出了Plan9和Inferno操作系统,又用多少人知道
呢?其实,D爷爷当初也没想过C会风行世界。他开发C的初衷和Eric S. Raymond
在Cathedral and Bazaar里阐述的一样,就是要消除自己对现有工具的不爽之处。谁
知D爷爷无心插柳,C竟然受到众多程序员的狂热拥戴,连D爷爷自己都大惑不解。在一次
采访中D爷爷说大概那是因为C的抽象程度碰巧既满足了程序员的要求, 又容易实现。当
然C一度是Unix上的通用语言也是原因。但不管怎么说,D爷爷对编程语言出色的审美意
识奠定了C广为流传的基础。

最后八卦一下。D爷爷的业余爱好和NBA大牛Karl Malone一样:开卡车。不过D爷爷更喜
欢开NASCAR,而KM独爱巨无霸。J D爷爷自称心中不供偶像,如果一定要说一个,那就
是Ken Thompson了。现在Ken爷爷退休当飞机教练去了,而D爷爷当了贝尔实验室系统开
发部的头,整日忙于开支票。他俩合作20年,屡屡创造历史。这段令人神往的佳话,也
就长留你我心中乐。

P.S., 很多人都以为Brian W. Kernighan是C的作者。其实BWK只是写了那本经典K&R C。
据D爷爷说,他,Ken, 和Kernighan三人中,Kernighan最能写文章,他次之,而Ken写
得最少;但说到编程,Ken爷爷才是当之无愧的老大。

Edsger Wybe Dijkstra, 对,就是E.W. Dijkstra. 一提到EWD,很多人就会想起找最短
路径的Dijkstra Algorithm,就好像一提到Sir. Tony Hoare,就想起Quick Sort一样。
其实这些个算法不过是两个牛人在他们职业生涯中最琐碎的贡献。比如Dijkstra算法,
无非是戴爷爷在1956年为了展示新计算机
ARMAC的计算能力,初试身手的成果,属于他的算法处女作。据戴爷爷自述,他搞出最
短路径算法的时候连纸笔都没用。当时他和他老婆在阿姆斯特丹一家咖啡厅的阳台上晒
太阳喝咖啡,突然就把这个算法想出来乐。而且当时的算法研究还比较原始,牛人们忙
着用计算机搞数值计算,对离散算法不屑一顾。那时连一个象样的专注于离散算法的专
业期刊都没有。戴爷爷于是推迟发表这个算法。直到1959年,他才把这个算法发表
在Numerische Mathematik的创刊号上,权为捧场。:-)
EWD在多个领域牛气冲天,端的是理论和编程两手硬的高手。只不过他的很多工作比较
深刻,学校的老先生们觉得本科生接受不了,不给本科生讲而已。

戴爷爷大概因为最短路径算法一战成名,于是有人请他参加另一台计算机X1的设计工
作,并且把设计实时中断系统的任务派给了他。现在看来实时中断也许不算什么,但要
知到,X1前根本就没有实时中断的概念。实现它简直就是一场豪赌。戴爷爷起初还不情
愿,但经不住项目负责人Bram和Carel的轮番 “吹捧”:我们知道实时中断让您工作变
得非常困难,但象您这样的牛人肯定能做出来的说。结果戴爷爷被糖衣炮弹彻底击穿,
接下了这个烫手山芋。两三年后,他不仅搞出了实时中断,还围绕这个写出了自己的博
士论文,顺利戴上博士帽。

让戴爷爷真正成名立万的还是在X1上开发的Algo60,最早的高级语言之一。戴爷爷没日
没夜地工作了8个月,就搞出了Algo60,也因此获得了 1972年的图灵奖。因为Algo60,
戴爷爷发表了一篇石破天惊的文章:Recursive
Programming,于是人们才知道,原来高级语言也可以高效地实现递归,原来从此以后,
所有程序员都不可避免地和戴爷爷发明的一个词(应该说是概念)打交道:堆栈。
而且Algo60还让戴爷爷深入地思考多道程序设计的问题,最终发明了每个系统程序员
都绕不开的概念:semaphore。当然,戴爷爷总是把他发明的概念严格形式化,极具科
学家本色的说。和这些成就想比,他提出的吃饭的哲学家问题,也就没什么好说的了。

说来好笑,当时的大学(忘了哪所了)还是觉得戴爷爷没有受过正统的数学训练,也不是
专门搞数值分析的,所以最后不太情愿地给了他一个教职。这种小挫折并不能妨碍象戴
爷爷这样的牛人创造历史。他一边教数值分析(:-D) ,一边开始开发一个新的操作系
统,并培养计算机科学家。几年后,THE Multiprogramming
System横空出世。THE是第一个支持松散耦合,显式同步的进程并由此使得严格证明系统
没有死锁变得容易的操作系统。可惜戴爷爷任职的系不识货,还强行解散了他的研究小
组(1972年戴爷爷给他的系主任说他得了图灵奖,系主任的第一反应是你们搞计算机就
喜欢乱发奖)。这让戴爷爷相当郁闷,得了抑郁症。在极度郁闷之中,戴爷爷决定用写作
来治疗自己的抑郁症。于是经典就诞生乐:Notes on Structured Programming。戴爷爷
从此被尊为结构化编程的奠基人,而且他的抑郁症也被治好乐。

EWD太牛,结果他的故事也太多。先到这里吧。1973起,他的故事就在美国发生了。

Anders Hejlsberg,微软.NET的首席架构师,编程语言设计和实现的顶尖高手。他一手
做出了 Turbo Pascal, 也是Delphi, J++(尤其是WFC),C#, 和.NET的主要作者。这些作
品的名字足以为他立传。作为一个程序员,我在这样的大师面前实在无语。生子当
如Anders的说。李维的<>里已详细讲述了Anders的传奇故事,我就不用费舌了:

http: //java.mblogger.cn/iexploiter/posts/1505.aspx

Artima上有Anders谈C#的系列访谈。MSDN上有一段Anders导游的录像 。有兴趣可以去看
看牛人的丰采。

3. Java基础知识实验

笛卡尔1596年3月31日生于法国土伦省莱耳市的一个贵族之家,笛卡儿的父亲是布列塔尼地方议会的议员,同时也是地方法院的法官,笛卡尔在豪华的生活中无忧无虑地度过了童年。他幼年体弱多病,母亲病故后就一直由一位保姆照看。他对周围的事物充满了好奇,父亲见他颇有哲学家的气质,亲昵地称他为“小哲学家”。
父亲希望笛卡尔将来能够成为一名神学家,于是在笛卡儿八岁时,便将他送入La fleche(拉夫雷士)的耶稣会学校,接受古典教育。校方为照顾他的孱弱的身体,特许他可以不必受校规的约束,早晨不必到学校上课,可以在床上读书 。因此,他从小养成了喜欢安静,善于思考的习惯。
笛卡儿1612年到普瓦捷大学攻读法学,四年后获博士学位。1616年笛卡儿结束学业后,便背离家庭的职业传统,开始探索人生之路。他投笔从戎,想借机游历欧洲,开阔眼界。
这期间有几次经历对他产生了重大的影响。一次,笛卡尔在街上散步,偶然间看到了一张数学题悬赏的启事。两天后,笛卡尔竟然把那个问题解答出来了,引起了着名学者伊萨克·皮克曼的注意。皮克曼向笛卡尔介绍了数学的最新发展,给了他许多有待研究的问题。
与皮克曼的交往,使笛卡尔对自己的数学和科学能力有了较充分的认识,他开始认真探寻是否存在一种类似于数学的、具有普遍使用性的方法,以期获取真正的知识。
据说,笛卡尔曾在一个晚上做了三个奇特的梦。第一个梦是,笛卡尔被风暴吹到一个风力吹不到的地方;第二个梦是他得到了打开自然宝库的钥匙;第三个梦是他开辟了通向真正知识的道路。这三个奇特的梦增强了他创立新学说的信心。这一天是笛卡儿思想上的一个转折点,有些学者 也把这一天定为解析几何的诞生日。
然而长期的军旅生活使笛卡尔感到疲惫,他于1621年回国,时值法国内乱,于是他去荷兰、瑞士、意大利等地旅行。1625年返回巴黎。1628年移居荷兰,在荷兰长达20多年的时间里,笛卡尔对哲学、数学、天文学、物理学、化学和生理学等领域进行了深入的研究,并通过数学家梅森神父与欧洲主要学者保持密切联系。他的主要着作几乎都是在荷兰完成的。
1628年,笛卡尔写出《指导哲理之原则》,1634年完成了以尼古拉·哥白尼学说为基础的《论世界》。书中总结了他在哲学、数学和许多自然科学问题上的一些看法。1637年,笛卡儿用法文写成三篇论文《折光学》、《气象学》和《几何学》,并为此写了一篇序言《科学中正确运用理性和追求真理的方法论》,哲学史上简称为《方法论》,6月8日在莱顿匿名出版。1641年出版了《形而上学的沉思》,1644年又出版了《哲学原理》等重要着作。
勒奈·笛卡尔(Descartes,René),法国数学家、科学家和哲学家。他是西方近代资产阶级哲学奠基人之一。他的年轻时的勒奈·笛卡儿哲学与数学思想对历史的影响是深远的。人们在他的墓碑上刻下了这样一句话:“笛卡尔,欧洲文艺复兴以来,第一个为人类争取并保证理性权利的人。”
笛卡尔出生于法国,父亲是法国一个地方法院的评议员,相当于现在的律师和法官。一岁时母亲去世,给笛卡尔留下了一笔遗产,为日后他从事自己喜爱的工作提供了可靠的经济保障。8岁时他进入一所耶稣会学校,在校学习8年,接受了传统的文化教育,读了古典文学、历史、神学、哲学、法学、医学、数学及其他自然科学。但他对所学的东西颇感失望。因为在他看来教科书中那些微妙的论证,其实不过是模棱两可甚至前后矛盾的理论,只能使他顿生怀疑而无从得到确凿的知识,惟一给他安慰的是数学。在结束学业时他暗下决心:不再死钻书本学问,而要向“世界这本大书”讨教,于是他决定避开战争,远离社交活动频繁的都市,寻找一处适于研究的环境。1628年,他从巴黎移居荷兰,开始了长达20年的潜心研究和写作生涯,先后发表了许多在数学和哲学上有重大影响的论着。在荷兰长达20年的时间里,他集中精力做了大量的研究工作,在1634年写了《论世界》,书中总结了他在哲学、数学和许多自然科学问题上的看法。1641年出版了《行而上学的沉思》,1644年又出版了《哲学原理》等。他的着作在生前就遭到教会指责,死后又被梵蒂冈教皇列为禁书,但这并没有阻止他的思想的传播。
笛卡尔不仅在哲学领域里开辟了一条新的道路,同时笛卡尔又是一勇于探索的科学家,在物理学、生理学等领域都有值得称道的创见,特别是在数学上他创立了解析几何,从而打开了近代数学的大门,在科学史上具有划时代的意义。
笛卡尔的主要数学成果集中在他的“几何学”中。当时,代数还是一门比较新的科学,几何学的思维还在数学家的头脑中占有统治地位。在笛卡尔之前,几何与代数是数学中两个不同的研究领域。笛卡尔站在方法论的自然哲学的高度,认为希腊人的几何学过于依赖于图形,束缚了人的想象力。对于当时流行的代数学,他觉得它完全从属于法则和公式,不能成为一门改进智力的科学。因此他提出必须把几何与代数的优点结合起来,建立一种“真正的数学”。笛卡尔的思想核心是:把几何学的问题归结成代数形式的问题,用代数学的方法进行计算、证明,从而达到最终解决几何问题的目的。依照这种思想他创立了我们现在称之为的“解析几何学”。1637年,笛卡尔发表了《几何学》,创立了直角坐标系。他用平面上的一点到两条固定直线的距离来确定点的位置,用坐标来描述空间上的点。他进而又创立了解析几何学,表明了几何问题不仅可以归结成为代数形式,而且可以通过代数变换来实现发现几何性质,证明几何性质。解析几何的出现,改变了自古希腊以来代数和几何分离的趋向,把相互对立着的“数”与“形”统一了起来,使几何曲线与代数方程相结合。笛卡尔的这一天才创见,更为微积分的创立奠定了基础,从而开拓了变量数学的广阔领域。最为可贵的是,笛卡尔用运动的观点,把曲线看成点的运动的轨迹,不仅建立了点与实数的对应关系,而且把形(包括点、线、面)和“数”两个对立的对象统一起来,建立了曲线和方程的对应关系。这种对应关系的建立,不仅标志着函数概念的萌芽,而且标明变数进入了数学,使数学在思想方法上发生了伟大的转折--由常量数学进入变量数学的时期。正如恩格斯所说:“数学中的转折点是笛卡尔的变数。有了变数,运动进入了数学,有了变数,辨证法进入了数学,有了变数,微分和积分也就立刻成为必要了。笛卡尔的这些成就,为后来牛顿、莱布尼兹发现微积分,为一大批数学家的新发现开辟了道路。
笛卡尔在其他科学领域的成就同样累累硕果。笛卡尔靠着天才的直觉和严密的数学推理,在物理学方面做出了有益的贡献。从1619年读了开普勒的光学着作后,笛卡尔就一直关注着透镜理论;并从理论和实践两方面参与了对光的本质、反射与折射率以及磨制透镜的研究。他把光的理论视为整个知识体系中最重要的部分。笛卡尔坚信光是“即时”传播的,他在着作《论人》和《哲学原理》中,完整的阐发了关于光的本性的概念。他还从理论上推导了折射定律,与荷兰的斯涅耳共同分享发现光的折射定律的荣誉。他还对人眼进行光学分析,解释了视力失常的原因是晶状体变形,设计了矫正视力的透镜。在力学方面,他提出了宇宙间运动量总和是常数的观点,创造了运动量守恒定律,为能量守恒定律奠定了基础。他还指出,一个物体若不受外力作用,将沿直线匀速运动。
笛卡尔在其他的科学领域还有不少值得称道的创见。他发展了宇宙演化论,创立了漩涡说。他认为太阳的周围有巨大的漩涡,带动着行星不断运转。物质的质点处于统一的漩涡之中,在运动中分化出土、空气和火三种元素,土形成行星,火则形成太阳和恒星。笛卡儿的这一太阳起源的旋涡说,比康德的星云说早一个世纪,是17世纪中最有权威的宇宙论。他还提出了刺激反应说,为生理学做出了一定的贡献。
笛卡尔近代科学的始祖。笛卡儿是欧洲近代哲学的奠基人之一,黑格尔称他为“现代哲学之父”。他自成体系,熔唯物主义与唯心主义于一炉,在哲学史上产生了深远的影响。同时,他又是一位勇于探索的科学家,他所建立的解析几何在数学史上具有划时代的意义。笛卡尔堪称17世纪的欧洲哲学界和科学界最有影响的巨匠之一,被誉为“近代科学的始祖”。
1649年冬,笛卡尔应瑞典女王克里斯蒂安的邀请,来到了斯德哥尔摩,任宫廷哲学家,为瑞典女王授课。由于他身体孱弱,不能适应那里的气候,1650年初便患肺炎抱病不起,同年二月病逝。终年54岁。1799年法国大革命后,笛卡尔的骨灰被送到了法国历史博物馆。 (补充:瑞典女王为了显示对知识的尊重,专门派一艘军舰接笛卡尔到瑞典)
笛卡尔的婚姻:与斯宾诺莎、布莱尼茨一样,笛卡尔终身未婚,没有享受到家庭生活所带来的快乐。他有一私生女,但不幸夭折,为其终生憾事。

4. 我是小学教育(文科)专业的,现在大二,想读计算机方面的研究生,要准备哪些方面的东西

你可以照大纲看看阿。算法那时必须会的,不要存在侥幸心理,算法是数据结构课的灵魂,09年没有考并不意味着以后也不考。并且09年还是有算法题的。应用题第二题要写算法的。
另附09大纲:
Ⅰ考查目标

计算机学科专业基础综合考试涵盖数据机构、计算机组成原理、操作系统和计算机网络

等学科专业基础课程。要求考生比较系统地掌握上述专业基础课程的概念、基本原理和方法,

能够运用所学的基本原理和基本方法分析、判断和解决有关理论问题和实际问题。

Ⅱ考试形式和试卷结构

一、试卷满分及考试时间

本试卷满分为150分,考试时间为180分钟

二、答题方式

答题方式为闭卷、笔试

三、试卷内容结构

数据结构45分

计算机组成原理45分

操作系统35分

计算机网络25分

四、试卷题型结构

单项选择题80分(40小题,每小题2分)

综合应用题70分

Ⅲ考查范围

数据结构

【考查目标】

1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作

的实现。

2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。

3.能够选择合适的数据结构和方法进行问题求解。

一、线性表

(一)线性表的定义和基本操作

(二)线性表的实现

1.顺序存储结构

2.链式存储结构

3.线性表的应用

二、栈、队列和数组

(一)栈和队列的基本概念

(二)栈和队列的顺序存储结构

(三)栈和队列的链式存储结构

(四)栈和队列的应用

(五)特殊矩阵的压缩存储

三、树与二叉树

(一)树的概念

(二)二叉树

1.二叉树的定义及其主要特征

2.二叉树的顺序存储结构和链式存储结构

3.二叉树的遍历

4.线索二叉树的基本概念和构造

5.二叉排序树

6.平衡二叉树

(三)树、森林

1.书的存储结构

2.森林与二叉树的转换

3.树和森林的遍历

(四)树的应用

1.等价类问题

2.哈夫曼(Huffman)树和哈夫曼编码

四、图

(一)图的概念

(二)图的存储及基本操作

1.邻接矩阵法

2.邻接表法

(三)图的遍历

1.深度优先搜索

2.广度优先搜索

(四)图的基本应用及其复杂度分析

1.最小(代价)生成树

2.最短路径

3.拓扑排序

4.关键路径

五、查找

(一)查找的基本概念

(二)顺序查找法

(三)折半查找法

(四)B-树

(五)散列(Hash)表及其查找

(六)查找算法的分析及应用

第2页共?页六、内部排序

(一)排序的基本概念

(二)插入排序

1.直接插入排序

2.折半插入排序

(三)气泡排序(bubble sort)

(四)简单选择排序

(五)希尔排序(shell sort)

(六)快速排序

(七)堆排序

(八)二路归并排序(merge sort)

(九)基数排序

(十)各种内部排序算法的比较

(十一)内部排序算法的应用计算机组成原理

【考查目标】

1.理解单处理器计算机系统中各部件的内部工作原理、组成结构以及相互连接方式,具有

完整的计算机系统的整机概念。

2.理解计算机系统层次化结构概念,熟悉硬件与软件之间的界面,掌握指令集体系结构的

基本知识和基本实现方法。

3.能够运用计算机组成的基本原理和基本方法,对有关计算机硬件系统中的理论和实际问

题进行计算、分析,并能对一些基本部件进行简单设计。

一、计算机系统概述

(一)计算机发展历程

(二)计算机系统层次结构

1.计算机硬件的基本组成

2.计算机软件的分类

3.计算机的工作过程

(三)计算机性能指标

吞吐量、响应时间;CPU时钟周期、主频、CPI、CPU执行时间;MIPS、MFLOPS。

二、数据的表示和运算

(一)数制与编码

1.进位计数制及其相互转换

2.真值和机器数

3.BCD码

4.字符与字符串

5.校验码

第3页共?页(二)定点数的表示和运算

1.定点数的表示

无符号数的表示;有符号数的表示。

2.定点数的运算

定点数的位移运算;原码定点数的加/减运算;补码定点数的加/减运算;定点数

的乘/除运算;溢出概念和判别方法。

(三)浮点数的表示和运算

1.浮点数的表示

浮点数的表示范围;IEEE754标准

2.浮点数的加/减运算

(四)算术逻辑单元ALU

1.串行加法器和并行加法器

2.算术逻辑单元ALU的功能和机构

三、存储器层次机构

(一)存储器的分类

(二)存储器的层次化结构

(三)半导体随机存取存储器

1.SRAM存储器的工作原理

2.DRAM存储器的工作原理

(四)只读存储器

(五)主存储器与CPU的连接

(六)双口RAM和多模块存储器

(七)高速缓冲存储器(Cache)

1.程序访问的局部

2.Cache的基本工作原理

3.Cache和主存之间的映射方式

4.Cache中主存块的替换算法

5.Cache写策略

(八)虚拟存储器

1.虚拟存储器的基本概念

2.页式虚拟存储器

3.段式虚拟存储器

4.段页式虚拟存储器

5.TLB(快表)

四、指令系统

(一)指令格式

1.指令的基本格式

2.定长操作码指令格式

3.扩展操作码指令格式

(二)指令的寻址方式

1.有效地址的概念

2.数据寻址和指令寻址

第4页共?页3.常见寻址方式

(三)CISC和RISC的基本概念

五、中央处理器(CPU)

(一)CPU的功能和基本结构

(二)指令执行过程

(三)数据通路的功能和基本结构

(四)控制器的功能和工作原理

1.硬布线控制器

2.微程序控制器

微程序、微指令和微命令;微指令的编码方式;微地址的形式方式。

(五)指令流水线

1.指令流水线的基本概念

2.超标量和动态流水线的基本概念

六、总线

(一)总线概述

1.总线的基本概念

2.总线的分类

3.总线的组成及性能指标(二)总线仲裁

1.集中仲裁方式

2.分布仲裁方式

(三)总线操作和定时

1.同步定时方式

2.异步定时方式

(四)总线标准

七、输入输出(I/O)系统

(一)I/O系统基本概念

(二)外部设备

1.输入设备:键盘、鼠标

2.输出设备:显示器、打印机

3.外存储器:硬盘存储器、磁盘阵列、光盘存储器

(三)I/O接口(I/O控制器)

1.I/O接口的功能和基本结构

2.I/O端口及其编址

(四)I/O方式

1.程序查询方式

2.程序中断方式

中断的基本概念;中断响应过程;中断处理过程;多重中断和中断屏蔽的

概念。

3.DMA方式

DMA控制器的组成;DMA传送过程。

4.通道方式

第5页共?页操作系统

【考查目标】

1.了解操作系统在计算机系统中的作用、地位、发展和特点。

2.理解操作系统的基本概念、原理,掌握操作系统设计方法与实现技术。

3.能够运用所学的操作系统原理、方法与技术分析问题和解决问题。

一、操作系统概述

(一)操作系统的概念、特征、功能和提供的服务

(二)操作系统的发展与分类

(三)操作系统的运行环境

二、进程管理

(一)进程与线程

1.进程概念

2.进程的状态与转换

3.进程控制

4.进程组织

5.进程通信

共享存储系统;消息传递系统;管道通信。

6.线程概念与多线程模型

(二)处理机调度

1.调度的基本概念

2.调度时机、切换与过程

3.调度的基本准则

4.调度方式

5.典型调度算法

先来先服务调度算法;短作业(短任务、短进程、短线程)优先调度算法;时间片轮转调度

算法;优先级调度算法;高响应比优先调度算法;多级反馈队列调度算法。

(三)进程同步

1.进程同步的基本概念

2.实现临界区互斥的基本方法

软件实现方法;硬件实现方法。

3.信号量

4.管程

5.经典同步问题

生产者-消费者问题;读者-写者问题;哲学家进餐问题。(四)死锁

1.死锁的概念

2.死锁处理策略

3.死锁预防

4.死锁避免

第6页共?页系统安全状态:银行家算法。

5.死锁检测和解除

三、内存管理

(一)内存管理基础

1.内存管理概念

程序装入与链接;逻辑地址与物理地址空间;内存保护。

2.交换与覆盖

3.连续分配管理方式

单一连续分配;分区分配。

4.非连续分配管理方式

分页管理方式;分段管理方式;段页式管理方式。

(二)虚拟内存管理

1.虚拟内存基本概念

2.请求分页管理方式

3.页面置换算法

最佳置换算法(OPT);先进先出置换算法(FIFO);最近

法(LRU);时钟置换算法(CLOCK)。

4.页面分配策略

5.抖动

抖动现象;工作集。

6.请求分段管理方式

7.请求段页式管理方式

四、文件管理

(一)文件系统基础

1.文件概念

2.文件结构

顺序文件;索引文件;索引顺序文件。

3.目录结构

文件控制块和索引节点;单级目录结构和两级目录结构;树形

目录结构。

4.文件共享

共享动机;共享方式;共享语义。

5.文件保护

访问类型;访问控制。

(二)文件系统实现

1.文件系统层次结构

2.目录实现

3.文件实现

(三)磁盘组织与管理

1.磁盘的结构

2.磁盘调度算法

3.磁盘的管理

五、输入输出(I/O)管理

第7页共?页(一)I/O管理概述

1.I/O设备

2.I/O管理目标

3.I/O管理功能

4.I/O应用接口

5.I/O控制方式

(二)I/O核心子系统

1.I/O调度概念

2.高速缓存与缓冲区

3.设备分配与回收

4.假脱机技术(SPOOLing)

5.出错处理计算机网络

【考查目标】

1.掌握计算机网络的基本概念、基本原理和基本方法。

2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组

型网络设备的工作原理

3.能够运用计算机网络的基本概念、基本原理和基本方法进行网络系统



一、计算机网络体系结构

(一)计算机网络概述

1.计算机网络的概念、组成与功能

2.计算机网络的分类

3.计算机网络与互联网的发展历史

4.计算机网络的标准化工作及相关组织

(二)计算机网络体系结构与参考模型

1.计算机网络分层结构

2.计算机网络协议、接口、服务等概念

3.ISO/OSI参考模型和TCP/IP模型

二、物理层

(一)通信基础

1.信道、信号、宽带、码元、波特、速率等基本概念

2.奈奎斯特定理与香农定理

3.信源与信宿

4.编码与调制

5.电路交换、报文交换与分组交换

6.数据报与虚电路

(二)传输介质

1.双绞线、同轴电缆、光纤与无线传输介质

第8页共?页2.物理层接口的特性

(三)物理层设备

1.中继器

2.集线器

三、数据链路层

(一)数据链路层的功能

(二)组帧

(三)差错控制

1.检错编码

2.纠错编码

(四)流量控制与可靠传输机制

1.流量控制、可靠传输与滑轮窗口机制

2.单帧滑动窗口与停止-等待协议

3.多帧滑动窗口与后退N帧协议(GBN)

4.多帧滑动窗口与选择重传协议(SR)

(五)介质访问控制

1.信道划分介质访问控制

频分多路复用、时分多路复用、波分多路复用、码分多

本原理。

2.随即访问介质访问控制

ALOHA协议;CSMA协议;CSMA/CD协议;CSMA

3.轮询访问介质访问控制:令牌传递协议

(六)局域网

1.局域网的基本概念与体系结构

2.以太网与IEEE 802.3

3.IEEE 802.11

4.令牌环网的基本原理

(七)广域网

1.广域网的基本概念

2.PPP协议

3.HDLC协议

4.ATM网络基本原理

(八)数据链路层设备

1.网桥

网桥的概念;透明网桥与生成树算饭;源选径网桥与源选

2.局域网交换机及其工作原理。

四、网络层

(一)网络层的功能

1.异构网络互联

2.路由与转发

3.拥塞控制

(二)路由算法1.静态路由与动态路由

2.距离-向量路由算法

3.链路状态路由算法

4.层次路由

三)IPv4

1.IPv4分组

2.IPv4地址与NAT

3.子网划分与子网掩码、CIDR

4.ARP协议、DHCP协议与ICMP协议

四)IPv6

1.IPv6的主要特点

2.IPv6地址

五)路由协议

1.自治系统

2.域内路由与域间路由

3.RIP路由协议

4.OSPF路由协议

5.BGP路由协议

六)IP组播

1.组播的概念

2.IP组播地址

3.组播路由算法

七)移动IP

1.移动IP的概念

2.移动IP的通信过程

八)网络层设备

1.路由器的组成和功能

2.路由表与路由转发

传输层

传输层提供的服务

1.传输层的功能

2.传输层寻址与端口

3.无连接服务与面向连接服务

UDP协议

1.UDP数据报

2.UDP校验

TCP协议

1.TCP段

2.TCP连接管理

3.TCP可靠传输

4.TCP流量控制与拥塞控制

应用层

第10页共?页网络应用模型

1.客户/服务器模型

2.P2P模型

DNS系统

1.层次域名空间

2.域名服务器

3.域名解析过程

FTP

1.FTP协议的工作原理

2.控制连接与数据连接

电子邮件

1.电子邮件系统的组成结构

2.电子邮件格式与MIME

3.SMTP协议与POP3协议

WWW

1.WWW的概念与组成结构

2.HTTP协议Ⅳ.

试题示例

一、单项选择题:1~40小题,每小题2分,共80分。在每小题给出的四个选项中,

请选出一项最符合题目要求的。

试题示例:

1、下列排序算法中,时间复杂度为O(nlog2n)且占用额外空间最少的是

A.堆排序

B.起泡排序

C.快速排序

D.希尔排序

2、下列序列中,满足堆定义的是

A.(100,86,48,73,35,39,42,57,66,21)

B.(12,70,33,65,24,56,48,92,86,33)

C.(103,97,56,38,66,23,42,12,30,52,6,26)

D.(5,56,20,23,40,38,29,61,35,76,28,100)

3、程序计数器PC用来存放指令地址,其位数和下列哪个寄存器相同?

A.指令寄存器IR

B.主存数据寄存器MDR

C.程序状态字寄存器PSWR

D.主存地址寄存器MAR

4、假定一个十进制数为-66,按补码形式存放在一个8位寄存器中,该寄存器的内容用十六

进制表示为

A.C2H

B.BEH

C.BDH

D.42H

5、下列进程状态转换中,不可能发生的转换是

A.运行→就绪

B.运行→等待

C.等待→运行

D.等待→就绪

6、高某系统中有3个并发过程都需要4个同类资源,该系统不会发生死锁的最少资源是

A.9

B.10

C.11

D.12

7、根据CSMA/CD协议的工作原理,下列情形中需要提高最短帧长度的是

A.网络传输速率不变,冲突域的最大距离变短

第12页共?页B.冲突域的最大距离不变,网络传输速率提高

C.上层协议使用TCP的概率增加

D.在冲突域不变的情况下减少线路中的中继器数量

8、在选择重传协议(SR)中,当帧的序号字段为3比特,且接收窗口与发送窗口尺寸相同

时,发送窗口的最大尺寸为

A.2

B.4

C.6

D.8

二、综合应用题:41~47小题,共70分。

试题示例:

41.(10分)设无向图G=(V,E),其中V={1,2,3,4,5},E={(1,2,4),(2,5,5),

(1,3,2),(2,4,4),(3,4,1),(4,5,3),(1,5,8)},每条边由一个三元组表

示,三元组中前两个元素为与该边关联的顶点,第三个元素为该边的权。请写出图G中从

顶点1到其余各点的了短路径的求解过程。要求列出最短路径上的顶点,并计算路径长度.

42.(15分)已知一棵二叉树采用二叉链表存储,结点构造为:

LeftChild Data RightChild,root指向根结点。现定义二叉树中结点X0的根

路径为从根结点到X0结点的一条路径,请编写算法输出该二叉树中最长的根路径(多条

最长根路径中只输出一条即可。算法可使用C或C++或JAVA语言实现)。

43.(11分)某计算机的主存地址位数为32位,按字节编址。假定数据Cache中最多存放

128个主存块,采用4路组相联方式,块大小为64Byte,每块设置了1位有效位“脏(Dirty)”

位。

要求:

(1)分别支出主存地址中标记(Tag)、组号(Index)和块内地址(Offset)三部分的

位置和位数

(2)计算该数据Cache的总位数(请给出详细计算过程)

44(.10分)下图是一个简化的CPU与主存连接结构示意图(图中省略了所有多路选择器)。

其中有一个累加寄存器AC、一个状态数据寄存器和其他四个寄存器:主存地址寄存器

MAR、主存数据寄存器MDR、程序计数器PC和指令寄存器IR,各部件及其之间的连线表

示数据通路,箭头表示信息传递方向。

计算机考研常见问题解答
地址:http://www.jsj8.com/post/49.html

2010年计算机考研大纲
地址:http://www.jsj8.com/post/70.html

2009年计算机专业统考试题及解析
地址:http://www.jsj8.com/post/70.html

计算机专业考研视频汇总
地址:http://www.jsj8.com/post/19.html

计算机考研全国统考复习指导及备战建议
地址:http://www.jsj8.com/post/390.html

09年全国计算机专业排名公布
地址:http://www.jsj8.com/post/70.html

计算机考研统考行之有效的备考方案
地址:http://www.jsj8.com/post/335.html

计算机考研最好考的10所学校
地址:http://www.jsj8.com/post/70.html

5. JAVA编程题:找出1000以内的完数:一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3.

include <iostream>

using namespace std;

int main() {

for (int i = 2; i <= 1000; i++) {//从2到1000的数

int sum = 0;//因子总和

for (int j = 1; (j * j) <= i; j++) {//j做除数,√n复杂度,减少一半的计算量

if (i % j == 0) {//可以整除,为其因子

sum = j + (i / j) + sum;//因子之和

}

}

if ((sum - i) == i) cout << "1000以内的完数:" << i << endl;//因子之和减去其本身(1*i也为其因子)如果等于这个数本身,则为完数

}

}

(5)java哲学家问题扩展阅读

在数学领域,6是第一个完全数,也是最小的完全数。所谓完全数(又称完美数或完备数),是一种特殊的自然数;它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身。

例如6有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6;第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。公元前6世纪的古希腊数学家、哲学家毕达哥拉斯是最早探究完全数的人,他已经知道6和28这两个自然数是完全数了。

阅读全文

与java哲学家问题相关的资料

热点内容
图片怎么压缩到10k 浏览:993
幻塔悯雨岛是什么渠道的服务器 浏览:526
51单片机控制液晶屏 浏览:876
单片机线性输出 浏览:413
android40设计规范 浏览:163
mc命令方块变大 浏览:997
rpgxp手机编程工具 浏览:331
小米电视4谷歌服务器地址 浏览:593
复杂驱动程序编译 浏览:501
西门子数控车床编程指令 浏览:615
华为手机电池有没有加密 浏览:221
域名查询被墙源码 浏览:678
电脑文件夹压缩包格式 浏览:67
安卓堆糖怎么保存 浏览:358
multisim中单片机 浏览:603
加密电梯卡怎么复制到苹果手机上 浏览:304
php获取数据类型 浏览:915
新概念c51单片机 浏览:326
删除文件的命令行 浏览:981
java编程软件eclipse 浏览:198