計算與人工智能概論——問題求解、科學計算與AI應用方法

蔡宇輝、羅娟、蔡潔、谷長龍、屈衛蘭、馬征

  • 計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-1
  • 計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-2
  • 計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-3
  • 計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-4
  • 計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-5
  • 計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-6
  • 計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-7
計算與人工智能概論——問題求解、科學計算與AI應用方法-preview-1

相關主題

商品描述

"本書從計算思維的視角出發,以解決科學計算與工程應用中的實際問題為驅動,在實踐過程中系統融入程序設計、算法與人工智能的核心知識。全書分為程序設計基礎、核心算法與科學計算、人工智能應用三大部分,內容涵蓋計算與人工智能概述、簡單問題求解、分支結構、循環結構、函數、數組、指針、結構體和類、算法、科學計算、機器學習、計算機視覺與大語言模型等。 本書突出實踐導向,采用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.2DevC++編程環境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.2ifelse分支結構59

3.1.3炮彈飛行時間的分析61

3.1.4計算合理範圍炮彈坐標的程序實現62

3.2多分支結構63

3.2.1任務2: 成績等級評判63

3.2.2ifelse ifelse多分支結構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循環與dowhile循環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