培養與鍛鍊程式設計的邏輯腦:程式設計大賽的128個進階技巧(使用Python)
類似書籍推薦給您
書名:培養與鍛鍊程式設計的邏輯腦:程式設計大賽的128個進階技巧(使用Python)
作者:Christoph Dürr, Jill-Jênn Vie
出版社:博碩
出版日期:4/29/2019
條碼:9789864343836
內容簡介
APCS,CPE最佳參考用書
演算法不僅要用得好,更要用得準
本書介紹多種解決經典問題的演算法技術,描述了問題出現的場景,並用Python提出簡單的解決方案。要正確實作演算法往往不是一件簡單的事情,總需要避開陷阱,也需要應用一些技巧來確保演算法能夠在規定時間內實現。本書在說明演算法實作時也附帶了重要的細節,以幫助讀者能夠詳加理解。
最近幾十年,不同等級的程式設計競賽在世界各地展開,推廣了演算法文化。競賽中所考究的問題一般都是經典問題的變形,使解答隱藏在難以破解的謎面背後,而讓參賽者一籌莫展,因此本書是這方面的絕佳參考書目。書中所使用的是目前最多人使用的程式語言Python,在應用與理解上更加便利!
本書特色:
✤詳細解說如何增進演算法效率並加以實作
✤內容由淺入深,幫助讀者快速掌握技巧
✤以主題導向收錄128種演算法,應試更有效率
✤使用可讀性及易用性皆優秀的程式語言Python
✤參加程式設計比賽或考試的最佳參考書目
本書相關資源:tryalgo.org/code/
作者介紹
作者簡介
Christoph Dürr
法國國家科學研究院研究員,巴黎皮埃爾-瑪麗.居里大學研究院研究員,巴黎皮埃爾-瑪麗.居里大學博士生導師,Operation Research科研組研究主任。
Jill-Jênn Vie
法國高等電力學院博士、演算法講師、擔任法國高等師範學院Paris-Saclay團隊在ACM競賽中的演算法導師。曾任法國國際程式設計大賽Prologin主席,並於2014年獲得Google RISE Award。
譯者簡介
史世強
網名jetwaves。畢業於華中科技大學,法國特魯瓦技術大學碩士,全端工程師。曾在法國Aerow SAS擔任技術負責人,花果山水果品牌聯合創始人。從國中起開始參加資訊學奧林匹克競賽,熱衷於軟體架構、軟體工程和傳統行業資訊化建設。目前著重於人工智慧領域。白雲黃鶴幽默版版主,平時活躍於知乎,同時也是野戰遊戲和健身運動愛好者。
目錄
Chapter1 引言
1-1 程式設計競賽
1-2 我們的選擇:Python
1-3 輸入輸出
1-4 複雜度
1-5 抽象類別和基本資料結構
1-6 技術
1-7 建議
1-8 走得更遠
Chapter2 字串
2-1 易位構詞
2-2 T9: 9 個按鍵上的文字
2-3 使用字典樹進行拼寫糾正
2-4 KMP(Knuth-Morris-Pratt)模式匹配演算法
2-5 最大邊的KMP 演算法
2-6 字串的冪次
2-7 模式匹配演算法:Rabin-Karp 演算法
2-8 字串的最長迴文子串:Manacher 演算法
Chapter3 序列
3-1 網格中的最短路徑
3-2 編輯距離(列文斯登距離)
3-3 最長公共子序列
3-4 升序最長子序列
3-5 兩位玩家遊戲中的必勝策略
Chapter4 陣列
4-1 合併已排序串列
4-2 區間的總和
4-3 區間內的重複內容
4-4 區間的最大總和
4-5 查詢區間中的最小值:線段樹
4-6 計算區間的總和:樹狀陣列(Fenwick 樹)
4-7 有k 個獨立元素的窗口
Chapter5 區間
5-1 區間樹(線段樹)
5-2 區間的聯集
5-3 區間的覆蓋
Chapter6 圖
6-1 使用 Python 對圖編碼
6-2 使用 C++ 或 Java 對圖編碼
6-3 隱式圖
6-4 深度優先巡訪:深度優先演算法
6-5 廣度優先巡訪:廣度優先演算法
6-6 連通分量
6-7 雙連通分量
6-8 拓撲排序
6-9 強連通分量
6-10 可滿足性
Chapter7 圖中的環
7-1 歐拉路徑
7-2 中國郵差問題
7-3 最小長度上的比率權重環:Karp 演算法
7-4 單位時間成本最小比率環
7-5 旅行推銷員問題
Chapter8 最短路徑
8-1 組合的屬性
8-2 權重為 0 或 1 的圖
8-3 權重為正值或空值的圖:Dijkstra 演算法
8-4 隨機權重的圖:Bellman-Ford 演算法
8-5 所有源點─目標頂點對:Floyd-Warshall 演算法
8-6 網格
8-7 變形問題
Chapter9 耦合性與流
9-1 二分圖最大匹配
9-2 最大權重的完美匹配:Kuhn-Munkres 演算法
9-3 無交叉平面匹配
9-4 穩定的婚姻:Gale-Shapley 演算法
9-5 Ford-Fulkerson 最大流演算法
9-6 Edmonds-Karp 演算法的最大流
9-7 Dinic 最大流算法
9-8 s-t 最小割
9-9 平面圖的 s-t 最小割
9-10 運輸問題
9-11 在流和匹配之間化簡
9-12 偏序的寬度:Dilworth 演算法
Chapter10 樹
10-1 霍夫曼編碼
10-2 最近的共同祖先
10-3 樹中的最長路徑
10-4 最小權重生成樹:Kruskal 演算法
Chapter11 集合
11-1 背包問題
11-2 找零問題
11-3 給定總和值的子集
11-4 k 個整數之和
Chapter12 點和多邊形
12-1 凸包問題
12-2 多邊形的測量
12-3 最近點對
12-4 簡單直線多邊形
Chapter13 長方形
13-1 組成長方形
13-2 網格中的最大正方形
13-3 長條圖中的最大長方形
13-4 網格中的最大長方形
13-5 合併長方形
13-6 不相交長方形的合併
Chapter14 計算
14-1 最大公因數
14-2 貝祖等式
14-3 二項式係數
14-4 快速求冪
14-5 質數
14-6 計算算術運算式
14-7 線性方程組
14-8 矩陣序列相乘
Chapter15 窮舉
15-1 鐳射路徑
15-2 精確覆蓋
15-3 數獨
15-4 排列枚舉
15-5 正確計算
除錯工具
參考文獻
立即查看
Python程式設計與OpenAI API應用:零基礎建構非同步GUI的AI聊天機器人 (1版)
類似書籍推薦給您
內容簡介
從入門到活用Python程式設計,讓你成為Python專家
實作與應用OpenAI API,建構專屬的AI聊天機器人
✦利用完整的程式範例,深入淺出說明Python程式設計
✦進階學習Python多執行緒、多程序、非同步I/O及tkinter
✦完整理解Python非同步程式設計的核心觀念
Python是一種容易學習且功能強大的程式語言,跟著本書學習Python, 你不只可學會Python的基礎語法,還可學到進階的內容,例如:物件導向、多執行緒、多程序、非同步I/O及tkinter程式設計等。
ChatGPT是OpenAI開發的人工智慧聊天機器人,其會生成文字,回答各式問題,自推出以來即受到大家的喜愛。在本書中,你將可活用Python,以Python實作OpenAI API,設計開發出ChatGPT應用程式。
本書內容的安排由淺入深,對Python程式設計進行系統性的介紹,並詳細說明OpenAI API的應用。本書以程式範例來說明Python程式設計的概念,可有效幫助讀者的學習,並經由實作的過程,建構專屬非同步GUI版的語音聊天機器人。
【目標讀者】
☛對Python程式設計有興趣的初學者,可讓讀者兼顧理論與實作。
☛適用於大專院校「Python程式設計」課程的學生,可作為教師授課之用。
☛程式設計工程師、專案設計者、AI工程師,也很適合閱讀本書。
目錄
|CHAPTER 01| Python基礎(一)
1.1 本章提要
1.2 安裝Python
1.3 Python基本語法
1.4 Python字串處理
1.5 條件敘述
1.6 迴圈敘述
1.7 自定義函式
1.8 串列(List)
1.9 串列表達式
1.10 元組(Tuple)
1.11 字典(Dictionary)
|CHAPTER 02| Python基礎(二)
2.1 模組(Module)
2.2 random模組
2.3 套件(Package)
2.4 例外處理
2.5 讀取文字檔案
2.6 寫入文字檔案
2.7 文字檔案處理
2.8 JSON
2.9 PyPI簡介
2.10 建立虛擬環境
|CHAPTER 03| Python物件導向
3.1 類別與物件
3.2 類別屬性及類別方法
3.3 靜態方法
3.4 繼承
3.5 封裝
3.6 抽象類別
3.7 多型
3.8 迭代器
3.9 生成器
|CHAPTER 04| 多執行緒
4.1 本章提要
4.2 建立及執行執行緒
4.3 守護執行緒
4.4 建立執行緒類別
4.5 執行緒池
4.6 使用Lock同步執行緒
4.7 使用queue交換資料
|CHAPTER 05| 多程序
5.1 本章提要
5.2 執行耗時計算任務
5.3 使用Process物件執行耗時計算
5.4 使用Queue交換資料
5.5 使用Process物件建立圖像縮圖
5.6 使用Pool物件建立圖像縮圖
5.7 程序池
5.8 程序間共享記憶體
|CHAPTER 06| 非同步I/O
6.1 本章提要
6.2 平行與並行
6.3 定義協程函式
6.4 await關鍵字
6.5 建立任務
6.6 使用gather()
6.7 取消任務
6.8 使用超時取消任務
6.9 防止任務被取消
6.10 非同步產生器
6.11 aiohttp套件
|CHAPTER 07| tkinter
7.1 tkinker簡介
7.2 建立視窗
7.3 標籤控制元件
7.4 按鈕控制元件
7.5 文字方塊控制元件
7.6 Spinbox控制元件
7.7 文字區域控制元件
7.8 捲軸控制元件
7.9 列表控制元件
7.10 變數類別
7.11 單選按鈕
7.12 核取方塊
7.13 使用pack()設計問卷調查
7.14 使用grid()設計問卷調查
|CHAPTER 08| OpenAI簡介
8.1 自然語言處理
8.2 OpenAI GPT
8.3 取得OpenAI的API密鑰
8.4 提示、完成及標記
8.5 使用Playground
|CHAPTER 09| OpenAI Chat API
9.1 本章提要
9.2 openai套件
9.3 decouple套件
9.4 使用Chat API
9.5 簡易聊天程式
9.6 具對話紀錄的聊天程式
9.7 具串流輸出的聊天程式
9.8 可儲存對話紀錄的串流聊天程式
9.9 以JSON儲存對話紀錄
|CHAPTER 10| 非同步GUI版聊天程式
10.1 本章提要
10.2 tkinter執行非同步I/O
10.3 協程中執行執行緒
10.4 設計非同步GUI版聊天程式
|CHAPTER 11| OpenAI Image API
11.1 本章提要
11.2 文字產生圖像
11.3 顯示圖像
11.4 圖像變形
11.5 GUI版顯示圖像
11.6 非同步GUI版文字生成圖像程式
|CHAPTER 12| OpenAI語音轉文字API
12.1 本章提要
12.2 線上錄音
12.3 使用轉錄API
12.4 Audio API結合Chat API
12.5 文字轉語音
12.6 gTTS結合ChatGPT API
12.7 Pyaudio套件
12.8 非同步GUI版語音聊天程式
立即查看
Python 程式設計與實例應用 (1版)
類似書籍推薦給您
【簡介】
《Python程式設計與實例應用》是一本Python程式教學指南,適合所有工程領域的學生、自學者和專業人士,使用Python程式語言進行複雜計算和撰寫應用程式。本書以程式範例舉例說明,並解釋所有Python程式設計基本的理論概念,因此透過閱讀本書可以提高問題解決及程式設計等能力。
本書第二版除保留原有的清晰寫作風格與舉例說明的特點之外,同時增加了新的章節、章末專案、附錄專案以及教學元素。此外,所有程式都經過全面更新,以確保與Python最新版本的相容性。
【目錄】
Chapter 1 電腦與 Python 程式簡介
Chapter 2 Python 程式基礎
Chapter 3 運算子表達式
Chapter 4 判斷敘述式
Chapter 5 迴圈控制敘述式
Chapter 6 函式
Chapter 7 字串
Chapter 8 串列
Chapter 9 串列處理:搜尋與排序
Chapter 10 物件導向程式設計:類別、物件與繼承
Chapter 11 元組、集合與字典
Chapter 12 圖形程式開發:使用海龜繪圖
Chapter 13 檔案處理
Chapter 14 例外處理
Chapter 15 使用 Tkinter 進行 Python GUI 圖形介面程式開發
Chapter 16 MySQL 資料庫簡介
Appendix 1 在 Python 中匯入模組
Appendix 2 創建通訊錄專案
Appendix 3 圖書庫存管理專案
Appendix 4 Python 關鍵字
Appendix 5 ASCII 表
索引
立即查看
運算思維與程式設計-Python程式實作(附範例光碟)1/e (1版)
類似書籍推薦給您
運算思維與程式設計:Python程式實作
ISBN13:9789865037437
出版社:全華圖書
作者:張元翔
裝訂/頁數:平裝/368頁
附件:光碟
規格:26cm*19cm*1.4cm (高/寬/厚)
版次:1
出版日:2021/05/01
中國圖書分類:電腦程式語言
內容簡介
本書除了介紹「運算思維與程式設計」的理論基礎之外,同時搭配Python程式實作,強調理論與實務的緊密結合,實現「做中學」的學習理念。
本書的內容安排分成四大部分:
-第1~4章介紹運算思維與程式設計的基本概念。
-第5~11章介紹Python程式設計,從基本資料型態、判斷敘述if,到分解問題的概念、遞迴等。
-第12~19章主要為資料結構與演算法,包含資料結構、物件導向,以及暴力法、分而治之法等的演算法。
-第20章是程式設計專題,以此單元來檢驗學習成效。
本書特色
1.本書除了介紹「運算思維與程式設計」的理論基礎之外,還同時搭配Python程式實作。
2.從數學定理的研究與數學問題的解決入手,訓練運算思維與Python實作的能力。
3.理論與實務的緊密結合,實現「做中學」的學習理念,協助初學者快速入門。
目錄
第1章 介紹
1.1 引言
1.2 程式語言的概念
1.3 程式語言的發展
1.4 運算思維與程式設計的應用
第2章 數學基礎
2.1 基本概念
2.2 數的概念
2.3 數列與級數
2.4 排列與組合
第3章 運算思維
3.1 基本概念
3.2 運算思維
3.3 分解問題
3.4 模式識別
3.5 抽象化
3.6 演算法設計
3.7 流程圖
第4章 程式設計
4.1 基本概念
4.2 Python程式語言
4.3 Python開發環境
4.4 Python程式設計初體驗
第5章 資料型態、變數與運算子
5.1 基本概念
5.2 資料型態
5.3 變數與指定敘述
5.4 識別字
5.5 運算子
5.6 程式設計風格
5.7 程式設計錯誤
第6章 數學運算與字串處理
6.1 基本概念
6.2 數學運算
6.3 科學運算
6.4 字串處理
第7章 基本輸入與輸出
7.1 基本概念
7.2 標準輸入
7.3 標準輸出
7.4 讀取檔案
7.5 寫入檔案
第8章 選擇-決策性的運算思維
8.1 基本概念
8.2 if敘述
8.3 if-else敘述
8.4 if-else-else敘述
8.5 判斷生肖
8.6 判斷閏年
8.7 計算BMI
第9章 迴圈-重複性的運算思維
9.1 基本概念
9.2 while迴圈
9.3 for迴圈
9.4 巢狀for迴圈
9.5 猜數字遊戲
9.6 阿基里斯與烏龜
9.7 指數與階乘
9.8 金字塔
9.9 最大公因數
9.10 九九乘法表
第10章 函式-模組化的運算思維
10.1 基本概念
10.2 函式
10.3 呼叫函式
10.4 參數的傳遞
10.5 參數的預設值
10.6 主程式與函式
10.7 質數
第11章 遞迴-呼叫本身的運算思維
11.1 基本概念
11.2 等差級數
11.3 費氏數列
11.4 卡塔蘭數列
11.5 二項式係數
11.6 最大公因數
第12章 資料結構
12.1 基本概念
12.2 串列
12.3 元組
12.4 集合
12.5 字典
12.6 堆疊
12.7 佇列
12.8 陣列
第13章 物件導向程式設計
13.1 基本概念
13.2 類別的定義
13.3 堆疊
13.4 佇列
13.5 不相交集合
第14章 演算法基礎
14.1 基本概念
14.2 演算法的準則
14.3 演算法的正確性
14.4 演算法的設計策略
14.5 時間複雜度分析
14.6 搜尋演算法
14.7 排序演算法
第15章 暴力法
15.1 基本概念
15.2 組合
15.3 排列
15.4 鬼谷算題
第16章 分而治之法
16.1 基本概念
16.2 河內塔問題
16.3 合併排序法
16.4 快速排序法
第17章 貪婪演算法
17.1 基本概念
17.2 找零錢問題
17.3 背包問題
第18章 動態規劃法
18.1 基本概念
18.2 費氏數列
18.3 找零錢問題
18.4 背包問題
18.5 最長共同子序列
第19章 圖形演算法
19.1 基本概念
19.2 圖形的定義
19.3 圖形的種類
19.4 圖形表示法
19.5 廣度優先搜尋
19.6 深度優先搜尋
19.7 最小生成樹
19.8 最短路徑問題
19.9 歐拉旅途
19.10 哈密頓迴圈
第20章 程式設計專題
20.1 基本概念
20.2 程式設計專題範例
20.3 程式設計專題實作
立即查看
運算思維與Python程式設計-含GLAD ICTP計算機程式能力國際認證核心能力Essentials Level(範例download)
類似書籍推薦給您
1.介紹Python基礎技術與通過ICTP計算機程式能力國際認證的實用教材。
2.本書介紹的內容包含ICTP計算機程式能力國際認證-核心能力(Information and Communication Technology Programs-using Programming(Python) -Essentials Level)考試重點的出題方向:文字化軟體功能與操作、結構化與模組化程式設計、演算法的程式設計。
3.本書主題循序漸進講解清楚,程式結構清晰,範例說明引導使用者逐步設計程式,解決可能碰到的生活難題。
4.章前有「本章學習地圖」作為引導,章末「重點掃描」是強化觀念與複習。而在各章習題中加入許多和ICTP考題類型相關的測驗題目,附錄也根據ICTP計算機程式能力三大出題方向設計模擬試題。
目錄
第1 章 認識Python 與操作環境
1-1 軟體開發的基礎 ................................. 2
1-2 認識運算思維 .................................... 5
1-3 Python 簡介與特色 ........................... 9
1-4 Python 的重要應用 .........................10
1-5 Python 下載與安裝 .........................15
1-6 第一支Python 程式就上手 .............18
1-7 程式文件結構注意事項 ....................20
第2 章 變數與資料型態
2-1 變數命名與指派 ...............................28
2-2 基本資料型態 ..................................31
2-3 格式化輸出功能 ...............................35
2-4 input 輸入函式................................40
2-5 資料型態轉換 ..................................41
第3 章 運算式與運算子
3-1 算術運算子 ......................................48
3-2 指派運算子 ......................................49
3-3 比較運算子 ......................................52
3-4 邏輯運算子 ......................................52
3-5 位元運算子 ......................................55
3-6 位移運算子 ......................................57
3-7 運算子優先順序 ...............................58
第4 章 流程控制與迴圈
4-1 認識流程控制 ..................................68
4-2 決策流程控制 ..................................70
4-3 重複結構——迴圈 ...........................76
4-4 其它流程控制指令 ...........................82
第5 章 字元與字串
5-1 編碼的認識與宣告 ...........................94
5-2 建立字串..........................................96
5-3 認識跳脫字元 ..................................97
5-4 字串索引與切片 ...............................98
5-5 字串常用運算子 .............................102
5-6 字串常用函數與方法 .....................103
第6 章 容器資料型別
6-1 容器資料型別的比較 .....................116
6-2 list 串列 .........................................117
6-3 tuple 序對 .....................................122
6-4 dict 字典 .......................................125
6-5 set 集合 .........................................129
第7 章 函數
7-1 認識函數........................................140
7-2 變數的有效範圍 .............................147
7-3 遞迴函數........................................149
7-4 實用的內建函數 .............................151
第8 章 模組與工具的操作
8-1 認識模組........................................166
8-2 實用內建模組與線上輔助 ..............170
8-3 第三方套件 ....................................177
第9 章 疑難排解與錯誤處理
9-1 程式錯誤類型 ................................184
9-2 認識例外........................................187
9-3 例外處理簡介 ................................189
第10 章 檔案輸入與輸出
10-1 認識檔案 .....................................200
10-2 檔案的寫入 ..................................202
10-3 讀取檔案 .....................................204
附錄
ICTP 計算機綜合能力試題 .................................214
參考答案 .................................................239
立即查看