ticoAg/ChineseCorpus-Kaggle-fanti huggingface dataset:
* 2006年10月9日，李遠哲在接受臺灣《聯合報》專訪時，承認：「大家對教育確實有很多不滿。但這十多年來，很多人受到誤導，認為教改會要負責；其實教育是大家一直要改革、討論的，要經年累月檢討，方向不對就要改進。」同時，對於臺灣教育的問題，李遠哲說：「最大問題出在，大家盲目相信筆試才公平；所以高中老師應該幫忙學生作生涯規劃，就做得非常差，讓補習班可以營利。我不是說筆試沒用，但筆試成績只是人的才華之中一個微小的部分，結果年輕人就在這種環境下掙扎。臺灣的教育這幾年已經有不少進步，例如老師教學自主，或是國小學生生活非常活潑；但『升學考試帶動的教學』還需要改善。」
* 2008年1月21日，日本《產經新聞》報導，李遠哲不後悔曾經挺扁，但因為對陳水扁人格瑕疵感到失望，公開呼籲謝長廷與陳水扁切割。
* 2009年6月21日，鑑於臺灣司法濫用羈押權，蔡英文串聯李遠哲等人，聲明保障人權，停止延長羈押陳水扁。
* 2012年1月10日，李遠哲及學術界人士連署聲明，宇昌案給科學工作者很深感觸，生技本無色，但選舉政治正踐踏生技幼苗，宇昌案是很好的生技成功典範，卻難逃政治抹黑。為民進黨總統候選人蔡英文的人格及宇昌案背書。
* 2012年8月14日，特偵組約談中研院院士何大一、陳良博，民進黨主席蘇貞昌、前主席蔡英文後，查無不法簽結宇昌案。
* 2015年12月31日，李遠哲自中研院原子所退休，依中研院規定辦理退休，並按照一般研究人員相同本薪請領「一次退休金」153萬9175元、「公保養老給付」58萬6093元，放棄十八趴優惠存款。
* 2016年4月27日，中研院副院長王汎森解釋，李前院長卸任院長時領250萬元的退休金，一年多以前卸任特聘研究員又領150萬元，總計400萬元，沒有月退俸當然也沒有外傳50萬元的月退休金。。現為終身特聘研究員。
*2019年，在中共中央總書記習近平發佈「習五條」後，總統府資政吳澧培、前總統府資政彭明敏、長老教會牧師高俊明、前中研院院長李遠哲等「臺獨四大老」登報要求蔡英文總統交出行政權，此動作被外界認為是為2020年賴清德的總統大選鋪路
* 1936年11月19日，生於日本帝國臺灣新竹州。
* 1943年入新竹公學校，是棒球校隊及乒乓球校隊隊員。
* 1949年入新竹中學，是網球校隊隊員，並在學校樂團吹長號。
* 1955年保送進入國立臺灣大學化工系，次年轉入化學系。
* 1959年畢業於國立臺灣大學。
* 1959年入國立清華大學（新竹）原子科學研究所放射化學組碩士班。
* 1961年續留清大擔任助教一年。
* 1962年赴美國加州大學柏克萊分校就讀化學博士，論文由馬漢（Bruce Mahan）教授指導。
* 1967年2月，前往哈佛大學，在達德利·赫施巴赫教授處從事博士後研究。
* 1968年10月，任芝加哥大學化學系及佛蘭克研究所（James Franck Institute）助理教授。
* 1971年10月，升為芝加哥大學副教授。
* 1972年返臺擔任清華大學客座教授半學年。
* 1973年1月，升為芝加哥大學教授。
* 1974年返回加州柏克萊分校，任化學系教授、勞倫斯柏克萊實驗室主任研究員。同年，成為美國公民。
* 1975年任美國人文與科學學院院士（Fellow, American Academy of Arts and Science）
* 1979年獲選爲美國國家科學院院士。
* 1980年當選中央研究院數理組第十三屆院士。
* 1980年任中國科學院化學研究所名譽研究員。
* 1986年獲授美國國家科學獎章。
* 1986年與哈佛大學赫施巴赫教授及多倫多大學約翰·波拉尼教授同獲諾貝爾化學獎。
* 1987年5月，與另一位美籍華人得主李政道一起應邀到北京會見鄧小平。
* 1994年1月15日，放棄美國國籍，回到臺灣接替吳大猷擔任中央研究院院長。
* 1995年應時任總統李登輝和行政院院長連戰邀請，擔任行政院教育改革審議委員會（教改會）召集人，
* 1997年12月2日，教改會完成階段性任務解散後卸任。
* 2000年3月13日，發表辭去中央研究院院長職務；不久接受時任總統陳水扁挽留及續任。
* 2002年4月15日，出任拉曼大學國際顧問委員會成員之一。
* 2002至2004年，任亞太經合會中華臺北領袖代表。
* 2006年10月19日，中央研究院院長任期屆滿，由翁啟惠接任。
* 2007年1月，被選任為日本學士院客員（對國際學術的發達有特別功勞的外國人研究者，得被選定為日本學士院客員，李遠哲是目前為止唯一一位臺灣人日本學士院客員）。
* 2007年5月22日，出任《臺灣大百科全書》，總監修。
* 2007年10月9日，天主教教宗本篤16世任命李遠哲為宗座科學院院士。
* 2008年3月21日起，擔任T3大學聯盟召集人、諮詢委員會委員。
* 2008年當選國際科學理事會 (ICSU)會長。任期自2011年開始。
* 2011年11月，擔任日本沖繩科學技術大學院大學理事會會員。
* 2012年9月11日至15日，應蒙古國立大學校長TUMUR-OCHIR Sanjbegz之邀訪問蒙古，訪問期間除接受蒙古國立大學頒贈榮譽博士學位外，並發表題為"Sustainability of Human Society"及"Dynamics of Chemical Reactions and Photochemical Processes"兩場演講。
* 2012年10月17至20日，受巴拿馬第14屆國家科技會議之邀，發表開幕演講，並榮獲巴拿馬頒授「Manuel Amador Guerrero（大十字勳章）」。
* 2014年5月30日，受邀至 TEDxTaipei 演講，對未來進行闡述說道：「打破一戶一冰箱的思維，由社區共用一個大冰箱來省電；水資源不一定要用於發電，面對酷熱的夏天，可以直接將臺灣東海岸又深又冷的海水引至西岸冷卻大都會。」
*  諾貝爾基金會諾貝爾獎得主介紹
*  李遠哲與臺灣首次政黨輪替 , 玉山社, 2013
*  臺灣話題人物篇-大千聞人錄-李遠哲
**  「學術研究的心路歷程」演講會
**  李遠哲與大學、高中理科學生座談紀錄
**  一位科學家成長的過程－李遠哲教授淡大演講稿
**  ノーベル化學賞受賞者　李遠哲先生インタビュー
由于所有的計算機算法均是確定性算法，因此在電腦上的隨機函數生成的都是偽隨機數，不過，偽隨機數和偽隨機數之間也有區別，且至少可以分為兩個層次：統計學偽隨機數、密碼學安全偽隨機數。大部分編程語言庫中預備了的隨機函數生成的都是前一種，而密碼學安全偽隨機數則由一類叫做CSPRNG的隨機函數生成。對于實際問題中的大部分應用，這兩個不同層次的偽隨機數已經可以滿足大部分隨機數的需求。
通常采用Rnd獲取，但大多數時候配合Randomize使用。
Rnd函數得出的事實上是順序讀取一個隨機數列表中的數，Randomize的功能是重新生成隨機數列表，因此一般放置于Rnd函數前。也有說這個函數生成的是偽隨機數。
使用rand;可以產生一個0~32768之間的隨機整數。若要產生帶有范圍的隨機數，可以使用mod運算符，例如：rand%15代表產生一個0~14之間的隨機整數。
* MSDN Rnd 函數(英文)
* The C Library Reference Guide rand 函數(英文)
萬維網聯盟，又稱W3C理事會，是全球資訊網的主要國際標準組織，為半自治非政府組織（quasi-autonomous nongovernmental organization）。
萬維網聯盟（W3C）由蒂姆·伯納斯-李於1994年10月離開歐洲核子研究組織（CERN）後成立，在歐盟執委會和國防高等研究計劃署（DARPA）的支持下成立於麻省理工學院MIT計算機科學與人工智慧實驗室（MIT／LCS），DARPA推出了ARPANET，是互聯網的前身之一。
該組織試圖透過W3C制定的新標準來促進業界成員間的兼容性和協議。不相容的HTML版本由不同的供應商提供，導致網頁顯示方式不一致。聯盟試圖讓所有的供應商實施一套由聯盟選擇的核心原則和元件。
CERN最初打算做為W3C的歐洲分支機構，然而CERN希望把重點放在粒子物理而不是資訊技術上。1995年4月，法國國家信息與自動化研究所（INRIA）成為W3C的歐洲機構。1996年9月，慶應義塾大學SFC研究所成為W3C亞洲機構。從1997年開始，W3C在世界各地建立了區域辦事處。截至2009年9月，已有十八個區域辦事處，涵蓋澳大利亞、比荷盧聯盟、巴西、中國、芬蘭、德國、奧地利、希臘、香港、匈牙利、印度、以色列、意大利、大韓民國、摩洛哥、南非、西班牙、瑞典。2013年1月，北京航空航天大學成為W3C中國機構。2016年，W3C在英國和愛爾蘭建立了區域辦事處。
為解決網路應用中不同平臺、技術和開發者帶來的不兼容問題，保障網路信息流通得順利完整，萬維網聯盟制定了一系列標準并督促網路應用開發者和內容提供者遵循這些標準。標準的內容包括使用語言的規范，開發中使用的導則和解釋引擎的行為等等。W3C也制定了包括XML和CSS等的眾多影響深遠的標準規范。
但是，W3C制定的網路標準似乎并非強制，而只是推薦標準，因此部分網站仍然不能完全實現這些標準，特別是使用早期所見即所得網頁編輯軟件設計的網頁往往會包含大量非標準代碼。
* SMIL：同步多媒體集成語言
* XHTML：可延伸超文件標示語言
* PICS：網路內容篩選平臺
永濟市是中華人民共和國山西省的一個縣級市，由運城市代管。位于山西西南隅，同蒲鐵路穿越市境。
古稱蒲坂，相傳為舜帝之都。戰國時屬于魏國，稱智邑。秦置蒲坂縣，王莽時改蒲城。東漢復名蒲坂縣。隋朝開皇十六年（596年）析蒲坂縣置河東縣，大業二年（606年）省蒲坂入河東縣。至明朝洪武二年（1369年），省河東縣入蒲州。清朝雍正六年（1728年）升為蒲州府，并設附郭永濟縣，以境內永濟渠命名。
1556年1月23日，陜西省發生約8級的大地震，永濟是重災區之一，全國死亡人數占計高達83萬（不包括沒有登記戶口的居民），是中國歷史以至全球史上傷亡最為慘重的一次地震。
1912年廢府存縣，1958年與安邑縣、解虞縣、臨猗縣合并為運城縣（現運城市）。1961年析運城縣復置永濟縣。1994年1月撤縣設市，目前隸屬于地級運城市。市中心建有舜都廣場，紀念舜帝建都于此的傳說。
位于山西西南隅，南倚中條山，西臨黃河，與陜西省隔河相望。
下轄3個街道辦事處、7個鎮：
*鐵路：同蒲鐵路（大同－風陵渡）永濟站、大西客運專線永濟北站
*公路：運風高速公路（S87）、、
永濟的工業以輕工業為主，農業主產小麥、棉花、淡水魚、蘆筍、桃樹、蘋果、杏樹、花椒、玉米等。
高技術行業方面，有中國中車集團旗下的永濟電機公司，負責供應牽引電動機予全國鐵路車輛。
*礦產有磷、石英砂、石灰巖、白云石、鐵、鉛鋅、金、銅、紅瑪瑙等。
*野生動物有野豬、野兔、野羊等。
*土特產主要有桑落酒、蒲柿、黃河大鯉魚。
2010年第六次全國人口普查44.4724萬人。
* 全國重點文物保護單位8處：蒲津渡與蒲州故城遺址（蒲津渡為古代黃河上的著名渡口，其附近曾發現四尊每個重達60噸的唐代鐵牛，是中國現存最大的鐵鑄文物）、解梁故城遺址、棲巖寺塔林、普救寺塔、永濟萬固寺、永濟扁鵲廟、董村戲臺、東姚溫牌坊。
* 山西省文物保護單位11處：石莊遺址、高市村漢墓群、小朝村漢墓群、楊博墓、韓楫墓、叔夷伯齊墓、趙杏古墓群、孟桐墓、楊瞻墓、趙睿沖墓、張允齡家族墓地。
* 五老峰：道教名山，史稱東華山。它和附近的古蒲州共同構成了一處國家重點風景名勝區。
* 鸛雀樓：古代名樓，始建于五代，因王之渙的《登鸛雀樓》聞名。最近一次毀于清朝，后于1997年重建。
楊貴妃、柳宗元、馬遠
一個平板式指南針，透明膠底板的設計方便於放在地圖之上量度方位，距離和劃線，指向針常在指向北方的一端漆上紅顏色標記。
一枚在船隻上的平鑲式指南針
作戰用透鏡式指南針
野外定向專用的姆指式指南針（左）
指南針，又稱羅盤和司南，是一種用于指示方向的工具，廣泛應用于各種方向判讀，譬如航海、野外探險、城市道路、地圖閱讀等領域。
指南針又稱指北針，因為當代指向針常在指向北方的一端漆上顏色標記，以便使用者尋找北方。
有一種觀點認為中國古代記載的“司南”就是指南針最早形式（戰國時韓非子《有度篇》即已出現司南一詞）。東漢王充（公元27～約97）《論衡》（明嘉靖版）卷十七是應篇第五十二說“司南之杓，投之於地，其柢指南”，這個記載雖不是最早，但是最早表述清楚的一個。司南具體形式卻有很大爭議，根據《論衡》以及唐韋肇《瓢賦》中的記載，王振鐸判定司南為勺型天然磁石配合地盤，雖有出土漢地盤和河南南陽東漢墓出土石刻司南勺圖佐證，但畢竟無完整配合出土。1950年代錢臨照試圖以天然磁石制做勺形司南，但因天然磁石磁距小、底部摩擦大而未成功。
將司南理解為磁勺從古文獻考證及實驗方面在學術界一直存有異議。其中東北師范大學教授劉秉正在1956年考證出指南魚是中國人最早地進行人工磁化的應用，同時也對司南是磁性指南工具提出質疑。近些年來他進一步提出《論衡·是應篇》以及《瓢賦》中的司南是天上的北斗， 而其它的文獻中的司南或指南有的是指南車如《鬼谷子》記載的司南，有的是行事的準則如《抱樸子·外篇·疾謬》中的指南，還有是指官職如《韓非子》中的記載。2005年中國國家博物館研究員孫機近根據前北平歷史博物館舊藏殘宋本《論衡》認定“司南之杓”杓字實為酌，那么看來“其柢指南”之柢也非指勺柄。根據最新的文獻考證表明，司南是北斗的別稱，同時司南的其他用法也都與北斗有關。此文通過對北魏·溫子升《定國寺碑》中“幽隱長夜，未睹山北之燭；沉迷遠路，詎見司南之機。”、梁·吳均《酬蕭新浦王洗馬詩二首》中的“獨對東風酒，誰舉指南酌”等唐以前文獻的分析，認為這些文獻中司南只能解釋成北斗，而《論衡》，《瓢賦》中的司南也應是北斗。而元稹《加裴度幽鎮兩道招撫使制》中的司南應是官職，宋·釋正覺《頌古》：“妙握司南造化柄，水云器具在甄陶。”中的司南應是權力，唐·宋暠《獬廌賦》中“守法者仰之以司南，疾惡者投之於有北。”的司南是法律，這些詞意都來源于北斗。另外《韓非子·有度》中的司南也應解釋成法律，其中的“朝夕”不是方向，而是早晚朝見或君王早晚聽政。其他司南引申為定時間（杜甫《詠雞》中的司南）、指德高望重的人(張九齡《祭張燕公文》)、以及指導準則等意也來源于北斗。此文認為目前司南是磁性指南工具的論據還遠不充分。
《武經總要》指南魚
曾公亮成書于1044年的《武經總要》前集卷十五中有關于水浮指南魚的記載：李約瑟指出，鐵皮從高于居里點（600℃-700℃）的溫度急速降溫，就會被地磁場磁化成為磁鐵。這種利用地磁場制作磁鐵的方法，雖然磁性較弱，但具有不需天然磁鐵的優點。上文中的“道路”、“指南魚以辨所向”等字句，說明指南針在1044年已經用于陸路交通了。
世界上最早的關于用天然磁石磨鋼針的方法造磁針，以及人造磁針指南的記載，出現在北宋沈括《夢溪筆談》：
* 方家用磁石磨針鋒，制造指南針。
* 四種支撐磁針的方法：水浮（水磁針）、放在指甲上、放在碗邊，用一根蠶絲懸掛磁針（旱磁針）。
元初《事林廣記》記載：
鄭和航海圖五針路
最早見于航海用途的指南針記載于北宋朱彧撰寫的《萍洲可談》：《萍洲可談》成書於1111年-1117年間，但所敘述的是1086年的事。這比Alexander Neckam可能寫於1190年的《論器具（De naturis rerum）》中說法：航海時“白天云遮太陽，或夜間黑暗不辨方向時，使用磁鐵摩擦鐵針，針停時指南北，”早約一個世紀。與英國幾乎同時法國和稍晚一點的意大利也有了首次指南針的記載。
1123年宋朝派遣使臣取海路出使朝鮮，《宣和奉使高麗圖經》記載用水浮指南針導航：
宋代的航海指南針，除“南北”，還未見有其他方位，如：東、西、西北等方向。
四十八方位羅盤用于航海的文獻紀錄，最早見于元代周達觀《真臘風土記》：其中丁未針= 202.5°、坤申針= 232.5°。
明朝永樂年間隨鄭和下西洋的鞏珍在《西洋番國志》的《自序》中敘述應用水浮羅盤的情況：
《鄭和航海圖》中紀錄109道航海針路。例如：
* “太倉港口開船，用丹乙針，一更，船平吳淞江。用乙卯針，一更，船到南匯嘴。平招寶”。（鄭和航海圖五）
* “蘇門答臘開船，用乾戌針，十二更，船平龍涎嶼。四十更，船又用辛酉針。五十更，船見錫蘭山”；（鄭和航海圖十八 乾戌= 307.5° ，辛酉= 277.5°）
* “官溜嶼用庚酉針，船收木骨都束”。（鄭和航海圖二十。庚酉= 262.5°）
明代《順風相送》、《指南正法》、《東西洋考》等文獻都有針路記錄：
* 廣東往磨六甲：南亭門放洋，用坤未針 （217.5°）五更船取烏頭山。用單坤針（西南 225°）十三更取七洲洋。坤未 （217.5°）針 七更船平獨豬山。……乾亥 （322.5°）針五更船平昆宋嶼，單亥針（330°）五更船取前嶼，乾（315°）針五更取五嶼；沿山使取磨六甲。
* 臺灣往日本從大港出。東南風可用丁未 （202.5°）及單未 （210°）過茄老灣線。南到青水烏水乾，可牽舵及用壬（345°）及壬子（352.5°），轉變取澎湖東過。。
* 七洲洋用坤未針，三更取銅鼓山。
明代舟師使用的羅盤，用水浮針，有一定的規矩：
近來曾在青島和海南發現明代瓷質水浮指南針，尺寸大至為：最大外徑9.5厘米；上有盛水同心圓孔徑4.4厘米，孔深2.3厘米，外圍青花釉繪刻度，底座、四壁厚實堅固，估計是去水收藏，用時加水。現代液體羅盤基本原理類似，不過改進采用了密封技術。
中國在12世紀已經發明旱羅盤即現代指南針基本形式。經過阿拉伯人有效改進后才傳入歐洲。但是歐洲現存關于指南針的記載早于阿拉伯，阿拉伯語中指南針（al-konbas）一詞也似源于古意大利語。近來在江西臨川一座葬于公元1198年的宋墓里發現一俑（標寫“張仙人”），手持一似風水羅盤“亦是旱羅盤”物，有觀點認為旱羅盤中國也可能早于西方使用，但可能先發明于江南沿海（如泉、廣）一帶應用，故博學如沈括也未見到，今后尚須考古文物工作者努力。內陸后世旱羅盤則多用于風水羅盤和校時羅盤，如174/l189曾三異《同話錄》“地螺，或有子午正針，或用子午丙壬間縫針。天地南北之正，當用于午。”“地螺”可能是一種校時羅盤，主要用途是校時。
能使指針相反的永福磁石。
另外，越是靠近兩極地區，指南針就越沒辦法發揮功效：在北極點時，地表上的任何方向都可以被視為南方；在南極點時，地表上的任何方向都可以被視為北方。
*潘吉星：《中國古代四大發明——源流、外傳及世界影響》（合肥：中國科學技術大學出版社，2002）。
世界探明石油儲量，2009
石油（英語、拉丁語：''petroleum''，拉丁語詞源（巖石）+（油）），也稱原油，是一種黏稠的、深褐色（有時有點綠色的）液體。地殼上層部分地區有石油儲存。它由不同的碳氫化合物混合組成，其主要組成成分是烷烴，此外石油中還含硫、氧、氮、磷、釩等元素。不過不同油田的石油成分和外貌可以有很大的區分。石油主要被用來作為燃油和汽油，燃料油和汽油組成目前世界上最重要的一次能源之一。石油也是許多化學工業產品如溶液、化肥、殺蟲劑、潤滑油的礦物油基礎油和塑料等的原料。今天88%開采的石油被用作燃料，其它的12%作為化工業的原料。由于石油是一種不可再生能源，許多人擔心石油用盡會對人類帶來嚴重的后果。石油因其價值高昂，又被稱為黑金。
在中東地區波斯灣一帶的沙烏地阿拉伯、伊拉克、伊朗、科威特、阿聯酋、卡塔爾有豐富的儲藏，而在俄羅斯、委內瑞拉、加拿大、利比亞、尼日利亞、美國、墨西哥、哈薩克、中國大陸等地也有很大量的儲藏。委內瑞拉擁有世界最高的石油儲量。
早在公元前10世紀之前，古埃及、古代美索不達米亞文明和古印度等人類文明發源地已經采集天然瀝青，用于建筑、防腐、粘合、裝飾、制藥，古埃及人甚至能估算油苗中滲出石油的數量。楔形文字中也有關于在死海沿岸采集天然石油的記載。“它粘結起杰里科和巴比倫的高墻，諾亞方舟和摩西的筐簍可能按當時的習慣用瀝青砌縫防水”。
公元前5世紀，在古波斯地區的君主制國家—阿契美尼德王朝（前553—前334年）的首都蘇薩（Susa）附近出現了人類用手工挖成的石油井。最早把石油用于戰爭也在中東。《石油、金錢、權力》一書中說，荷馬的名著《伊里亞德》中敘述了“特洛伊人不停地將火投上快船，那船頓時升起難以撲滅的火焰”。當波斯國王居魯士二世準備奪取巴比倫時，有人提醒他巴比倫人有可能進行巷戰。塞琉斯說可以用火攻。“我們有許多瀝青和碎麻，可以很快把火引向四處，那些在房頂上的人要么迅速離開，要么被火吞噬。”
公元7世紀，君主制東羅馬帝國人用原油和石灰混合，點燃后用弓箭遠射，或用手投擲，以攻擊敵人的船只。阿塞拜疆的巴庫地區有豐富的油苗和氣苗。這里的居民很早就從油苗處采集原油作為燃料，也用于醫治駱駝的皮膚病。
歐洲從德國的巴伐利亞、意大利的西西里島和波河河谷，到波蘭的加利西亞、羅馬尼亞，中世紀以來，人們就有關于石油從地面滲出的記載。并且把原油當作“萬能藥”。加利西亞、羅馬尼亞等地的農民，早就挖井采油。
晉《博物誌》載：“酒泉延壽縣南山出泉水，大如筥，注地為溝，水有肥如肉汁，取著器中，始黃後黑，如凝膏，然極明，與膏無異。甚佳，彼方人謂之石漆。”唐《酉陽雜俎》稱：“高奴縣石脂水，水膩，浮上如漆，采以燃燈極明。”又《甘肅新通志》載：“石脂水，即石油河，出肅州南山”。唐《元和郡縣志》記載：“玉門縣石脂水在縣東南一百八十里，泉有苔，如肥肉，燃極明。水上有黑脂，人以草墨取用，涂鴟夷西囊及膏東。”《乾隆新編肅州志》載：“嘉峪關西有石漆，今按赤金東南一百五十里有石油泉，土人取之燃燈”。中國人使用固定在竹竿一端的鉆頭鉆井（“衝擊式頓鉆鑿井術”），其深度可達約一千米，現存此工法的油井見燊海井。他們焚燒石油來蒸發鹽鹵製食鹽。10世紀時他們使用竹竿做的管道來連接油井和鹽井。「石油」一詞首次在宋朝《夢溪筆談》中出現並沿用至今。
古代波斯的石板紀錄似乎說明波斯上層社會使用石油作為藥物和照明。
762年新建的巴格達的街道上鋪有從當地附近的自然露天油礦獲得的瀝青。9世紀阿塞拜疆巴庫的油田用來生產輕石油。10世紀地理學家阿布·哈桑·阿里·麥斯歐迪和13世紀馬可·波羅曾描述過巴庫的油田。他們說這些油田每日可以開采數百船石油。
現代石油歷史始于1846年，當時生活在加拿大大西洋省區的亞布拉罕·季斯納發明了從煤中提取煤油的方法。1852年波蘭人人伊格納齊·武卡謝維奇發明了使用更易獲得的石油提取煤油的方法。次年波蘭南部克洛斯諾附近開辟了第一座現代的油礦。這些發明很快就在全世界普及開來了。1846年在巴庫建立了第一座現代化開采的石油油井，1861年建立了世界上第一座煉油廠。當時巴庫出產世界上90%的石油。后來斯大林格勒戰役就是為奪取巴庫油田而展開的。
19世紀石油工業的發展緩慢，提煉的石油主要是用來作為油燈的燃料。20世紀初隨著內燃機的發明情況驟變，至今為止石油是最重要的內燃機燃料。尤其1859年8月27日在賓州挖到石油，引發美國第一次石油繁榮，在德克薩斯州、俄克拉何馬州和加利福尼亞州的油田發現導致“淘金熱”一般的形勢。
到1910年為止，在加拿大（尤其是在艾伯塔）、荷屬東印度、伊朗、秘魯、委內瑞拉和墨西哥發現了新的油田。這些油田全部被工業化開發。
直到1950年代中為止，煤依然是世界上最重要的燃料，但石油的消耗量增長迅速。1973年能源危機和1979年能源危機爆發后媒體開始注重對石油供應水平進行報道。這也使人們意識到石油是一種有限的原料，最后會耗盡，至少作為一種經濟能源。不過至今為止所有預言石油即將用盡的試圖都沒有實現，所以也有人對這個討論表示不以為然。石油的未來至今還無定論。2004年一份《今日美國》的新聞報道說地下的石油還夠用40年。有些人認為，由于石油的總量是有限的，因此1970年代預言的耗盡今天雖然沒有發生，但是這不過是被遲緩而已。也有人認為隨著技術的發展人類總是能夠找到足夠的便宜的碳氫化合物的來源的。地球上還有大量焦油砂、瀝青和油母頁巖等石油儲藏，它們足以提供未來的石油來源。目前已經發現的加拿大的焦油砂和美國的油母頁巖就含有相當于所有目前已知的油田的石油。
今天90%的運輸能量是依靠石油獲得的。石油運輸方便、能量密度高，因此是最重要的運輸驅動能源。此外它是許多工業化學產品的原料，因此它是目前世界上最重要的商品之一。在許多軍事沖突（包括第二次世界大戰和海灣戰爭）中占據石油來源是一個重要因素。
中東首次發現石油，是在1908年的伊朗，而今天約80%可以開采的石油儲藏位于該地區，其中62.5%位于沙特阿拉伯（12.5%，1938年3月3日發現石油）、伊拉克、科威特、阿拉伯聯合酋長國和卡塔爾。
美國於1977年至2015年期間實施原油出口禁令。
大多數地質學家認為石油像煤和天然氣一樣，是古代有機物通過漫長的壓縮和加熱后逐漸形成的。按照這個理論石油是由史前生物和藻類的尸體變化形成的。（陸上的植物則一般形成煤。）經過漫長的地質年代這些有機物與淤泥混合，被埋在厚厚的沉積巖下。在地下的高溫和高壓下它們逐漸轉化，首先形成臘狀的油頁巖，后來退化成液態和氣態的碳氫化合物。由于這些碳氫化合物比附近的巖石輕，它們向上滲透到附近的巖層中，直到滲透到上面緊密無法滲透的、本身則中空的巖層中。這樣聚集到一起的石油形成油田。通過鉆井和泵取人們可以從富集的油田中獲得石油。
地質學家將石油形成的溫度範圍稱為「油窗」。溫度太低石油無法形成，溫度太高則會形成天然氣。雖然石油形成的深度在世界各地不同，但是「典型」的深度為四至六千米。由於石油形成後還會滲透到其它巖層中去，因此實際的油田可能要淺得多。因此形成油田需要三個條件：豐富的源巖，滲透通道和一個可以聚集石油的巖層構造。
非生物成油的理論天文學家托馬斯·戈爾德在俄羅斯石油地質學家尼古萊·庫德里亞夫切夫的理論基礎上發展的。這個理論認為在地殼內已經有許多碳，這些碳有些自然地以碳氫化合物的形式存在。碳氫化合物比巖石空隙中的水輕，因此沿巖石縫隙向上滲透。石油中的生物標志物是由居住在巖石中的、喜熱的微生物導致的。與石油本身無關。
在地質學家中這個理論只有少數人支持。一般它被用來解釋一些油田中無法解釋的石油流入，不過這種現象很少發生。非生物成油理論無法解釋世界99%以上的石油都儲存在沉積巖中，而那些非沉積巖中的石油也可被解釋為從別處沉積巖中運移而來。同樣，非生物成油理論無法解釋石油中廣泛分布的生物標志化合物，如甾烷，伽馬蠟烷，植烷，藿烷，萜類以及同位素偏輕等現象。
開采石油的第一關是勘探油田。今天的石油地質學家使用重力儀、磁力儀等儀器來尋找新的石油儲藏。
地表附近的石油可以使用露天開采的方式開采。不過今天除少數非常偏遠地區的礦藏外這樣的石油儲藏已經幾乎全部耗盡了。今天在加拿大艾伯塔的阿薩巴斯卡油砂還有這樣的露天石油礦。在石油開采初期，少數地方也曾有過打礦井進行地下開采的石油礦場。
埋藏比較深的油田需要使用鉆井才能開采。海底下的油礦需要使用石油平臺來鉆和開采。
為了將鉆頭鉆下來的碎屑以及潤滑和冷卻液運輸出鉆孔，鉆柱和鉆頭是中空的。在鉆井時使用的鉆柱越來越長，鉆柱可以使用螺旋連接在一起。鉆柱的端頭是鉆頭。大多數今天使用的鉆頭由三個相互之間成直角的、帶齒的鉆盤組成。在鉆堅硬巖石時，鉆頭上也可以配有金剛石。不過有些鉆頭也有其它的形狀。
一般鉆頭和鉆柱由地上的驅動機構來旋轉，鉆頭的直徑比鉆柱要大，這樣鉆柱周圍形成一個空洞，在鉆頭的后面使用鋼管來防止鉆孔的壁塌落。
鉆井架，前面的容器中裝著鉆井液
鉆井液由中空的鉆柱被高壓送到鉆頭。鉆井泥漿則被這個高壓通過鉆孔送回地面。鉆井液必須具有高密度和高粘度。有些鉆頭使用鉆井液來驅動鉆頭，其優點是只有鉆頭，而不必整個鉆柱被旋轉。為了操作非常長的鉆柱在鉆孔的上方一般建立一個鉆井架。在必要的情況下，今天工程師也可以使用定向鉆井的技術繞彎鉆井。這樣可以繞過被居住的、地質上復雜的、受保護的或者被軍事使用的地面來從側面開采一個油田。
加拿大安大略省薩尼亞附近的油井及其抽油泵
地殼深處的石油受到上面底層以及可能伴隨出現的天然氣的壓擠，它又比周圍的水和巖石輕，因此在鉆頭觸及含油層時它往往會被壓力擠壓噴射出來。為了防止這個噴射，現代的鉆機在鉆柱的上端都有一個特殊的裝置來防止噴井。一般來說剛剛開采的油田的油壓足夠高可以自己噴射到地面。隨著石油被開采，其油壓不斷降低，后來就需要使用一個從地面通過鉆柱驅動的泵來抽油。
石油平臺是用來在海上鉆井和開采石油的
通過向油井內壓水或天然氣可以提高可開采的油量。通過壓入酸來溶解部分巖石（比如碳酸鹽）可以提高含油層巖石的滲透性。隨著開采時間的延長抽上來的液體中水的成分越來越大，后來水的成分大于油的成分，今天有些礦井中水的成分占90%以上。通過上述手段、按照當地的情況不同今天一個油田中20%至50%的含油可以被開采。剩下的油今天無法從含油的巖石中分解出來。通過以下手段可以再提高能夠被開采的石油的量：
* 通過壓入沸水或高溫水蒸汽，甚至通過燃燒部分地下的石油
* 注入二氧化碳來降低石油的黏度
* 注入輕汽油來降低石油的黏度
* 注入通過提高驅替液黏度，改變流度比的聚合物水溶液將原油從巖石孔隙釋放出來
* 注入改善油與水之間的界/表面張力的物質（表面活性劑）的水溶液來使油從巖石孔隙中分解出來。
這些手段可以結合使用。雖然如此依然有相當大量的油無法被開采，一旦成本太高這個油田就被視為開採完畢了。
水下的油田的開采最困難。要開采水下的油田要使用浮動的石油平臺。在這里定向鉆井的技術使用得最多，使用這個技術可以擴大平臺的開采面積。
長距離運輸石油的方法在海上是油輪，在陸地上是使用輸油管。短程也有使用汽車、火車和內河油船的。
辛烷是石油中存在的一種碳氫化合物。此圖為辛烷分子的球棍模型，其中白色線段表示C－H單鍵，黑色球體表示碳原子，白色球體表示氫原子。
構成石油的化學物質，用分餾能互相分離。原油作為加工的產品，有煤油、苯、汽油、石蠟、瀝青等。嚴格地說，石油以氫與碳構成的脂肪烴為主要成分。
分子量最小的4種烴，全都是煤氣。
石油精煉示意圖
* 石油化學物質 （ 塑料 ）
* 燃油 （重油、柴油、煤油、汽油 ）
* 清潔用品（洗滌劑、洗發水、沐浴乳、肥皂等）
*食品相關（化肥、殺蟲劑、口香糖等）
在煉油廠內，石油中的不同成分會被分離出來。利用沸點差異，分離出原油中不同化合物。從原油中可以提煉出汽油、柴油、煤油、取暖用油、潤滑油等等產品。
化學工業中的石油產品的原材料可以回溯到約300個基本化合物。今天90%這些化合物是從石油和天然氣中獲得的。其中包括乙烯、丙烯、丁二烯、苯、甲苯、二甲苯等等。今天約5-20%的石油用作化學工業的原材料。幾乎所有的化工產品在其生產過程中需要從石油獲得的基本化合物：染料、漆、藥物、清潔劑等。
石油 ? 加熱（沸點）
丁烷及丙烷（20℃）
（150℃~）汽油
（200℃～）煤油
（300℃～）柴油
（370℃～）重油
（400℃～）潤滑油、瀝青
作為世界上最重要的原材料之一石油本身是投機生意的目標。由于許多企業依靠石油，因此它的價格對股票價格影響很大。
各個不同的來源對世界上的石油儲藏量的估計各不相同。2004年艾克森美孚估計世界的總儲藏量為1.26兆（萬億）桶（1717億噸），同年英國石油公司的估計為1.15兆桶（1566億噸），《科學》甚至估計世界總儲藏量為3兆桶。今天已經確定的和使用目前的技術能夠經濟地開采的儲藏量近年來甚至有所上漲，2004年的數據是目前最高的。由于每年的開采和勘探工作的不足，中東、東亞和南美洲的儲藏量有所下降，同時非洲和歐洲的儲藏量有所上升。2008年，英國石油公司曾發表過調查報告，根據世界各國的石油儲藏量與石油消耗資料，推斷全球石油今天的世界儲藏量還夠用41.6年。但由于過去就已經有過類似的預言，而且石油從未告罄，這個數據也被人戲稱為“石油常數”。2003年最大的石油儲藏位于沙特阿拉伯（2627億桶）、伊朗（1307億桶）和伊拉克（1150億桶），其后為阿聯酋、科威特和委內瑞拉。
批評者懷疑這些數據，他們指出出于政治原因許多國家篡改它們的數據，此外許多國家雖然每年開采大量原油，但其數據始終不變，這說明這些數據已經陳舊了。有些專家認為21世紀初人類將到達哈伯特頂點，這時開采量將達到頂峰，此后開采量無法繼續提高，由于供給無法滿足需求，油價將高漲。
因此許多國家備有短期的儲藏來防止短期供不應求導致的危機。歐洲聯盟的國家必須擁有足夠90天的備用儲藏。
至今為止人類一共開采了約0.95兆桶石油。大多數儲藏是在1960年代發現的。2005年的年開采量為304億桶（相當于每日8330萬桶）。
各國石油產量列表世界地圖（2006–2012）
;以下排表按照2016年開采量排列：
石油開采量(日均開采（桶）, 2016)
(OPEC)
石油出口國家
;以下列表是按照2007年石油出口量排列的：
石油進口國家
平均每人石油消費量（顏色愈深愈多）
根據世界概況，2010年全球石油平均日消耗量為約8700萬桶。每年石油消耗量增長率為2%。
以下排表按照2015年石油消耗量排列：
石油消費量 (桶/天)
工業國家的人平均石油消耗量比發展中國家的人平均石油消耗量要高得多。2003年美國每年人平均石油消耗量為26桶，德國為11.7桶，中華人民共和國為1.7桶，印度為0.8桶，孟加拉國只有0.2桶。
本國生產的石油占消費10%或更低的國家。
（立方米/日）
Source:  CIA World Factbook
石油工業一般使用原油的出產地來區分不同的原油，此外比重、黏度來區分不同的原油。對于煉油廠來說原油含硫的量是一個重要的因素。含硫多的原油要達到今天的燃料標準，煉油成本比較大。高硫原油主要產自中東地區，包括沙特阿拉伯、伊拉克、科威特和伊朗；低硫原油則主要產自俄羅斯、阿爾及利亞、尼日利亞以及亞太地區（澳洲、中華人民共和國、印度、印尼等）和北海地區（挪威和英國）。
世界上常用的參考原油為：
* 北海布倫特原油由北海東設得蘭盆地中的15個油田的原油組成。開采出來的油首先運輸到設得蘭群島的薩洛姆石油終端。歐洲、非洲和中東運往西方的原油按照北海布倫特原油標價，因此它是一個重要的價格標數。
* 西得克薩斯中間基原油包括所有北美洲的原油
* 杜拜，用作輸往亞洲-太平洋地區的中東原油的價格標數
* （來自馬來西亞，用來作為遠東輕原油的參考標準）
* （來自印度尼西亞，用來作為遠東重原油的參考標準）
* 從2005年6月15日開始石油輸出國組織的使用以下原油的平均價格：
** 阿爾及利亞的撒哈拉混合油
石油輸出國組織試圖通過提高或減少產量來使得油價保持在一個上限和一個下限之間。因此它的標價對市場分析非常重要。而且它的標價包括輕油和重油，因此比北海布倫特原油和西德州輕質原油要重要。
石油的漲幅，1861年—2006年（最上面的線是經過通貨膨脹調整）
一般提到油價可能是指以下三種不同的價格：要么它指的是現貨價格，要么指的是紐約商品交易所上在俄克拉何馬州庫欣的供貨價格，或者是指國際石油交易所上的薩洛姆供貨價格。不同石油根據其比重、含硫量和產地的價格可以非常不同。大多數石油不是在市場上買賣的，而是在柜臺買賣的基礎上交易的，其價格一般是參考一個定價機構如普氏公司給出的價格定的。國際石油交易所稱65%交易的石油的價格低于該交易所提供的北海布倫特原油標價。
很多人指責石油輸出國組織控制油價，他們指出石油開采的實際價值只在每桶兩美元左右。石油輸出國組織則反駁說首先開采石油不僅僅是開采，而且此前的勘探、鉆井等等的價值也必須被包括進去。此外不能只用最低的開采價值作為標準。許多地方的開采價值高于上述的每桶兩美元。而且，由于石油輸出國組織通過控制開采量控制油價保持在一定的程度上使得一些油田（比如北海的油田）得以開采。此外石油輸出國組織的能力往往被錯誤高估。1990年代由于油價低使得在石油工業的投資非常低。尤其是目前勘探新的油田的價格非常高。這導致了2000年代初油價飛漲時石油輸出國組織沒有任何擴大開采量的余地來保持油價的穩定。
油價與全球宏觀經濟狀態息息相關，因此油價是一個關鍵性價格。一些經濟學家稱高油價對全球經濟增長有負影響。雖然高油價一般認為是經濟增長導致的，但這說明兩者之間的關系是非常不穩定的。
2008年1月2日，美國紐約商品交易所2月份交貨的原油期貨價格在歷史上首次突破每桶100美元的關口。
2020年4月21日，受2020年石油價格戰影響，美國5月WTI原油期貨收盤暴跌306%，首次降為負值。
目前石油是現代工業社會最重要的原料。絕大多數運輸工具使用石油及其衍生品驅動，此外石油還被用來發電，它也是化學工業重要的原材料。諸多國家有戰備儲油制度。
在過去數十年中開采石油以及其副作用為一些發展中國家的經濟、社會和環境導致了巨大的問題。在有些地區土著居民被驅逐，在分配石油帶來的財富上也可能有些地區造成巨大的沖突。外部的干涉和對沖突某一方的支持則導致更多的暴力。比如在阿爾及利亞平均每周就有約500次暴力沖突。
開采石油是非常昂貴的，也可能對環境帶來破壞。海上探油和開采會打擾海洋環境。尤其以清理海底的挖掘工作破壞環境最大。油輪事故后泄漏的原油或提煉過的油在阿拉斯加、加拉帕戈斯群島、西班牙和許多其它地區脆弱的海岸生態系統造成嚴重的破壞。
石油燃燒時向大氣層釋放二氧化碳，導致全球變暖。每能量單位石油釋放的二氧化碳低于煤，但是高于天然氣。但是作為交通用燃料要減少焚油導致的二氧化碳的釋放尤其棘手。一般只有大的發電廠才能夠裝配吸收二氧化碳的裝置，單個車輛無法裝配這樣的裝置。
雖然現在也有可再生能源作為選擇，但是可再生能源能夠取代多少石油以及可再生能源本身可能導致的環境破壞還不肯定和有爭議。陽光、風、地熱和其它可再生能源無法取代石油作為高能量密度的運輸能源。要取代石油這些可再生能源必須轉換為電（以蓄電池的形式）或者氫（通過燃料電池或內燃）來驅動運輸工具。另一個方案是使用生物質能產生的液體燃料（乙醇、生物柴油）來驅動運輸工具，但是目前的技術還無法讓生質燃料夠環保。總而言之要取代石油作為主要運輸能源是一件非常不容易的事情。
*  石油價格從1859年至今
*  Scientific American: The End of Cheap Oil
* Wolfgang Gründinger: ''Die Energiefalle. Ein Rückblick auf das Erd?lzeitalter.'' C.H. Beck, München 2006. ISBN 3-406-54098-8
* Robert H. Motzkuhn: ''Der Kampf um das ?l.'' Hohenrain, Tübingen 2005. ISBN 3-89180-077-0
* F. William Engdahl: ''Mit der ?lwaffe zur Weltmacht. Der Weg zur neuen Weltordnung.'' Kopp, Rottenburg N 2005. ISBN 3-938516-19-4 (''vgl.''  )
* Richard Heinberg: ''The Party's Over. Das Ende der ?lvorr?te und die Zukunft der industrialisierten Welt.'' Riemann, München 2004. ISBN 3-570-50059-4
* Rudolf Rechsteiner: '' Grün gewinnt. '' Orell Füssli, Zürich 2003. ISBN 3-280-05054-5 (PDF)
* Colin J. Campbell: ''?lwechsel!'' Dt. Taschenbuch-Verl., München 2002. ISBN 3-423-24321-X
* Daniel Yergin: ''Der Preis. Die Jagd nach ?l, Geld und Macht.'' S. Fischer, Frankfurt 1991. ISBN 3-10-095804-7
* Thomas Gold: ''Biosph?re der hei?en Tiefe.'' Ed. Steinherz, Wiesbaden 2000. ISBN 3-9807378-0-2
* Autorenkollektiv: ''Das ?l.'' in: ''Imperialismus.'' Bd 3. Gesellschaft für Druck und Verlag Wissenschaftlicher Literatur, München 1981, S.169-194. ISBN 3-922935-01-X
* Autorenkollektiv: ''Zur politischen ?konomie des Erd?ls - Ein strategisches Gut und sein Preis.'' in: ''GegenStandpunkt.'' München 1.1992,1.
*  translated 1955
* Khavari, Farid A. (1990). ''Oil and Islam: the Ticking Bomb''. First ed. Malibu, Calif.: Roundtable Publications. viii, 277 p., ill. with maps and charts.
* GA Mansoori, N Enayati, LB Agyarko (2016).  Energy: Sources, Utilization, Legislation, Sustainability, Illinois as Model State , World Sci. Pub. Co.,
* 中東、沙特阿拉伯、阿拉伯世界
* 中國石油大學、洋山申港油庫、浮頂式儲油罐
*  API – the trade association of the US oil industry.  (American Petroleum Institute)
*  U.S. Energy Information Administration
**  U.S. Department of Energy EIA – World supply and consumption
**  Who are the major players supplying the world oil market?
*  Joint Organisations Data Initiative | Oil and Gas Data Transparency
*  U.S. National Library of Medicine: Hazardous Substances Databank – Crude Oil
* '' Crude '': 2007 Australian Broadcasting Corporation documentary about the formation
廣義表是一種非線性的數據結構。但如果廣義表的每個元素都是原子，它就變成了線性表。廣義表廣泛地用于人工智能等領域的LISP語言。
廣義表一般記作 LS = (a1, a2, ···, an), n是它的長度，ai可以是單個元素(原子)，也可以是廣義表(子表)，當廣義表非空時，稱第一個元素a1為LS的表頭，稱其余元素組成的表為LS的表尾。注意：表頭是元素(可以是原子，也可以是廣表)，表尾一定是廣義表。E=(a, E)是一個遞歸的表。D=(( ),(e),(a,(b,c,d)))是多層次的廣義表，長度為3，深度為3。例：((a),a)的表頭是(a)，表尾是(a)，((a))的表頭是(a)，表尾是( )。
// 廣義表的頭尾鏈表存儲表示
typedef enum {ATOM, LIST} ElemTag;
// ATOM==0：原子，LIST==1：子表
typedef struct GLNode {
ElemTag tag;
// 公共部分，用于區分原子結點和表結點
// 原子結點和表結點的聯合部分
AtomType atom;
// atom是原子結點的值域，AtomType由用戶定義
struct GLNode *hp, *tp;
} ptr;
// ptr是表結點的指針域，prt.hp和ptr.tp分別指向表頭和表尾
} *GList, GLNode; // 廣義表類型
// 廣義表的頭尾鏈表存儲的基本操作(11個)
#include"func5-1.c"
void InitGList(GList *L) {
// 創建空的廣義表L
void CreateGList(GList *L, SString S) {
// 采用頭尾鏈表存儲結構，由廣義表的書寫形式串S創建廣義表L。設emp=""
SString sub, hsub, emp;
GList p, q;
StrAssign(emp, ""); // 空串emp=""
if (!StrCompare(S, emp)) // S=""
*L = NULL; // 創建空表
else { // S不是空串
*L = (GList)malloc(sizeof(GLNode));
if (!*L) // 建表結點
if (StrLength(S) == 1) {
// S為單原子，只會出現在遞歸調用中
(*L)->tag = ATOM;
(*L)->a.atom = S1; // 創建單原子廣義表
} else { // S為表
(*L)->tag = LIST;
p = *L;
SubString(sub, S, 2, StrLength(S) - 2);
// 脫外層括號(去掉第1個字符和最后1個字符)給串sub
// 重復建n個子表
sever(sub, hsub); // 從sub中分離出表頭串hsub
CreateGList(&p->a.ptr.hp, hsub);
q = p;
if (!StrEmpty(sub)) { // 表尾不空
p = (GLNode *)malloc(sizeof(GLNode));
if (!p)
p->tag = LIST;
q->a.ptr.tp = p;
} while (!StrEmpty(sub));
q->a.ptr.tp = NULL;
void DestroyGList(GList *L) {
// 銷毀廣義表L
GList q1, q2;
if (*L) {
if ((*L)->tag == LIST) { // 刪除表結點
q1 = (*L)->a.ptr.hp; // q1指向表頭
q2 = (*L)->a.ptr.tp; // q2指向表尾
DestroyGList(&q1); // 銷毀表頭
DestroyGList(&q2); // 銷毀表尾
void CopyGList(GList *T, GList L) {
// 采用頭尾鏈表存儲結構，由廣義表L復制得到廣義表T
if (!L) // 復制空表
*T = (GList)malloc(sizeof(GLNode));
// 建表結點
if (!*T)
(*T)->tag = L->tag;
if (L->tag == ATOM)
(*T)->a.atom = L->a.atom; // 復制單原子
CopyGList(&((*T)->a.ptr.hp), L->a.ptr.hp);
// 遞歸復制子表
CopyGList(&((*T)->a.ptr.tp), L->a.ptr.tp);
int GListLength(GList L) {
/* 返回廣義表的長度，即元素個數 */
int len = 0;
while (L) {
L = L->a.ptr.tp;
len++;
return len;
int GListDepth(GList L) {
/* 采用頭尾鏈表存儲結構，求廣義表L的深度。*/
int max, dep;
GList pp;
if (!L)
return 1; /* 空表深度為1 */
return 0; /* 原子深度為0，只會出現在遞歸調用中 */
for (max = 0, pp = L; pp; pp = pp->a.ptr.tp) {
dep = GListDepth(pp->a.ptr.hp); /* 遞歸求以pp->a.ptr.hp為頭指針的子表深度 */
if (dep > max)
max = dep;
return max + 1; /* 非空表的深度是各元素的深度的最大值加1 */
Status GListEmpty(GList L) {
/* 判定廣義表是否為空 */
GList GetHead(GList L) {
/* 生成廣義表L的表頭元素，返回指向這個元素的指針 */
GList h, p;
if (!L) /* 空表無表頭 */
p = L->a.ptr.hp; /* p指向L的表頭元素 */
CopyGList(&h, p); /* 將表頭元素復制給h */
return h;
GList GetTail(GList L) {
/* 將廣義表L的表尾生成為廣義表，返回指向這個新廣義表的指針 */
GList t;
if (!L) /* 空表無表尾 */
CopyGList(&t, L->a.ptr.tp); /* 將L的表尾拷給t */
return t;
void InsertFirst_GL(GList *L, GList e) {
/* 初始條件：廣義表存在。操作結果：插入元素e(也可能是子表)作為廣義表L的第1元素(表頭) */
GList p = (GList)malloc(sizeof(GLNode)); /* 生成新結點 */
p->tag = LIST; /* 結點的類型是表 */
p->a.ptr.hp = e; /* 表頭指向e */
p->a.ptr.tp = *L; /* 表尾指向原表L */
*L = p; /* L指向新結點 */
void DeleteFirst_GL(GList *L, GList *e) {
// 初始條件：廣義表L存在。操作結果：刪除廣義表L的第一元素，并用e返回其值
GList p = *L; // p指向第1個結點
*e = (*L)->a.ptr.hp; // e指向L的表頭
*L = (*L)->a.ptr.tp; // L指向原L的表尾
free(p); // 釋放第1個結點
void Traverse_GL(GList L, void(*v)(AtomType)) {
// 利用遞歸算法遍歷廣義表L
if (L) // L不空
if (L->tag == ATOM) // L為單原子
v(L->a.atom);
else { // L為廣義表
Traverse_GL(L->a.ptr.hp, v);
// 遞歸遍歷L的表頭
Traverse_GL(L->a.ptr.tp, v);
// 遞歸遍歷L的表尾
// 廣義表的擴展線性鏈表存儲表示
typedef struct GLNode1 {
AtomType atom; // 原子結點的值域
struct GLNode1 *hp; // 表結點的表頭指針
struct GLNode1 *tp;
// 相當于線性鏈表的next，指向下一個元素結點
} *GList1, GLNode1;
// 廣義表類型GList1是一種擴展的線性鏈表
// 廣義表的擴展線性鏈表存儲(的基本操作(13個)
void InitGList(GList1 *L) {
void CreateGList(GList1 *L, SString S) {
// 采用擴展線性鏈表存儲結構，由廣義表的書寫形式串S創建廣義表L。設emp=""
SString emp, sub, hsub;
GList1 p;
StrAssign(emp, ""); /* 設emp="" */
*L = (GList1)malloc(sizeof(GLNode1));
if (!*L) /* 建表結點不成功 */
if (!StrCompare(S, emp)) { /* 創建空表 */
(*L)->a.hp = (*L)->tp = NULL;
} else if (StrLength(S) == 1) { /* 創建單原子廣義表 */
(*L)->a.atom = S1;
(*L)->tp = NULL;
} else { /* 創建一般表 */
CreateGList(&(*L)->a.hp, hsub);
p = (*L)->a.hp;
while (!StrEmpty(sub)) { // 表尾不空，則重復建n個子表
CreateGList(&p->tp, hsub);
p = p->tp;
void DestroyGList(GList1 *L) {
/* 初始條件：廣義表L存在。操作結果：銷毀廣義表L */
GList1 ph, pt;
if (*L) { /* L不為空表 */
/* 由ph和pt接替L的兩個指針 */
if ((*L)->tag) /* 是子表 */
ph = (*L)->a.hp;
else /* 是原子 */
ph = NULL;
pt = (*L)->tp;
DestroyGList(&ph); /* 遞歸銷毀表ph */
DestroyGList(&pt); /* 遞歸銷毀表pt */
free(*L); /* 釋放L所指結點 */
*L = NULL; /* 令L為空 */
void CopyGList(GList1 *T, GList1 L) {
/* 初始條件：廣義表L存在。操作結果：由廣義表L復制得到廣義表T */
if (L) { /* L不空 */
*T = (GList1)malloc(sizeof(GLNode1));
(*T)->tag = L->tag; /* 復制枚舉變量 */
if (L->tag == ATOM) /* 復制共用體部分 */
(*T)->a.atom = L->a.atom; /* 復制單原子 */
CopyGList(&(*T)->a.hp, L->a.hp); /* 復制子表 */
if (L->tp == NULL) /* 到表尾 */
(*T)->tp = L->tp;
CopyGList(&(*T)->tp, L->tp); /* 復制子表 */
int GListLength(GList1 L) {
/* 初始條件：廣義表L存在。操作結果：求廣義表L的長度，即元素個數 */
GList1 p = L->a.hp; /* p指向第1個元素 */
while (p) {
int GListDepth(GList1 L) {
/* 初始條件：廣義表L存在。操作結果：求廣義表L的深度 */
GList1 pp;
if (L == NULL
L->tag == LIST && !L->a.hp)
else if (L->tag == ATOM)
return 0; /* 單原子表深度為0，只會出現在遞歸調用中 */
else /* 求一般表的深度 */
for (max = 0, pp = L->a.hp; pp; pp = pp->tp) {
dep = GListDepth(pp); /* 求以pp為頭指針的子表深度 */
Status GListEmpty(GList1 L) {
/* 初始條件：廣義表L存在。操作結果：判定廣義表L是否為空 */
if (!L
GList1 GetHead(GList1 L) {
GList1 h, p;
L->tag == LIST && !L->a.hp) /* 空表無表頭 */
p = L->a.hp->tp; /* p指向L的表尾 */
L->a.hp->tp = NULL; /* 截去L的表尾部分 */
CopyGList(&h, L->a.hp); /* 將表頭元素復制給h */
L->a.hp->tp = p; /* 恢復L的表尾(保持原L不變) */
GList1 GetTail(GList1 L) {
// 將廣義表L的表尾生成為廣義表，返回指向這個新廣義表的指針
GList1 t, p;
L->tag == LIST && !L->a.hp) // 空表無表尾
p = L->a.hp; // p指向表頭
L->a.hp = p->tp; // 在L中刪去表頭
CopyGList(&t, L); // 將L的表尾拷給t
L->a.hp = p; // 恢復L的表頭(保持原L不變)
void InsertFirst_GL(GList1 *L, GList1 e) {
// 初始條件：廣義表存在。操作結果：插入元素e(也可能是子表)作為廣義表L的第1元素(表頭)
GList1 p = (*L)->a.hp;
(*L)->a.hp = e;
e->tp = p;
void DeleteFirst_GL(GList1 *L, GList1 *e) {
if (*L && (*L)->a.hp) {
*e = (*L)->a.hp;
(*L)->a.hp = (*e)->tp;
(*e)->tp = NULL;
void Traverse_GL(GList1 L, void(*v)(AtomType)) {
GList1 hp;
if (L) { // L不空
if (L->tag == ATOM) { // L為單原子
hp = NULL;
} else // L為子表
hp = L->a.hp;
Traverse_GL(hp, v);
Traverse_GL(L->tp, v);
“禹亭侯蔡倫祖師”，清朝（18世紀）造紙業所供奉的祖師像
造紙術相傳是由東漢時代的蔡倫（63-121年）所改良，但是也有考古證據說明，造紙術早就存在，蔡倫只是改進造紙術的重要發展者，使造紙的成功率更高，成本更低。造紙術被稱為古代四大發明之一，是促使人類文化傳播的重要大發明。
東漢的許慎在他編寫中國第一部字典《說文解字》裡提到“紙”從“糸”。紙的發明、發展及傳播也是經過了一個曲折的過程。 造紙術的發明對于人類文明的傳播有巨大的作用，它使得文明的傳播速度更便捷、傳播成本更低，它促使了紙質書的出現，所以說這是一項極其偉大的發明。