|
|
|
前言 N.Wirth給出了程序設(shè)計(jì)的一個(gè)重要公式,程序=算法+數(shù)據(jù)結(jié)構(gòu)。 作為一個(gè)程序員或者程序設(shè)計(jì)愛(ài)好者來(lái)說(shuō),不應(yīng)該只把程序設(shè)計(jì)作為一門技術(shù),更應(yīng)該看成是一種藝術(shù)。其實(shí),算法本身也是一門藝術(shù),數(shù)據(jù)結(jié)構(gòu)本身也是一門藝術(shù)。程序也好,算法也好,數(shù)據(jù)結(jié)構(gòu)也好,其中都蘊(yùn)涵了很多的數(shù)學(xué),而數(shù)學(xué)更是一門藝術(shù)。如果把數(shù)學(xué)與程序設(shè)計(jì)完美地結(jié)合在一起,則是藝術(shù)的巔峰! 從某種意義上來(lái)說(shuō),計(jì)算機(jī)源于數(shù)學(xué)。而作為計(jì)算機(jī)科學(xué)核心技術(shù)的程序設(shè)計(jì),與數(shù)學(xué)之間的關(guān)系更是密不可分,可以這樣說(shuō),數(shù)學(xué)是計(jì)算機(jī)程序設(shè)計(jì)的靈魂。利用數(shù)學(xué)方面的知識(shí)、數(shù)學(xué)分析的方法以及數(shù)學(xué)解題的技巧,可以使得程序設(shè)計(jì)變得輕松、美觀、高效,而且往往能反映出問(wèn)題的本質(zhì)。 在ACM國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽(ACMICPC)和全國(guó)青少年信息學(xué)奧林匹克競(jìng)賽(NOI)系列活動(dòng)中,越來(lái)越多地出現(xiàn)了數(shù)學(xué)的影子,也用到了越來(lái)越多數(shù)學(xué)方面的知識(shí),對(duì)選手的數(shù)學(xué)修養(yǎng)要求越來(lái)越高。本書的目的就在于給廣大編程愛(ài)好者和信息學(xué)參賽者,介紹和總結(jié)一些程序設(shè)計(jì)中常用的數(shù)學(xué)知識(shí)和數(shù)學(xué)方法,希望能起到拋磚引玉的作用。 本書由全國(guó)青少年信息學(xué)奧林匹克競(jìng)賽金牌指導(dǎo)教師、常州市第一中學(xué)林厚從老師主編。2008年,筆者編寫出版了《數(shù)學(xué)與程序設(shè)計(jì)》一書,深受讀者歡迎。相比而言,《信息學(xué)奧賽之?dāng)?shù)學(xué)一本通》知識(shí)內(nèi)容更加豐富、體系結(jié)構(gòu)更加完整、例題習(xí)題更加新穎,更加突出實(shí)戰(zhàn)性和應(yīng)用性。在編寫過(guò)程中,吸收了很多OIer的靈感和智慧,參考了部分國(guó)家集訓(xùn)隊(duì)員和教練員的論文,包括朱全明、賈志鵬、陳瑜希、董宏華、金策、鬲融、唐文斌、余林韻、朱澤園、俞華程、Matrix67的博客、ACdreamers的博客、pi9nc的博客。福州市第三中學(xué)黃志剛老師和吳鈺晗、閆書弈兩位同學(xué),以及常州市第一中學(xué)吳睿海、孔瑞陽(yáng)等同學(xué)為本書的編寫做了大量調(diào)試和校對(duì)工作。全國(guó)青少年信息學(xué)奧林匹克競(jìng)賽(NOI)科學(xué)委員會(huì)主席、清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系王宏老師,在百忙之中審定了全書。在此,一并表示感謝!由于水平有限,書中難免存在不當(dāng)之處,懇請(qǐng)諒解,也歡迎廣大讀者批評(píng)指正,不勝感激! 書中所有例題的參考程序均采用DevC++實(shí)現(xiàn)。如果需要本書中所有題目的測(cè)試數(shù)據(jù)和PASCAL標(biāo)程,請(qǐng)發(fā)郵件與我聯(lián)系(hc.lin@163.com)。 筆者 目錄 第1章數(shù)論1 1.1整除2 1.2同余6 1.3最大公約數(shù)9 1.31輾轉(zhuǎn)相除法9 1.32二進(jìn)制算法9 1.33最小公倍數(shù)10 1.34擴(kuò)展歐幾里得算法10 1.35求解線性同余方程11 1.4逆元*本書中加“*”號(hào)內(nèi)容為提高性知識(shí),一般在省隊(duì)選拔及NOI比賽中才會(huì)涉及。16 1.5中國(guó)剩余定理*20 1.6斐波那契數(shù)23 1.7卡特蘭數(shù)29 1.8素?cái)?shù)32 1.81素?cái)?shù)的判定33 1.82素?cái)?shù)的相關(guān)定理35 1.83MillerRabin素?cái)?shù)測(cè)試*36 1.84歐拉定理37 1.85Pollard Rho算法求大數(shù)因子*38 1.9BabyStepGiantStep及擴(kuò)展算法*46 1.10歐拉函數(shù)的線性篩法*54 1.11本章習(xí)題57 第2章群論*64 2.1置換64 2.11群的定義64 2.12群的運(yùn)算64 2.13置換65 214置換群65 2.2擬陣65 2.21擬陣的概念66 2.22擬陣上的最優(yōu)化問(wèn)題67 2.3Burnside引理69 2.4Polya定理72 2.5本章習(xí)題86 第3章組合數(shù)學(xué)91 3.1計(jì)數(shù)原理91 3.2穩(wěn)定婚姻問(wèn)題*101 3.3組合問(wèn)題分類107 3.31存在性問(wèn)題108 3.32計(jì)數(shù)性問(wèn)題108 3.33構(gòu)造性問(wèn)題109 3.34最優(yōu)化問(wèn)題110 3.4排列110 3.41選排列110 3.42錯(cuò)位排列113 3.43圓排列113 3.5組合116 3.6母函數(shù)*129 3.61普通型母函數(shù)130 3.62指數(shù)型母函數(shù)132 3.7莫比烏斯反演*142 3.8Lucas定理*150 3.9本章習(xí)題155 第4章概率163 4.1事件與概率163 4.2古典概率165 4.3數(shù)學(xué)期望171 4.4隨機(jī)算法181 4.5概率函數(shù)的收斂性*189 4.6本章習(xí)題197 第5章計(jì)算幾何203 5.1解析幾何初步203 5.11平面直角坐標(biāo)系203 5.12點(diǎn)204 5.13直線204 5.14線段205 5.15多邊形205 5.16圓206 5.2矢量及其運(yùn)算213 5.21矢量的加減法213 5.22矢量的數(shù)量積213 5.23矢量的矢量積214 5.3計(jì)算幾何的基本算法220 5.4平面凸包236 5.5旋轉(zhuǎn)卡殼*243 5.51計(jì)算距離244 5.52外接矩形248 5.53三角剖分250 5.54凸多邊形屬性254 5.6半平面交*264 5.7離散化272 5.8本章習(xí)題278 第6章矩陣297 6.1矩陣及其運(yùn)算297 6.11矩陣的基本運(yùn)算298 6.12矩陣的乘法運(yùn)算299 6.13矩陣的行列式299 6.14矩陣的特殊類別300 6.2數(shù)字方陣309 6.3線性方程組及其解法314 631高斯消元法314 632LU分解法318 6.4MatrixTree定理*327 6.5本章習(xí)題336 第7章函數(shù)347 7.1函數(shù)的基本知識(shí)347 7.11函數(shù)的特性348 7.12常見(jiàn)的函數(shù)類型350 7.2函數(shù)的單調(diào)性354 7.3函數(shù)的凹凸性361 7.4SG函數(shù)365 7.5快速傅立葉變換*368 7.6快速數(shù)論變換*373 7.7本章習(xí)題379 |
|
| ||||||
|
| ||||||
|
| ||||||
|
| ||||||