計算與人工智能概論——問題求解、科學計算與AI應用方法
蔡宇輝、羅娟、蔡潔、谷長龍、屈衛蘭、馬征
- 出版商: 清華大學
- 出版日期: 2026-04-01
- 定價: $419
- 售價: $418
- 語言: 簡體中文
- ISBN: 7302712883
- ISBN-13: 9787302712886
-
相關分類:
Machine Learning、C++ 程式語言
下單後立即進貨 (約4週~6週)
相關主題
商品描述
"本書從計算思維的視角出發,以解決科學計算與工程應用中的實際問題為驅動,在實踐過程中系統融入程序設計、算法與人工智能的核心知識。全書分為程序設計基礎、核心算法與科學計算、人工智能應用三大部分,內容涵蓋計算與人工智能概述、簡單問題求解、分支結構、循環結構、函數、數組、指針、結構體和類、算法、科學計算、機器學習、計算機視覺與大語言模型等。 本書突出實踐導向,采用C/C++語言講解算法原理與AI系統實現,結合OpenCV等庫調用預訓練模型,註重計算過程的理解與工程應用能力的培養。本書適用於高等學校大一新生的計算機基礎、計算思維與人工智能導論課程,也可作為相關領域的自學參考書。 "
目錄大綱
目錄
第1章計算與人工智能概述1
1.1計算的概念1
1.1.1什麼是計算1
1.1.2圖靈機2
1.1.3什麼是計算機4
1.1.4算法、計算機語言與程序7
1.2什麼是計算思維11
1.2.1計算思維的概念12
1.2.2問題求解方法12
1.2.3算法——計算系統的靈魂16
1.3探索人工智能16
1.3.1人工智能概述16
1.3.2智能移動機器人路徑規劃18
1.3.3人工智能歷史21
1.3.4人工智能應用領域24
小結27
習題27第2章簡單問題求解29
2.1信息編碼與計算29
2.1.1任務1: 計算炮彈坐標點29
2.1.2DevC++編程環境29
2.1.3數據類型與計算思維32
2.1.4炮彈坐標問題分析39
2.1.5計算炮彈坐標的程序實現40
2.2C語言的運算符41
2.2.1任務2: 閏年判斷41
2.2.2運算符41
2.2.3閏年問題分析46
2.2.4閏年判斷的程序實現46
2.3字符編碼及其處理47
2.3.1任務3: 編制密碼47
2.3.2字符輸入與輸出47
2.3.3字符移位方法分析49
2.3.4字符加密的程序實現51
2.4數學庫及其應用52
2.4.1任務4: 計算復雜表達式52
2.4.2數學函數庫52
2.4.3計算復雜表達式的程序實現56
小結56
習題57第3章分支結構59
3.1基本分支結構59
3.1.1任務1: 合理範圍內計算炮彈坐標59
3.1.2ifelse分支結構59
3.1.3炮彈飛行時間的分析61
3.1.4計算合理範圍炮彈坐標的程序實現62
3.2多分支結構63
3.2.1任務2: 成績等級評判63
3.2.2ifelse ifelse多分支結構63
3.2.3成績分級方法分析65
3.2.4成績等級的程序實現66
3.3分支結構的嵌套66
3.3.1任務3: 景點門票計費66
3.3.2嵌套分支結構66
3.3.3門票計算方法分析69
3.3.4景點門票計費的程序實現70
3.4switch分支結構71
3.4.1任務4: 鋼筋等級與用途71
3.4.2switch分支結構72
3.4.3鋼筋等級問題分析73
3.4.4鋼筋等級處理的程序實現74
3.5switch結構應用75
3.5.1任務5: 成績等級評判(switch)75
3.5.2case穿透75
3.5.3成績等級問題分析75
3.5.4成績等級的程序實現(switch)76
小結76
習題77第4章循環結構80
4.1次數已知的循環80
4.1.1任務1: 迫擊炮彈運動軌跡80
4.1.2for循環81
4.1.3炮彈軌跡問題分析82
4.1.4計算炮彈軌跡的程序實現83
4.2次數未知的循環84
4.2.1任務2: 萊布尼茨級數求圓周率84
4.2.2while循環與dowhile循環84
4.2.3圓周率問題分析86
4.2.4圓周率計算的程序實現87
4.3循環的控制87
4.3.1任務3: 素數判斷87
4.3.2循環的控制88
4.3.3素數判斷問題思路89
4.3.4素數判斷的程序實現89
4.4循環的嵌套90
4.4.1任務4: 輸出100以內的全部素數90
4.4.2循環的嵌套90
4.4.3100以內素數的查找方法91
4.4.4輸出100以內素數的程序實現92
4.5循環綜合應用93
4.5.1任務5: 打印等腰三角形93
4.5.2更簡單的圖形93
4.5.3等腰三角形問題分析94
4.5.4等腰三角形圖形的程序實現95
小結96
習題97第5章函數99
5.1函數初探99
5.1.1任務1: 編寫函數求炮彈坐標99
5.1.2函數的基本語法100
5.1.3用函數求炮彈坐標的方法104
5.1.4用函數求炮彈坐標的代碼實現104
5.2變量的生命周期105
5.2.1任務2: 編寫函數求套娃表面積105
5.2.2變量的作用域與存儲類型105
5.2.3套娃表面積問題的求解方法108
5.2.4套娃表面積問題的代碼實現109
5.3遞歸函數110
5.3.1任務3: 編寫函數求特戰比武方案110
5.3.2遞歸函數的原理110
5.3.3用遞歸函數求解特戰比武問題112
5.3.4特戰比武問題的代碼實現112
5.4多參數遞歸函數113
5.4.1任務4: 兔子繁殖問題113
5.4.2遞歸調用的深入分析113
5.4.3兔子繁殖問題的求解方法114
5.4.4兔子繁殖問題的代碼實現116
小結116
習題117第6章數組119
6.1一維數組的定義與使用119
6.1.1任務1: 存儲炮彈的軌跡信息119
6.1.2數組的定義與使用120
6.1.3坐標存儲問題的求解方法122
6.1.4坐標存儲問題的代碼實現122
6.2一維數組的遍歷123
6.2.1任務2: 挑選隊員123
6.2.2數組的遍歷123
6.2.3挑選隊員問題的求解方法124
6.2.4挑選隊員問題的代碼實現125
6.3數組的應用126
6.3.1任務3: 篩法求素數126
6.3.2數組的越界126
6.3.3篩法求素數的方法127
6.3.4篩法求素數的代碼實現127
6.4數組的排序128
6.4.1任務4: 儀仗隊身高排序128
6.4.2數組排序方法128
6.4.3儀仗隊身高排序的方法131
6.4.4儀仗隊身高排序的代碼實現133
6.5二維數組134
6.5.1任務5: 楊輝三角的計算與輸出134
6.5.2二維數組的定義與使用135
6.5.3生成楊輝三角的方法136
6.5.4楊輝三角的代碼實現137
6.6字符數組138
6.6.1任務6: 論文數量排序138
6.6.2字符數組與字符串139
6.6.3論文數量排序的方法141
6.6.4論文數量排序的代碼實現142
小結143
習題144第7章指針145
7.1指針基礎145
7.1.1任務1: 函數的輸出參數145
7.1.2指針的定義與使用145
7.1.3使用函數參數輸出坐標值148
7.1.4一個函數輸出炮彈坐標的代碼實現148
7.2指針應用149
7.2.1任務2: 變量值的交換149
7.2.2指針變量的四要素149
7.2.3在函數中交換輸入變量的值150
7.2.4變量值交換的代碼實現151
7.3指針與數組152
7.3.1任務3: 一維數組元素互換152
7.3.2指針與一維數組152
7.3.3數組元素交換的實現思路154
7.3.4數組元素交換的代碼實現155
7.4指針與字符串156
7.4.1任務4: 字符串的插入156
7.4.2字符串: 特殊的字符數組156
7.4.3字符串插入問題的實現思路159
7.4.4字符串插入問題的代碼實現161
7.5指針與二維數組163
7.5.1任務5: 馬鞍數163
7.5.2指針與二維數組163
7.5.3馬鞍數的求解思路165
7.5.4馬鞍數求解的實現代碼166
7.6指針綜合應用167
7.6.1任務6: 刪除字符串中多余的空格167
7.6.2動態存儲分配167
7.6.3刪除字符串多余空格的求解思路168
7.6.4刪除字符串多余空格的代碼實現170
小結171
習題171第8章結構體和類173
8.1結構體基礎173
8.1.1任務1: 用自定義類型描述炮彈坐標173
8.1.2結構體的定義與使用173
8.1.3用自定義類型返回炮彈坐標175
8.1.4自定義類型返回炮彈坐標的代碼實現176
8.2結構體進階177
8.2.1任務2: 將基本參數封裝進結構體177
8.2.2結構體的嵌套與結構體指針177
8.2.3用結構體封裝基本參數179
8.2.4用結構體封裝基本參數的代碼實現180
8.3結構體數組181
8.3.1任務3: 將炮彈軌跡存入結構體數組181
8.3.2結構體數組的定義與使用181
8.3.3用結構體數組存儲炮彈坐標183
8.3.4用結構體數組存儲炮彈坐標的代碼實現184
8.4枚舉與聯合185
8.4.1任務4: 根據不同的要求計算軌跡185
8.4.2枚舉與聯合的定義與使用186
8.4.3用枚舉與聯合實現兩種發射模式的思路188
8.4.4用枚舉與聯合實現兩種發射模式的代碼實現190
8.5C++類簡介192
8.5.1任務5: 將軌跡計算功能設計為成員函數192
8.5.2C++類193
8.5.3用C++類計算炮彈軌跡的思路195
8.5.4用C++類計算炮彈軌跡的代碼實現196
8.5.5C++模板類199
小結203
習題204第9章算法205
9.1窮舉算法205
9.1.1任務1: 數字三角形問題的窮舉算法205
9.1.2算法的基本概念206
9.1.3數字三角形問題的窮舉法求解思路210
9.1.4數字三角形問題的窮舉法代碼實現212
9.2分治算法214
9.2.1任務2: 用基於遞歸的分治算法求解數字三角形問題214
9.2.2分治算法的原理214
9.2.3數字三角形問題的分治算法求解思路216
9.2.4數字三角形問題的分治算法代碼實現220
9.3基於遞歸的動態規劃221
9.3.1任務3: 用基於遞歸的動態規劃求解數字三角形問題221
9.3.2動態規劃基本原理221
9.3.3數字三角形問題的動態規劃求解思路223
9.3.4數字三角形問題的動態規劃代碼實現224
9.4基於遞推的動態規劃225
9.4.1任務4: 用基於遞推的動態規劃求解數字三角形問題225
9.4.2動態規劃進階226
9.4.3數字三角形問題的遞推求解思路227
9.4.4數字三角形問題的遞推代碼實現228
小結229
習題230第10章科學計算233
10.1二分算法233
10.1.1任務1: 二分算法求方程的根233
10.1.2線性搜索與二分搜索233
10.1.3搜索算法求方程根的設計思路237
10.1.4搜索算法求方程根的代碼實現239
10.2牛頓疊代法240
10.2.1任務2: 牛頓疊代法求方程的根240
10.2.2牛頓疊代法基本原理240
10.2.3牛頓疊代法求方程根的設計思路242
10.2.4牛頓疊代法求方程根的代碼實現242
10.3蒙特卡洛投點法244
10.3.1任務3: 蒙特卡洛投點法求定積分244
10.3.2蒙特卡洛投點法基本原理244
10.3.3蒙特卡洛投點法求定積分的設計思路246
10.3.4蒙特卡洛投點法求定積分的代碼實現248
10.4梯度下降算法250
10.4.1任務4: 梯度下降算法求極小值250
10.4.2梯度下降算法基本原理250
10.4.3梯度下降算法求極小值的設計思路253
10.4.4梯度下降算法求極小值的代碼實現254
小結255
習題256第11章機器學習258
11.1線性回歸模型258
11.1.1任務1: 用線性回歸模型預測學生成績258
11.1.2線性回歸模型基本原理258
11.1.3設計線性回歸模型262
11.1.4線性回歸模型進行學生成績預測的代碼實現263
11.2邏輯回歸模型265
11.2.1任務2: 用邏輯回歸模型預測企鵝類型265
11.2.2邏輯回歸模型基本原理266
11.2.3設計邏輯回歸模型268
11.2.4邏輯回歸模型進行企鵝分類的代碼實現269
11.3支持向量機(SVM)271
11.3.1任務3: 用OpenCV的SVM模型完成企鵝分類271
11.3.2SVM基本原理272
11.3.3使用OpenCV搭建SVM模型275
11.3.4OpenCV SVM模型完成企鵝分類的代碼實現279
11.4神經網絡模型282
11.4.1任務4: 用OpenCV的神經網絡模型對企鵝分類282
11.4.2神經網絡基本原理283
11.4.3使用OpenCV訓練神經網絡289
11.4.4OpenCV 神經網絡模型完成企鵝分類的代碼實現290
小結292
習題292第12章計算機視覺與大語言模型294
12.1圖像分類294
12.1.1任務1: 圖像分類294
12.1.2圖像分類的基本原理294
12.1.3使用OpenCV進行圖像分類299
12.1.4使用OpenCV進行圖像分類的代碼實現301
12.2目標檢測303
12.2.1任務2: 識別圖像中物品的類型和位置303
12.2.2目標檢測簡介304
12.2.3使用OpenCV進行目標檢測307
12.2.4使用OpenCV進行目標檢測的代碼實現311
12.2.5對攝像頭捕捉的動態圖像進行目標識別313
12.3大語言模型317
12.3.1任務3:基於大語言模型的場景描述317
12.3.2大語言模型簡介317
12.3.3大語言模型的程序調用接口319
12.3.4用大語言模型進行場景描述的代碼實現323
小結325
習題326參考文獻328







