A. 四色問題C語言怎麼解決
思路:建立數據結構,錄入數據內容,遍歷著色,輸出第一個可行的著色方案。
下面就四個方面詳細分析一下
首先分析數據結構:
對於地圖,一個區塊包含一個唯一編號數據(這個編號可以是地名,也可以是數字)用來區分該區塊和其他區塊的不同
另外要著色,還要考慮該區塊和其他區塊連接的情況
最後就是區塊本身的顏色
通過上面的分析,即可建立如下數據結構:
structarea{
intnID;//這里以數字替代名稱,作為地塊的唯一標識
intnColor;//用1,2,3,4表示不同的顏色,用0表示還沒有著色
area*pNei;//鄰接的區塊
intnNei;//鄰接區塊的數量
};
然後需要錄入數據,這個請依據具體的地圖進行處理,撰寫相應的錄入函數,填入上面的數據結構
假設錄好的數據如下:
structareacity[64];//假設已經錄制好了數據,初始所有城市顏色都為0
數據錄好後,我們可以如下方式進行遍歷,嘗試著色
遍歷分為個模塊:一個是遍歷模塊,一個是校驗模塊
校驗模塊依序檢查所有的城市和其鄰接城市是否存在同色的情況,是則返回false,否則返回true
遍歷模塊則逐個城市進行上色嘗試
可以考慮遞歸
下面給一個遞歸的示例:
檢測模塊:
boolisOk(){
for(inti=0;i<64;i++)//假設有64個城市,其初始值和城市關系已經錄制完畢
{
for(intj=0;j<city[i].nNei;j++){
if(nColor==city[i].pNei[j].nColor)
returnfalse;
}
}
returntrue;
}
遍歷遞歸模塊:
booladdcity(intnIndex){
if(nIndex>=64)returntrue;//所有城市都著色了,則返回成功
for(inti=1;i<=4;i++){
city[nIndex].nColor=i;
if(isOk()){//本城市的顏色找到了
if(addcity(nIndex+1)==true){//找下一個城市的顏色
returntrue;
}else{//無法為下一個城市著色
continue;//更改本城市顏色
}
}
}
returnfalse;//沒有一個顏色可行,返回上一級,重新尋找
}
調用的時候可以採用下面的方式:
if(addcity(0)==false){
printf("無法找到答案,四色定理錯誤! ");
}else{
printf("找到了答案,城市和著色結果如下: ");
for(inti=0;i<64;i++){
printf("city%03dcolor%d ",city[i].nID,city[i].nColor);
}
}
B. 歷史上有人用計算機給出了一個四色定理的證明,是怎麼做的
其實就是枚舉法,把無數種可能列出來,然後沒有一個不滿足條件的,也就是說用數學無法證明,望採納
C. 四色問題的解答
1 四色定理和環面七色定理
1852年,倫敦大學學生Francis Guthrie提出:「看來,每幅地圖只需要用四種顏色著色, 便可以使得所有有共同邊界的國家著上不同的顏色」.這就是被譽為世界近代三大數學難題的四色定理.
1890年, 英國數學家Heawood證明了環面上的任意地圖可以用七種顏色著色,並提出環面上七個圖形兩兩相鄰的特例. 如圖1,粘合矩形的對邊,把它上面的七個地區轉換到環面上, 使得每兩個地區都相鄰,即所有七個地區應該著上不同的顏色.
圖 1
2 四色定理和環面七色定理的證明
2.1 染色的條件、性質和定理
地圖染色存在兩個先決條件. 一是兩國相鄰是指它們的公共邊界上至少包含一段連續曲線,兩個只在一個或有限個點接壤的國家不算相鄰. 二是國家是指由一條或若干條不自交的連續閉曲線圍起來的連通閉曲域, 但是一個國家不能有兩塊或兩塊以上互不毗鄰的領土. 否則我們無法用有限種顏色對它們染色使得任何兩個相鄰的國家染上的顏色都不同.
為論證四色定理,提出以下引理.
引理 1 一個平面上的地圖可以通過這樣的方式轉換到球面上去.如圖2,我們這樣想像,保持所有的單個圖形相鄰性質不變,只是作一些形狀和大小的改變,而把地圖以外的廣大區域想像為一個點, 通過扭曲閉合轉化為球面,不難想像,此時球面上地圖和平面上地圖保持著相同的染色性質;反之亦然,在球面上的地圖,我們先尋找若干個圖形的一個公共點 (可視為公共點在若干個圖形上,也可視為公共點不在若干個圖形上,另外也可以是一條公共線段),沿這個公共點(公共線段)展開可得平面圖.這就是說在平面上的四色定理,擴展到球面上照樣適用. 由此可以得出:一個平面上有限個圖形組成的地圖的最外圍圖形數量可以轉換而不影響本地圖的著色性質。
引理2 在平面或球面上,最多隻有四個圖形可以兩兩相鄰.在研究平面地圖的單個區域圖形兩兩相鄰問題時,兩個圖形兩兩相鄰,三個圖形兩兩相鄰情形較簡單,在此不作詳述. 如圖3,在四個圖形兩兩相鄰時,中間的圖形已經被外圍三個圖形完全包圍.中間的那個圖形不可能再和其他圖形相鄰了,所以最多隻有四個圖形可以兩兩相鄰,不可能有五個或者更多的圖形兩兩相鄰,這是四色定理成立的前提. 事實上,在平面或球面上二、三、四個圖形兩兩相鄰情形是唯一的.
引理3 如果由n個圖形組成的地圖的最外圍圖形是5個或者5個以上,並且用四色染色確保所有有共同邊界的圖形著上不同的顏色,那麼其最外圍的圖形存在使用3種及其以下顏色染色的可能性.
證明: 假定對於由n個國家構成的平面地圖用4種顏色染色滿足要求, 如圖4,最外圍的(帶+號)圖形超過5個,假定必須用4種顏色染色,不論怎樣染色,在最外圍的眾多圖形中當一個圖形(要選定有重復染色的圖形,必然存在)環抱所有帶+號的圖形時(沒有改變此圖的染色性質),就產生了矛盾,每當最外圍使用4種顏色染色時,我們總能找到其自相矛盾的情形,因此可以得出結論:最外圍的圖形存在使用3種及其以下顏色染色的可能性.此定理可成為四色定理的遞推基礎.這三條定理能夠揭示四色定理的奧秘.
圖2 圖3 圖4
2.2 四色和七色定理的證明
2.2.1 用數學歸納法證明四色定理
1)顯然,對於任意的由1、2、3、4個組成的圖形,四色定理正確.對於任意的5個圖形組成的圖形,根據「最多隻有四個圖形可以兩兩相鄰」的分析,可知任意的5個圖形時四色定理正確.
2)假設任意n個圖形時四色定理正確,那麼我們分析n+1個地圖圖形的情形.①如果任意n個圖形的地圖最外圍是3個及其以下,n+1個任意的地圖圖形用四種顏色著色明顯正確.②如果任意n個圖形的地圖最外圍是5個及其以上,根據引理3, 可知其最外圍存在使用3種顏色或者3種以下顏色染色的可能性,所以任意n+1個圖形時四色定理正確.③如果任意n個圖形的地圖最外圍是4個,根據引理1,我們將這個地圖轉化為最外圍是是5個及其以上組成的地圖,也容易證明任意n+1個圖形時四色定理正確.
2.2.2 用對接轉換方法證明環面七色定理
任意的一個環面可以這樣由球面轉換. 假想在擁有很多地圖圖形的球面上,從兩端各去掉一個圖形,兩端使用三種顏色或者三種以下的顏色就足夠了,如果一端由A、B、C或者三個以下包圍, 另一端由B、C、D(或者A、B、D或者A、C、D)及其以下包圍, 只要把另一端的B、C(或者A、B或者A、C)換為E、F就行了,此時用六色就足夠了.如果兩端均由A、B、C三色包圍, 這時需要把一端的A、B、C換為E、F、G三色,因為中間還有用顏色D的,此時需要七色.
3 說明
染色問題涉及到無窮盡圖形的繁雜組合,只能作一些淺顯的理論分析,由於沒有具體的染色換色法則,不能簡捷的人工染色.在分析時使用動態的分析方法,即視為地圖的單個圖形在不改變總體著色性質的情況下,單個或部分圖形是可以變化的.四色定理適用於二維空間面,如平面、馬鞍面、拋物面、球面、彎曲的圓柱面.染色問題針對不同的條件會有不同的結論,在一條直線上,只需要兩種顏色就可以把一條直線分成無數段,平面和球面上的地圖需要四色,環面上則需要七種顏色,三維空間上任意堆積嚴密的實物模型因兩兩相鄰不受限制,所以沒有最少數目的顏色將其區別. 正象一團面條或者一條繩子, 每根面條或者繩線顯然是可以兩兩相鄰的,所以我們不能用有限種顏色把他們分開,而且使相鄰的顏色均不同.
D. 實現四色定理的C++程序
給出一個圖的m-著色的程序段,回溯法:
/* 圖的鄰接矩陣Graph[n,n]表示無向連通圖G,
1,2,3,..m代表不同的顏色
頂點i所著色用x[i]表示,初始值都賦為0
*/
void NextValue(int k)
{
int j, flag;
do{
x[k] = (x[k]+1) % (m + 1)//分配給x[k]一種新的顏色
if (x[k] == 0)
return; //x[k]的顏色已用完
flag = 1; //x[k]是否可用的標記
for (j = 0; j < n; j++)
if (Graph[k,j] == 1 && x[k] == x[j]){
flag = 0; //x[k]不可用
break;
}
while (flag);
}
void MColoring(int k)
{
while (x[k] < m){ //產生x[k]的合理分配
NextValue(k); //找x[k]的一個合理分配
if (x[k] == 0)
return; //無解,結束調用
if (k == n) { //著完n個頂點,找到完整著色法,輸出
Output(x,k) //輸出當前解
else
MColoring(k+1)
}
}
/*
遞歸演算法:
void Coloring(區域 n)
1. 令顏色集ClrSet={ 沒有被區域n的鄰居區域使用的顏色 }.
2. 如果ClrSet是空集,返回.
3. 對ClrSet中的每種顏色c,作循環:
3.1 為區域n著色c。
3.2 如果所有區域都已著色(n是最後一個區域),那麼顯示/保存著色結果.
3.3 否則對下一個尚未著色的區域(n+1),調用Coloring(n+1).
4. 把區域n變為沒有著色的區域.
--------------------------------------------------------
*/
template<int node_count = 8>
class CColoring
{
private:
typedef int node_type;
typedef int color_type;
typedef std::set<node_type> node_set;
typedef std::vector<color_type> color_array;
public:
void operator()(const int _Matrix[node_count][node_count])
{
matrix = _Matrix;
colors_of_nodes.resize(node_count, 0);
total_count = 0;
coloring(0);
}
private:
void coloring(node_type n)
{
// 顏色的使用情況
std::vector<bool> used_colors;
node_type m;
color_type c;
// 初始化顏色的使用情況
used_colors.resize(color_count, false);
// 遍歷每個與區域n相鄰的區域m
for(m = 0; m < node_count; ++m)
{
if(matrix[n][m])
{
// 獲取m的顏色
c = colors_of_nodes[m];
// m已著色
if(c != 0)
used_colors[c] = true;
}
}
// 遍歷每個未被n的鄰居使用的顏色c
for(c = 1; c < color_count; ++c)
{
if(!used_colors[c])
{
// 為n著色c
colors_of_nodes[n] = c;
// 著色完畢
if(n >= node_count - 1)
{
++total_count;
// 輸出結果
_tprintf(_T("---------------------\n"));
_tprintf(_T("Method %d:\n"), total_count);
for(m = 0; m < node_count; ++m)
{
_tprintf(_T("node: %d, color: %d\n"), m, colors_of_nodes[m]);
}
}
// 還有區域沒有著色
else
{
// 為下一個未著色的區域,調用coloring()
coloring(n + 1);
}
}
}
// 將n設置為沒有著色的區域
colors_of_nodes[n] = 0;
}
// 0表示無色,1-4表示4種不同顏色
static const int color_count = 5;
// 鄰接矩陣
const int (* matrix)[node_count];
// 各區域對應的顏色
color_array colors_of_nodes;
// 總的著色方案數
int total_count;
};
void main()
{
int Matrix[4][4] =
{
{ 0, 1, 0, 0 },
{ 1, 0, 0, 0 },
{ 0, 0, 0, 1 },
{ 0, 0, 1, 0 },
};
CColoring<4> coloring;
coloring(Matrix);
}
E. 計算機八大常用硬體得發展史
回首三百八十年——計算機編年簡史
作者:葛陵
[史前時代:1623——1895]
1623年:德國科學家契克卡德(W. Schickard)製造了人類有史以來第一台機械計算機,這台機器能夠進行六位數的加減乘除運算。
1642年:法國科學家帕斯卡(B.Pascal)發明了著名的帕斯卡機械計算機,首次確立了計算機器的概念。
1674年:萊布尼茨改進了帕斯卡的計算機,使之成為一種能夠進行連續運算的機器,並且提出了「二進制」數的概念。(據說這個概念來源於中國的八卦)
1725年:法國紡織機械師布喬(B.Bouchon)發明了「穿孔紙帶」的構想。
1805年: 法國機械師傑卡德(J.Jacquard)根據布喬「穿孔紙帶」的構想完成了「自動提花編織機」的設計製作,在後來電子計算機開始發展的最初幾年中,在多款著名計算機中我們均能找到自動提花機的身影。
1822年:英國科學家巴貝奇(C.Babbage)製造出了第一台差分機, 它可以處理3個不同的5位 數,計算精度達到6位小數。
1834年:巴貝奇提出了分析機的概念,機器共分為三個部分:堆棧,運算器,控制器。他的助手, 英國著名詩人拜倫的獨生女阿達•奧古斯塔(Ada Augusta)為分析機編制了人類歷史上第一批計算機程序。
阿達和巴貝奇為計算機的發展創造了不朽的功勛,他們對計算機的預見起碼超前了一個世紀以上,正是他們的辛勤努力,為後來計算機的出現奠定了堅實的基礎。
1847年:英國數學家布爾(G.Boole)發表著作《邏輯的數學分析》。
1852年: 阿達•奧古斯塔(Ada Augusta)去世,年僅36歲。
1854年:布爾發表《思維規律的研究——邏輯與概率的數學理論基礎》,並綜合自己的另一篇文章《邏輯的數學分析》,從而創立了一門全新的學科-布爾代數,為百年後出現的數字計算機的開關電路設計提供了重要的數學方法和理論基礎。
1868年:美國新聞工作者克里斯托夫•肖爾斯(C.Sholes)發明了沿用至今的QWERTY鍵盤。
1871年:為計算機事業貢獻了畢生精力的巴貝奇(C.Babbage)去世。他與阿達所設想的分析機最終也未能問世,但是他們卻為後人留下了一份寶貴的遺產,那就是面對困難不屈不撓的精神,以及那數十種設計方案和程序。
1873年:美國人鮑德溫(F. Baldwin)利用自己過去發明的齒數可變齒輪製造了第一台手搖式計算機。
1886年:美國人Dorr E. Felt (1862-1930), 製造了第一台用按鍵操作的計算器。
1890年:美國在第12次人口普查中使用了由統計學家霍列瑞斯(H.Hollerith)博士發明的製表機,從而完成了人類歷史上第一次大規模數據處理。此後霍列瑞斯根據自己的發明成立了自己的製表機公司,並最終演變成為IBM公司。
1891年:利蘭•斯坦福與其妻子一道在靠近帕洛•阿爾托(Palo Alto)的地方開辦了面積達8,000英畝的斯坦福大學,從而為日後矽谷的誕生埋下了伏筆。
1893年:德國人施泰格爾研製出一種名為「大富豪」的計算機,該計算機是在手搖式計算機的基礎上改進而來,並依靠良好的運算速度和可靠性而佔領了當時的市場,直到1914年第一次世界大戰爆發之前,這種「大富豪」計算機一直暢銷不衰。
1895年: 英國青年工程師弗萊明(J.Fleming)通過「愛迪生效應」發明了人類第一隻電子
[電子管時代:1911——1946]
1911年:6月15日,美國華爾街金融投資家弗林特(C.Flent)投資霍列瑞斯的製表機公司,成立了全新的CTR公司,但公司創立之初並沒有涉足任何電子領域,反而生產諸如碎紙機或者土豆削皮機之類的產品。
1912年:美國青年發明家德•福雷斯特(L.De Forest)在帕洛阿托小鎮首次發現了電子管的放大作用,為電子工業奠定了基礎,而今日的帕洛阿托小鎮也已成為矽谷的中心地帶。
1913年:美國麻省理工學院教授萬•布希(V.Bush)領導製造了模擬計算機「微分分析儀」。機器採用一系列電機驅動,利用齒輪轉動的角度來模擬計算結果。
1924年:矽谷之父特曼擔任斯坦福大學教授,對創建HP、成立斯坦福工業園區起到決定性作用
2月,由霍列瑞斯創辦的製表機公司幾經演變,最終更名為國際商用機器公司,即我們今天看到的IBM。
1935年:IBM製造了IBM601穿孔卡片式計算機,該計算機能夠在一秒鍾內計算出乘法運算。
1936年:阿蘭.圖靈發表論文《論可計算數及其在判定問題中的應用》,首次闡明了現代電腦原理,從理論上證明了現代通用計算機存在的可能性,圖靈把人在計算時所做的工作分解成簡單的動作,與人的計算類似,機器需要:(1)存儲器,用於貯存計算結果;(2)一種語言,表示運算和數字;(3)掃描;(4)計算意向,即在計算過程中下一步打算做什麼;(5)執行下一步計算。具體到一步計算,則分成:(1)改變數字可符號;(2)掃描區改變,如往左進位和往右添位等;(3)改變計算意向等。整個計算過程採用了二進位制,這就是後來人們所稱的「圖靈機」。
20多歲的德國工程師楚澤(K.Zuse)研製出了機械可編程計算機Z1,並採用了二進制形式,其理論基礎即來源於布爾代數。
1937年:11月,美國AT&T貝爾實驗室研究人員斯蒂比茲(G. Stibitz)製造了電磁式數字計算機「Model-K」。
1938年:克勞德•艾爾伍德•香農(Claude Elwood Shannon)發表了著名論文《繼電器和開關電路的符號分析》,首次用布爾代數對開關電路進行了相關的分析,並證明了可以通過繼電器電路來實現布爾代數的邏輯運算,同時明確地給出了實現加,減,乘,除等運算的電子電路的設計方法。這篇論文成為開關電路理論的開端。
1939年:元旦,美國斯坦福大學研究生比爾•休利特(B.Hewllet)和戴維•帕卡德(D.Packard)正式簽署企業合夥協議,創辦了Hewllet-Packard(HP)公司,即國內通稱的惠普公司。
9月,貝爾實驗室研製出M-1型計算機。
10月,約翰.阿塔納索夫(John Vincent Atanasoff(1903-1995))製造了後來舉世聞名的ABC計算機的第一台樣機,並提出了計算機的三條原則,(1)以二進制的邏輯基礎來實現數字運算,以保證精度; (2)利用電子技術來實現控制,邏輯運算和算術運算,以保證計算速度; (3)採用把計算功能和二進制數更新存貯的功能相分離的結構。這就是著名的計算機三原則。
1940年:9月,貝爾實驗室在美國達特默思大學演示M—1型機。他們用電報線把安置在校園內的M—1型機和相連,當場把一個數學問題列印出來並傳輸到紐約,M—1型機在達特默思大學的成功表演,首次實現了人類對計算機進行的遠距離控制的夢想。
控制論之父維納提出了計算機五原則,(1)不是模擬式,而是數字式;(2)由電子元件構成,盡量減少機械部件;(3)採用二進制,而不是十進制;(4)內部存放計算表;(5)在計算機內部存貯數據。
1941年:楚澤完成了Z3計算機的研製工作,這是第一台可編程的電子計算機。可處理7位指數、14位小數。使用了大量的真空管。每秒種能作3到4次加法運算,一次乘法需要3到5秒。
1942年:時任美國依阿華州立大學數學物理教授的阿塔納索夫(John V. Atanasoff)與研究生貝瑞(Clifford Berry)組裝了著名的ABC(Atanasoff-Berry Computer)計算機,共使用了300多個電子管,這也是世界上第一台具有現代計算機雛形的計算機。但是由於美國政府正式參加第二次世界大戰,致使該計算機並沒有真正投入運行。
1943年:貝爾實驗室把U型繼電器裝入計算機設備中,製成了M—2型機,這是最早的編程計算機之一。此後的兩年中,貝爾實驗室相繼研製成功了M-3和M-4型計算機,但都與M-2型類似,只是存儲器容量更大了一些。
10月,綽號為「巨人」的用來破譯德軍密碼的計算機在英國布雷契萊庄園製造成功,此後又製造多台,為第二次世界大戰的勝利立下了汗馬功勞。
1944年:8月7日,由IBM出資,美國人霍德華•艾肯(H.Aiken)負責研製的馬克1號計算機在哈佛大學正式運行,它裝備了15萬個元件和長達800公里的電線, 每分鍾能夠進行200次以上運算。女數學家格雷斯•霍波(G.Hopper)為它編制了計算程序,並聲明該計算機可以進行微分方程的求解。馬克1號計算機的問世不但實現了巴貝奇的夙願,而且也代表著自帕斯卡計算機問世以來機械計算機和電動計算機的最高水平。
1946年:2月14日,美國賓西法尼亞大學摩爾學院教授莫契利(J. Mauchiy)和埃克特(J.Eckert)共同研製成功了ENIAC (Electronic Numerical Integrator And Computer):計算機。這台計算機總共安裝了17468隻電子管,7200個二極體,70000多電阻器,10000多 只電容器和6000隻繼電器,電路的焊接點多達50萬個,機器被安裝在一排2.75米高的金屬櫃里,佔地面積為170平方米左右,總重量達 到30噸,其運算速度達到每秒鍾5000次加法,可以在3/1000秒時間內做完兩個10位數乘法。
[晶體管時代:1947——1958]
1947年:12月23號,貝爾實驗室的肖克利(William B. Shockley),布拉頓(John Bardeen),巴丁(Walter H. Brattain)創造出了世界上第一隻半導體放大器件,他們將這種器件重新命名為「晶體管」
從上到下依次為:肖克利,布拉頓和巴丁
1948年:6月10日,香農在《貝爾系統技術雜志》(Bell System Technical Journal)上連載發表了他影像深遠的論文《通訊的數學原理》,並於次年在同一雜志上發表了自己的另一著名論文《雜訊下的通信》。在這兩篇論文中,香農闡明了通信的基本問題,給出了通信系統的模型,提出了信息量的數學表達式,並解決了信道容量、信源統計特性、信源編碼、信道編碼等一系列基本技術問題。兩篇論文成為了資訊理論的奠基性著作,此時尚不足三十歲的香農也成為了資訊理論的奠基人。
12月,ENAIC的兩位締造者共同創辦了世界上第一家電腦公司「埃克特—莫契利計算機公司」(EMCC)。
莫契利
埃克特
1949年:當時尚在美國哈佛大學計算機實驗室的上海籍華人留學生王安向美國國家專利局申請了磁芯的專利。
貝爾實驗室製造了M系列計算機的最後一個型號:M-6,並從此不在涉足計算機的研製與生產。貝爾實驗室所研製的M系列繼電器計算機,是從機械計算機過波到電子計算機的重要橋梁。
9月,「馬克」3號計算機研製成功,「馬克」3號也是霍德華•艾肯研製的第一台內存程序的大型計算機,他在這台計算機上首先使用了磁鼓作為數與指令的存儲器,這是計算機發展史上的一項重大改進,從此磁鼓成為第一代電子管計算機中廣泛使用的存儲器。
英國劍橋大學數學實驗室的Wilkes和他的小組建成了一台存儲程序的計算機EDSAC,輸入輸出設備仍是紙帶。
1950年:東京帝國大學的Yoshiro Nakamats發明了軟磁碟,從而開創了計算機存儲的新紀元。
10月,阿蘭.圖靈發表自己另外一篇及其重要的論文《機器能思考嗎》,從而為人工智慧奠定了基礎,圖靈也獲得了「人工智慧之父」的美譽。甚至有人說在第一代電腦占統治地位的那個時代,這篇論文我們可以把它看作第五代,第六代電腦的宣言書。
1951年:6月14日,當時已在雷明頓—蘭德(Remington-Rand)公司任職的莫契利和埃克特再次聯袂製造的UNIVAC計算機正式移交美國人口普查局使用,從而使電腦走出了實驗室,開始為人類社會服務,從此人類社會進入了計算機時代。
6月,王安創辦了王安實驗室,即王安電腦公司的前身,從此開始了王安電腦傳奇般的歷程。
1952年:1月,由計算機之父,馮•諾伊曼(Von Neumann)設計的IAS電子計算機EDVAC問世。這台IAS計算機總共採用了2300個電子管,運算速度卻比擁有18000個電子管的「埃尼阿克」提高了10倍,馮•諾伊曼的設想在這台計算機上得到了圓滿的體現。
1953年:4月7日,IBM正式對外發布自己的第一台電子計算機 IBM701。並邀請了馮•諾依曼、肖克利和奧本海默等人共150名各界名人出席揭幕儀式,為自己的第一台計算機宣傳。
8月,IBM發布了應用與會計行業的IBM702計算機。
1954年:6月8日,阿蘭.圖靈去世。
IBM推出了中型計算機IBM650,以低廉的價格和優異的性能在市場中獲得了極大的成功,至此,IBM在市場中確立了領導者的地位。
貝爾實驗室使用800隻晶體管組裝了世界上第一台晶體管計算機TRADIC。
1956年:美國達特莫斯大學(Dartmouth)青年助教麥卡錫,哈佛大學明斯基、貝爾實驗室香農(E.Shannon)和IBM公司信息研究中心羅徹斯特(N. Lochester)共同在達特莫斯大學舉辦了一個沙龍式的學術會議,他們邀請了卡內基—梅隆大學紐厄爾和赫伯特•西蒙、麻省理工學院塞夫里奇(O. Selfridge)和索羅門夫(R.Solomamff),以及IBM公司塞繆爾(A.Samuel)和莫爾(T.More)。這就是著名的「達特莫斯」會議。在經過充分的討論後,他們首次提出了「人工智慧」這一術語,從而標志著人工智慧作為一門新興學科的出現。
9月,IBM的一個工程小組向世界展示了第一台磁碟存儲系統IBM 350 RAMAC(Random Access Method of Accounting and Control)
1957年:8月,「數字設備公司」(簡稱DEC)在美國波士頓成立。創立者是來自於麻省理工學院的肯•奧爾森(K.Olsen)。此後的數十年中,DEC公司依靠自己的PDP系列,開創了小型機時代。
10月,諾依斯(N. Noyce)、摩爾(R.Moore)、布蘭克(J.Blank)、克萊爾(E.Kliner)、赫爾尼(J.Hoerni)、拉斯特(J.Last)、羅伯茨(S.Boberts)和格里尼克(V.Grinich)共同從晶體管之父肖克利的實驗室出走,創辦了仙童(fairchild)公司,這就是歷史上著名的「八天才叛逆」,從此,才有了我們熟悉的intel, AMD,IDT等等一大批我們熟知的企業。
八天才叛逆的兩個重要人物,諾里斯和摩爾。
1958年:11月,IBM推出了自己的IBM709大型計算機,這時IBM公司自IBM701以來性能最為優秀的電子管計算機,但同時它也是IBM最後一款電子管計算機。
[集成電路時代:1959——1970]
1959年:2月6日, 來自曾開發出第一台晶體管收音機的TI公司的基爾比(J.Kilby) 向美國專利局申報專利「半導體集成電路」。
7月30日,仙童公司向美國專利局申請專利「半導體集成電路」
1960年:麻省理工學院教授約瑟夫•立克里德(J.Licklider)發表了著名的計算機研究論文《人機共生關系》,從而提出了分時操作系統的構想,並第一次實現了計算機網路的設想。
1962年:供職於藍德公司的保羅•巴蘭發表了一篇具有里程碑式意義的學術報告《論分布式通信》,在文中他首次提出了「分布式自適應信息塊交換」,這就是我們現在稱之為「分組交換」的通訊技術。
1963年:8月,控制數據公司(CDC)的西蒙•克雷(S. Cray)博士帶領自己的研發小組研製成功CDC6600巨型機,CDC6600仍屬於第二代電腦,共安裝了35萬個晶體管。
1964年: 4月7日,在IBM成立50周年之際,由年僅40歲的吉恩•阿姆達爾(G. Amdahl)擔任主設計師,歷時四年研發的IBM360計算機問世,標志著第三代計算機的全面登場,這也是IBM歷史上最為成功的機型。
1965年:DEC公司推出了PDP-8型計算機,標志著小型機時代的到來。
當時尚在仙童公司的摩爾發表了一篇僅有三頁篇幅的論文,這就是對今後半導體發展有著深遠意義的「摩爾定律」。
1966年:時任美國國防部高級研究規劃屬(ARPA)信息處理技術辦公室(IPTO)主管的鮑伯•泰勒啟動了「阿帕」(ARPA)網的研究計劃。雖然他本人在事後一直強調「阿帕」網本身不是用於軍事目的,但是他所在的部門卻是冷戰時期的產物。
1968年:IBM公司首次提出「溫徹斯特/Winchester」技術,探討對硬碟技術做重大改造的可能性。
4月,「通用數據公司」(簡稱DGC)成立,創辦人為從DEC離職的PDP-8設計師卡斯特羅。
7月18日,從仙童公司辭職的戈登.摩爾(Gordon.Moore),羅伯特.諾伊斯(Robert.Noyce),威廉.肖克利(William.Shockley)共同創立了Intel公司,從此為計算機的發展和普及做出了不可磨滅的貢獻。
12月9日,美國加利福尼亞大學的恩格巴特(Douglas Englebart)博士發明了世界上第一隻滑鼠。它的工作原理即通過底部小球的滾動帶動樞軸轉動,並帶動變阻器改變阻值來產生位移信號,信號經計算機處理,屏幕上的游標就可以移動。恩格巴特博士設計滑鼠的初衷就是想通過這種簡便的操作方式來代替繁瑣的鍵盤操作,但是在滑鼠誕生最初的十多年中人們並沒有認識到這種操作方式的簡便性,直到1984年蘋果Macintosh的誕生才改變了人們的陳舊觀念。
(另有一種說法為恩格巴特博士於1964年發明了世界上第一隻滑鼠,並於1968年的IEEE會議上正式對外公布了其發明。)
1969年:DGC公司推出了自己的小型機Nova,成功的打入了一直被DEC把持的小型機市場,並成為當年最為紅火的新興企業。
貝爾實驗室的ken Thompson,Dennis Ritchie在一部PDP-7上開發了Unix操作系統。
5月1日,桑德斯(Jerry Sanders)從仙童公司辭職,並利用十萬美元創立了AMD公司。
10月29日,阿帕網美國加州大學洛杉磯分校(UCLA)節點與斯坦福研究院(SRI)節點實現了第一次分組交換技術的遠程通訊,這也標志著互聯網的正式誕生。
1970年:首次提出「兼容性」概念的IBM360之父吉恩•阿姆達爾(G. Amdahl)由於IBM否決了繼續開發大型機的計劃而離開了IBM公司,並創立了Amdahl公司,開始在大型機領域向IBM發出挑戰。雖然在此後不久他就喪失了對公司的控制權,但是他又接連創辦了三步曲、Grid公司和CDS公司,可是均宣告失敗。阿姆達爾本人最終病逝於1996年。
10月,美國施樂(Xerox)公司在今天矽谷的帕洛阿托成立了Palo Alto Research Center(PARC)研究中心,更為重要的是施樂並沒有為來到這里的科學家制定任何地研究計劃,而是讓他們自由得發揮。在此後的幾年中,PARC誕生了乙太網、滑鼠、面相對象、圖標、菜單、視窗等等一系列改變今後計算機發展方向的全新概念,並間接孵化了Windows、Office、Macintosh等劃時代的軟體作品,從其間走出的科學家還創立了Adobe、3Com、Novell等等改變IT世界格局的企業。
[微處理器時代:1971——1979]
1971年:來自《電子新聞》的記者唐·赫夫勒(Don Hoefler)依據半導體中的主要成分硅命名了當時帕洛阿托地區,矽谷由此得名
1月,INTEL的特德.霍夫研製成功了第一枚能夠實際工作的微處理器4004,該處理器在面積約12平方毫米的晶元上集成了2250個晶體管,運算能力足以超過ENICA。Intel於同年11月15日正式對外公布了這款處理器。
1972年:曾經開發了Unix操作系統的Dennis Ritchie領導開發出C語言。
原CDC公司的西蒙•克雷(S. Cray)博士獨自創立「克雷研究公司」,專注於巨型機領域。
1973年:5月22日,由施樂PARC研究中心的鮑伯·梅特卡夫(Bob Metcalfe)組建的世界上第一個個人計算機區域網絡--ALTO ALOHA網路開始正式運轉,梅特卡夫將該網路改名為「乙太網」。
1974年:
4月1日,Intel推出了自己的第一款8位微處理晶元8080。
12月,電腦愛好者愛德華•羅伯茨(E.Roberts)發布了自己製作的裝配有8080處理器的計算機「牛郎星」,這也是世界上第一台裝配有微處理器的計算機,從此掀開了個人電腦的序幕。
1975年:克雷完成了自己的第一個超級計算機「克雷一號」(CARY-1),實現了每秒一億次的運算速度。該機佔地不到7平方米,重量不超過5噸,共安裝了約35萬塊集成電路,同時這也標志著巨型機跨進了第三代電腦的行列。
7月,比爾•蓋茨(B.Gates)在成功為牛郎星配上了BASIC語言之後從哈佛大學退學,與好友保羅.艾倫(Paul Allen)一同創辦了微軟公司,並為公司制定了奮斗目標:「每一個家庭每一張桌上都有一部微型電腦運行著微軟的程序!」
1976年:4月1日,斯蒂夫.沃茲尼亞克(Stephen Wozinak)和斯蒂夫.喬布斯(Stephen Jobs)共同創立了蘋果公司,並推出了自己的第一款計算機:Apple-Ⅰ。
6月,美國伊利諾斯大學的兩位數學家沃爾夫岡•哈肯(W.Haken)和肯尼斯•阿佩爾(K. Apple)利用計算機成功的證明了困擾世界數學界長達100多年的「四色定理」
(註:四色定理在1852年被提出,即任何地圖均可由四種顏色組成就能區分所有兩相鄰的國家和地區)
9月,施振容創立宏基公司。
10月,雅達利公司推出了世界上第一款3D電子游戲《夜行車手》(Night Driver),游戲只有黑白兩色,採用第一人稱視角。
1977年:6月,拉里.埃里森(Larry Ellison)與自己的好友Bob Miner和Edward Oates一起創立了甲骨文公司(Oracle Corporation)。
1979年:6月,鮑伯·梅特卡夫離開了PARC,並同Howard Charney、Ron Crane、Greg Shaw和 Bill Kraus組成一個計算機通信和兼容性公司,這就是現在著名的3Com公司。
[PC時代一 :1980——1985]
1980年:年初,當時尚不知名的Novell公司推出了NetWare網路操作系統。
9月30日,DEC、Intel和Xerox共同發布了「乙太網」技術規范,這就是現在著名的乙太網藍皮書。
1981年:7月,沈望傅創立了創新科技公司。
8月12日,經過了一年的艱苦開發,由後來被IBM內部尊稱為PC機之父的唐•埃斯特奇(D.Estridge)領導的開發團隊完成了IBM個人電腦的研發,IBM宣布了IBM PC的誕生,由此掀開了改變世界歷史的一頁。
8月12日,微軟推出來MS-DOS 1.0版。
1982年:一名年僅15歲的少年通過計算機網路闖入了「北美空中防務指揮系統」,這是首次發現的從外部侵襲的網路事件。這個年輕人就是後來被判入獄的世界頭號黑客,被美國聯邦法院宣判終生不得接觸計算機產品的凱文.米特尼克。他的另一件「事跡」就是在1994年的時候向聖迭戈超級計算機中心發動進攻,將整個互聯網置於危險的境地。
2月,康尼恩(R.Canion)、史蒂麥克(G.Stimac)和巴雷斯(H.Barnes)共同成立了康柏(Compaq)公司。
2月, Intel發布80286處理器。時鍾頻率提高到20MHz,並增加了保護模式,可訪問16M內存。支持1GB以上的虛擬內存。每秒執行270萬條指令,集成了134000個晶體管。
9月29日,3Com公司推出了世界上第一款網卡-EtherLink網路介面卡,這也是世界上第一款應用於IBM-PC上的ISA介面網路適配器。
11月,康柏公司推出了攜帶型PC機Portable,這也是第一台非IBM製造的PC兼容機。
1983年:1月,蘋果公司推出了研製費用高達5000萬美元的麗薩(Lisa)電腦,這也是世界上第一台商品化的圖形用戶界面的個人計算機,同時這款電腦也第一次配備了滑鼠。
5月8日,IBM推出了IBM PC的改進型號IBM PC/XT,並為其內置了硬碟。
1984年:邁克爾•戴爾創立了DELL公司。
聯想公司成立。
來自英國的Adlib Audio公司推出了第一款音效卡:魔奇音效卡,從而讓PC擁有了真正的發聲能力。
1月24日,蘋果公司推出了劃時代的Macintosh計算機,不僅首次採用了圖形界面的操作系統,並且第一次使個人計算機具有了多媒體處理能力。
8月14日,IBM推出了採用intel 80286處理器的IBM PC/AT電腦。
年底,康柏開始開發IDE介面。
1985年:Philips和Sony合作推出CD-ROM驅動器。
ATI(Array Technology Instry)成立。
7月,intel公司推出了計算機歷史上有著舉足輕重地位的80386處理器,這也是intel公司的第一枚32位處理器。
11月,在經歷了多次延期之後,微軟公司終於正式推出了Windows操作系統。
[PC時代二:1986——1994]
1986年:9月,康柏公司第一次領先於IBM推出桌上型386個人電腦Deskpro PC,這在當時引起了不小的轟動。
同月,Amstrad Announced發布便宜且功能強大、面向家庭設計的計算機Amstrad PC 1512。該機具有CGA圖形適配器、512KB內存、8086處理器20兆硬碟驅動器,並採用了滑鼠器和圖形用戶界面。
1987年:4月2日,IBM推出PS/2系統。最初基於8086處理器和老的XT匯流排。後來過渡到80386,開始使用3.5英寸1.44MB軟盤驅動器。引進了微通道技術,這一系列機型在市場中取得了巨大成功,累計出貨量達到200萬台。
11月,微軟推出了Windows 2.0版。相比於上一個版本,微軟加入了動態數據交換和覆蓋式窗口等先進技術。
1988年:11月2日,由 23歲研究生羅伯特•莫里斯(R.T.Morris)編制的「蠕蟲」病毒在互聯網上大規模發作,這也是互聯網第一次遭受病毒的侵襲,從此,計算機病毒逐漸傳播開來。
1989年:4月10 日,英特爾公司在拉斯維加斯電腦大展上首度發表集成有120萬晶體管的486處理器。
4月,華碩(ASUS)公司在台灣成立。
11月,SoundBlast Card音效卡正式發布。
1990年:蘋果公司聯合Motorola和IBM公司一同開發了基於RISC結構的微處理器PowerPC,為的就是能夠同Intel公司的X86系列處理器相抗衡。
3月24日,因患癌症,王安病逝於美國馬薩諸塞州立總醫院。
5月5日, 紐約地方法院正式開庭,判處88年「蠕蟲」病毒製造者莫里斯3年緩刑,罰款1萬美元和400小時公益勞動。
5月22日,微軟宣布推出Windows 3.0操作系統,並在年底創下銷售100萬套的紀錄。當時的Windows 3.0操作系統提供了對多媒體,網路等眾多最先進技術的支持,從而被成為軟體技術的一場革命。
。。。。。。。。。。。。。。。。。。。。。。。
F. 地圖著色演算法,該演算法中,要能證明四色定理,而不是運用
起碼需要10種顏色。
G. 四色定理的證明方法,用語言簡練的話說
四色定理(Four color theorem)最先是由一位叫古德里(Francis Guthrie)的英國大學生提出來的。四色問題的內容是:「任何一張地圖只用四種顏色就能使具有共同邊界的國家著上不同的顏色。」用數學語言表示,即「將平面任意地細分為不相重疊的區域,每一個區域總可以用1,2,3,4這四個數字之一來標記,而不會使相鄰的兩個區域得到相同的數字。」這里所指的相鄰區域,是指有一整段邊界是公共的。如果兩個區域只相遇於一點或有限多點,就不叫相鄰的。因為用相同的顏色給它們著色不會引起混淆。
H. C語言做四色問題要代碼
//線性地區的方案
#include<stdio.h>
intn=0;
intmain()
{
printf(「輸入n的值=」);
scanf("%d",&n);
printf(" ");
inti=0;
inta=rand()%3+1;
intb=0;
for(i=0;i<n;i++)
{
printf("地區%d=%d ",i+1,a);
while(1)
{
b=rand()%3+1;
if(b!=a)
{
a=b;
break;
}
}
}
return0;
}
I. 繪制地圖時用4種顏色即可使相鄰的國家(或地區)用不同的顏色區別出來,怎麼證明
地圖四色定理,四色問題又稱四色猜想,是世界近代三大數學難題之一。四色問題的內容是:「任何一張地圖只用四種顏色就能使具有共同邊界的國家著上不同的顏色。」用數學語言表示,即「將平面任意地細分為不相重疊的區域,每一個區域總可以用1,2,3,4這四個數字之一來標記,而不會使相鄰的兩個區域得到相同的數字。」
電子計算機問世以後,由於演算速度迅速提高,加之人機對話的出現,大大加快了對四色猜想證明的進程。美國伊利諾大學哈肯在1970年著手改進「放電過程」,後與阿佩爾合作編制一個很好的程序。就在1976年6月,他們在美國伊利諾斯大學的兩台不同的電子計算機上,用了1200個小時,作了100億判斷,終於完成了四色定理的證明,轟動了世界。
四色定理的非計算機證明:龐加萊定理的一個應用
本文在原有的拓樸學、圖論、及著色理論的基礎上增加了一些必不可少的公理、定理及定義,從而建立了在著色問題上比較完善的理論系統,並採用了一些新的方法,證明了球面上及平面上平面圖的四色定理。即在球面或平面上對於任何平面圖有X(G)≤4。
一、 引 言
四色定理之所以長期得不到理論性而非計算機進行的證明,主要就是因為沒有建立起一個既簡要而又完善的理論系統。下面所列出的公理、定理、定義大都是證明四色定理所需要的,其中絕大部分都是原來拓樸學和圖論和著色理論中已有的,極少是新增加的。
在「球面」或「平面」上在著色問題中的最重要的特點就是任何「圈」在「球面」或「平面」上的「阻斷」作用。同樣「圈」在所有「簡單多面體」上也有這樣的「阻斷」作用。但在「非簡單多面體」上有些「圈」就不再具有這種「阻斷」作用,本文正是利用了這一特點證明了「四色定理」。
另一方面,數學家歐拉在證明「歐拉公式」V+F–E=2(其中V是
「簡單多面體」的頂點數,E是「棱數」F是「面數」)採用了逐步「去線」「去面」「去點」的方法,而本文採用的是先「添線」然後再逐步「去點」與「去線」…反復進行,最終完成了證明。這兩種方法雖然不完全相同但卻有相似之處。
二、預 備
公理1:任何直達的(直接相連接的)兩點,必須採用不相同的顏色。(註:本文均採用「點著色」的方法)
公理2:任何不能直達的兩點可以採用相同的顏色著色。
公理3:在「平面」或「球面」上任何一個「封閉圈」(指若干條首尾相連的「線」所構成的圖形)都可將「平面」或「球面」「分斷隔離」成為不能直達的兩部份,即這一部份內(即這個「圈」內)的點必須經過「封閉圈」(以後簡稱為「圈」)上的點才能到達另一部份內(即這個「圈」外)的點(在著色問題中,「線」與「線」之間是不能交叉的。因為如果「線」與「線」之間交叉則它們顯然不能處於同一「平面」或「球面」上了。
公理4:在「環面」(形如普通的救生圈)上有些「封閉圈」是不能起到「分斷隔離」的作用的。即「圈」一側的「點」可以不必非要通過「圈」上的點就可以到達「圈」的另一側的點。(這種「環面」實際上是「七可著色」的,但本文不加以討論)
定理1:每一個沒有三角形的可平面圖是3可著色的(即X(G)≤3)
(註:本文中凡未加證明的定理均為「拓撲學」及「圖論」中已有的定理,例如本文中的定理1、定理2、定理3、等。另外本文中所列舉的公理也都是各種拓撲學和圖論書中經常採用的,只不過是沒有明確地列舉出來而已)
定理2:一個圖是雙可著色的,當且僅當它沒有「奇圈」。
定理3:在「平面」或「球面」上的完全圖K 的著色數為4。
定義1:一個「奇圈」或「偶圈」內有一些點,則這些點叫作這個圈的「圈內點」。這個「圈」叫作這些點的「點外圈」。
定義2:一個「奇圈」或「偶圈」外有一些點,則這些點叫作這個圈的「圈外點」。
實際上「內」與「外」都是相對而言的。特別是在「球面」上更為明顯。
定義3:一個「奇圈」或「偶圈」上有一些點,則這些點叫作這個圈的「圈上點」。
定義4:如果一個圈內僅有一個點,則這個「圈」稱為這個點的「最小圈」。
定義5:如果去掉了某一個「著色點」之後並不改變原圖的「著色數」,那麼稱這點為「著色可省略點」。
定理4:如果一個圖中僅有一個「圈」及圈內僅有一個點,且這點與「圈上點」都分別相連則這個圖的著色數:X(G)≤4。
證明:如圖(1)ABCDE……的著色數X(G)≤3(根據定理1)當再加上圈內一點0之後,由於0與圈上所有的點都相連,所以點0必須取與圈上的點顏色都不相同的另一種顏色。故其著色數應再增加一,故有X(G)≤4。證明完。
圖(1)
定理5:在平面圖中增加一條連接原圖中尚未連接的兩點之間的連線,則新圖的著色數不小於原圖的著色數。
證明:假如這後來被連接的兩點的原來的顏色是不相同的則連接之後也不會改變原來的著色數。假如這兩點原來的著色是相同的,則此時有必要將其中的一個著色點改變為另一種顏色,並對全圖的著色進行重新調整。這時新圖的著色數仍不會小於原圖的著色數。這是因為假設新圖的著色數小於原圖的著色數,(反證法)設原圖的著色數為N,則新圖的著色數為N-K,,(N、K都是正整數且K<N)。然後再將新增加的那一條連線去掉之後,其它部分可完全採用新圖的著色法,也能滿足鄰點異色的要求。這說明原圖的著色數本來就應該至多是N-K。這與前面的假設原圖的著色數為N相矛盾。因此新圖的著色數小於原圖的著色數是不可能的。所以在平面圖中增加一條連接原圖中尚未連接的兩點之間的連線,新圖的著色數不小於原圖的著色數。
證明完。
定理6:一個僅有「圈上點」(即既沒有「圈內點」又沒有「圈外點」)的三角剖分圖是3可著色的。即X(G)=3
證明:如圖(2)有圈ABCDEFG……先對其中的某一個三角形的三個頂點著色。例如對A、B、C三個頂點分別著上第1、第2、第3共三種不同的顏色。然後對下一個與ΔABC有公共邊AC的ΔACD的頂點D著上與B點相同的第2種顏色。然後再對下一個與ΔACD有公共邊AD的ΔADF中的頂點F著上與C點相同的第3種顏色。……如此繼續下去,就可以用3種不同的顏色給所有的頂點分別著色。這就證明了對於這種僅有「圈上點」的三角剖分圖是3可著色的。即X(G)=3 證明完
圖(2)
定理6推論:一個僅有「圈上點」的圖的著色數有X(G)≤3
證明:在原圖的基礎上在圈內再增加若干條連線,使其成為「三角剖分圖」這樣做之後不會減少原圖的著色數(根據定理5)。所以有X(G原)≤X(G新)。但增加了「連線」之後,新圖的著色數
X(G新)=3(根據定理6)。 故有X(G原)≤3 證明完。
定理7:對於任何平面圖有著色數:X(G)≤5(此定理在本文證明四色定理時可以不利用,但若利用此定理則在敘述本文的證明時會更為方便些,此定理在各圖論書中均有證明)
定理8: 任何一個封閉的三維空間,只要它裡面所有的封閉曲線都可以收縮成一個點,這個空間就一定是一個三維圓球。(龐加萊定理)
定理8推論:在「球面」上挖一個「洞」就變成了拓撲學意義上的「平面」了。在「球面」上挖二個「洞」就變成了拓撲學意義上的「圓柱側面」了。在「球面」上不論挖多少個「洞」都不會改變原來「球面」上的「著色數」。
證明:將有限「平面」的「四周」在空間向外收縮為一點,或將「圓柱」的上下底面都收縮為一個點就也成了三維圓球的球面。(龐加萊定理)所以「平面」「圓柱側面」等曲面在拓撲意義上就是「球面」所以它們的「著色數」也一定相同。(證明完)
三、四色定理的證明
四色定理:在球面或平面上對於任何平面圖有X(G)≤4
證明:(反證法)
假設四色定理不能成立,即存在某平面圖是必須用5種或5種以上的顏色來著色。即有X(G)≥5,不失一般性,可作一個任意復雜的圖,如圖(3),(註:讀者也可在此嘗試選擇其它任何形狀的圖)其中的實線部分表示全圖的一個很小的局部圖,虛線部份表示省略了的大部份圖形。其復雜程度可以由讀者任意構築和想像,但必須是「有限圖」而不應該是「無限圖」。
圖(3)
然後對此圖作以下幾個步驟的處理與分析:
第一步:在保持原圖的所有點與連線的基礎下,再將原圖中尚未相連但卻能夠相連的各點兩兩之間盡可能多地連接起來,(應注意不再增加新的著色點,而僅僅增加連線)直至成為「三角剖分圖」為止。由前面定理5可知這樣處理之後新圖的著色數不會比原圖減少,這一步稱之為「添線」。
第二步:任取圖內某一個「圈內點」及圍繞這點的「最小圈」進行分析。例如我們取的這個「圈內點」為V ,且在「添線」時我們已經連接了V 與V 及V 與V ,並且還連接了V 與V 及V 與V …已經把原圖變成了一個「三角剖分圖」這時V 的「最小圈」就是V —V —V —V —V —V 。對於這個「局部圖形」進行著色調整與分析。根據定理4,我們可以把V 的最小「點外圈」安排第一、第二、第三種顏色進行著色。把V 安排為第四種顏色進行著色。若然後再給所有「圈外的點」都著上顏色,由假設可知其「著色數」X(G)≥5,但由前面的「公理2」和「公理3」可知「圈內點」與「圈外點」不可能直達,故可以把V 這點的著色由原來安排的第四種顏色調整為第五種顏色,再由定義5可知若這時把V 這點連同V 直接相連的所有連線都去掉。這樣做也並不會減少原圖的「著色數」。(因為V 這點是被它的四周的「最小圈」阻斷隔絕在圈內的,它與「圈外點」的著色是無關的。如果說這樣做減少了原圖的著色數,例如「著色數」從五減少為四,則說明原圖的「著色數」本來就應該是四。)這一步稱之為「去點」與「去線」。(這時的V 點是「著色可省略點」,而V 點既然已經去掉,則與它直接相連的各條線,也就自然沒有存在的必要了。因為本文採用的是點著色的方法。)
第三步:反復對圖中其它各「圈內點」作第一步的「添線」或第二步的「去點」與「去線」,(可交替或不交替地使用)直至對圖中的任何一點來說都再也沒有「圈內點」可去了為止。最終使它成為一個「三角剖分圖」。因為「點」在一個又一個地減少,且「圈內點」與「圈外點」是相對而言的。所以最終的結果只能如圖(1)或圖(2),即得到只有一個「圈」且圈內只有一個點的圖(這時「圈內點」與「圈上點」相連)或一個只有「圈上點」的「三角剖分圖」。但這時的「著色數」X(G)≤4。這顯然與開始的假設X(G)≥5相矛盾,所以一開始的假設X(G)≥5是錯誤的。故在「球面」或「平面」上的著色數有X(G)≤4成立。證明完。
為了便於讀者更好地理解這一證明,讀者可以多自選一些圖形,由簡單到復雜,按照本文中所提供的方法(即證明中的三個步驟)進行反復試驗和思考,便能夠悟出本證明其中的無比奧妙和正確性。
四、一個細節的說明
為了使讀者更好地了解本文的思路,作一點補充說明。本文的主要思路是圍繞著「全圖」中的「局部圖」的「圈」及「圈內點」,「圈外點」進行分析與處理的。「三角剖分」圖中的「三角」實質上就是由三點構成的「圈」。如果圖中出現由大於三點所構成的「圈」,則可以通過「添線」的方法使其成為「三角剖分圖」然後再進行分析與處理。如果圖中出現由二點構成的「圈」或出現由一點構成的「圈」(例如出現一個區域包圍了另一個區域的情況),前文中雖然沒有提及,但對於它的分析與處理方法與由三點所構成的「圈」可完全相同。
J. "四色猜想",最終在哪一年被人們用計算機得到證明
1852年由格斯里提出,1976年藉助計算機解決了這個問題。
1852年,畢業於倫敦大學的格斯里(FrancisGuthrie)來到一家科研單位搞地圖著色工作時,發現每幅地圖都可以只用四種顏色著色。這個現象能不能從數學上加以嚴格證明呢?他和他正在讀大學的弟弟決心試一試,但是稿紙已經堆了一大疊,研究工作卻是沒有任何進展。
1852年10月23日,他的弟弟就這個問題的證明請教了他的老師、著名數學家德·摩爾根,摩爾根也沒有能找到解決這個問題的途徑,於是寫信向自己的好友、著名數學家哈密頓爵士請教,但直到1865年哈密頓逝世為止,問題也沒有能夠解決。
1872年,英國當時最著名的數學家凱利正式向倫敦數學學會提出了這個問題,於是四色猜想成了世界數學界關注的問題,世界上許多一流的數學家都紛紛參加了四色猜想的大會戰。
從此,這個問題在一些人中間傳來傳去,當時,三等分角和化圓為方問題已在社會上「臭名昭著」,而「四色瘟疫」又悄悄地傳播開來了。
高速數字計算機的發明,促使更多數學家對「四色問題」的研究。電子計算機問世以後,由於演算速度迅速提高,加之人機對話的出現,大大加快了對四色猜想證明的進程。就在1976年6月,在美國伊利諾斯大學的兩台不同的電子計算機上,用了1200個小時,作了100億判斷,結果沒有一張地圖是需要五色的,最終證明了四色定理,轟動了世界。