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也為其因子)如果等於這個數本身,則為完數
}
}
在數學領域,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這兩個自然數是完全數了。