p5.js演算創作
系列名:網頁開發設計
ISBN13:9786263244351
出版社:碁峰資訊
作者:林信良
裝訂/頁數:平裝/384頁
規格:23cm*17cm*2.2cm (高/寬/厚)
出版日:2023/03/08
內容簡介
林信良(良葛格)玩轉 p5.js數位運算美學!
* 以創作者角度為本,不迷失在繁瑣功能中
* 深入淺出演算法,提升讀者知識見聞,進而產生豐富靈感來源
* 示範如何從發想,到最終產生令人驚豔的作品
從三角函數、矩陣/向量、直角座標/極座標這些基礎數學出發,再透過蚊香、拼接磚塊、刺繡、地毯這類貼近日常生活範例,帶您進入螺線、曲線、碎形、雜訊、迷宮、計算幾何、力學、視覺化等進階議題,再運用程式設計的方式創作出整個世界。
- 從創作者角度出發,不拘泥於詳解p5.js每一項功能,著重在「把腦中想法,化為實際成品」的創作過程。
- 介紹 p5.js 的繪圖系統,包括座標定義、旋轉與平移等轉換、色彩處理、基本幾何圖形繪製等功能。
- 介紹 p5.js 的事件處理機制,包括事件堆疊的運作、動畫控制、滑鼠控制等議題。
- 介紹 p5.js 的圖片處理方式,包括 2D/3D 呈現、視角變化、畫布/像素/濾鏡/遮罩等概念。
- 介紹 p5.js 的影音支援,包括影音資料輸出輸入的介接與控制。
- 解說創作過程時,適度加入數學觀念介紹。對數學觀念有越清楚的掌握,越能夠有效率地實現靈感。
- 建議在 p5.js 的 Web 編輯器進行創作與分享,並且欣賞來自世界各地同好的作品。
目錄
ch01 p5.js 起步走
1.1 初試p5.js
1.2 座標/事件/動
ch02 規律與隨機
2.1 構築規律
2.2 穿插隨機
ch03 創作裡的數學
3.1 三角函式
3.2 向量/矩陣
ch04 螺線與曲線
4.1 螺線
4.2 曲線
ch05 圖片處理
5.1 拼接/裁剪
5.2 像素控制
ch06 像素風格
6.1 方塊線段
6.2 方塊多邊形
ch07 碎形與L-system
7.1 碎形/海龜
7.2 L-system
ch08 雜訊美學
8.1 Perlin 雜訊
8.2 Worley 雜訊
ch09 構造迷宮
9.1 創造迷宮
9.2 不同形狀的迷宮
ch10 拼接之碼
10.1 拼接模式
10.2 尋找輪廓
ch11 空間劃分
11.1 Voronoi
11.2 Delaunay三角化
ch12 力的運用
12.1 力的模擬
12.2 複雜系統
ch13 音與影
13.1 使用p5.sound
13.2 影像處理
立即查看
會動的演算法:61 個演算法動畫+全圖解逐步拆解,人工智慧、資料分析必備 (1版)
類似書籍推薦給您
內容簡介
★★★用手機掃描書中 QR Code 立即觀看演算法動畫!★★★
⦿ 一圖一步驟,帶你打開演算法的黑箱!
⦿ 全彩超圖解,將抽象的演算法視覺化!
⦿ 內容淺顯易懂,沒有長篇難懂的理論!
「演算法」給人的第一印象就是好難學、理論好多,即使讀完千字文還是看不懂!o(〒﹏〒)o
沒錯!小編非常有同感,第一次接觸演算法時,就被「時間複雜度」弄得暈頭轉向,我一點也不想知道這些數學式是怎麼推導的啊,只要知道哪個演算法比較快、比較好用就可以了!還有,常遇到同一個詞有不同說法,在 Google 搜尋時就會搞不清楚是不是指同一件事,例如 Binary Tree Traversal,就有「二元樹追蹤、二元樹訪問、二元樹走訪、二元樹遍歷……」,這麼多種稱呼,實在讓人困惑!所以本書的專有名詞除了標示中文外,也會加上英文,以便讀者查詢更多資訊。
透過本書一圖一步驟地拆解演算法背後的原理,我終於弄懂演算法的運作了,其實演算法沒有想像中那樣神秘、可怕,而是有規則可循的。看懂其運作原理後,由衷佩服這些設計演算法的人,原來他們是這樣思考與拆解問題的啊,我怎麼都沒想到呢!
本書收錄許多知名的演算法與資料結構,其中有些演算法已經被主流的程式語言編寫成方便使用的「函式庫」。不過「函式庫」是一種將工作原理藏在內部的「黑箱」,因此大多數人在使用時不見得對演算法有充分的理解。想要寫出執行效能佳的程式,得確實理解演算法的工作原理才行。
本書介紹的資料結構與演算法
✪陣列的查詢:
互換元素/尋找最大值/互換排序/合計/最小元素值/最小元素位置/線性搜尋法/二元搜尋法
✪排序:
反轉/插入/合併/分割/氣泡排序法/選擇排序法/插入排序法/合併排序法/快速排序法/堆積排序法/計數排序法/希爾排序法
✪與整數相關的演算法:
埃拉托斯特尼篩法/輾轉相除法
✪資料結構:
堆疊/佇列/雙向鏈結串列/雜湊表
✪陣列的計算:
累積和/一維累積和的應用/二維累積和的應用
✪堆積:
Up Heap/Down Heap/建立堆積/優先佇列
✪二元樹的走訪:
前序走訪/後序走訪/中序走訪/層序走訪
✪其他:
廣度優先搜尋/卡恩演算法/深度優先搜尋/Tarjan 演算法/Union By Rank/Union-Find Tree/普林演算法/克魯斯克爾演算法/戴克斯特拉演算法/貝爾曼 - 福特演算法/弗洛伊德演算法/包裹法/葛立恆掃描法/安德魯演算法/線段樹:RMQ/線段樹:RSQ/二元搜尋樹/旋轉/樹堆……
目錄
Part 1 準備篇
第 1 章 程式設計的基本元素
第 2 章 程式設計的應用元素
第 3 章 演算法的基礎概念
Part 2 空間結構
第 4 章 空間結構的概要
第 5 章 陣列
第 6 章 樹狀結構
第 7 章 圖形
第 8 章 點群
第 9 章 動態結構
Part 3 演算法與資料結構
第 10 章 入門
第 11 章 陣列基本查詢
第 12 章 搜尋
第 13 章 陣列元素排序
第 14 章 必學的排序法
第 15 章 與整數相關的演算法
第 16 章 基本資料結構 1
第 17 章 陣列的計算
第 18 章 堆積
第 19 章 二元樹的走訪
第 20 章 高效率的排序法
第 21 章 基本資料結構 2
第 22 章 廣度優先搜尋
第 23 章 深度優先搜尋
第 24 章 Union-Find Tree
第 25 章 尋找最小生成樹的演算法
第 26 章 最短路徑演算法
第 27 章 計算幾何
第 28 章 線段樹
第 29 章 搜尋樹
立即查看
解析演算法結構
實際操作
加深學習
精選課堂練習
資料結構、排序、搜尋etc…
從基礎到應用準則完全圖解
‧詳細講解各種演算法的特色
・學會如何選擇適當的演算法
・跨頁閱讀適合初學者或複習自學
・涵蓋機器學習結構到活用範例
堅實的基礎知識「實用」的工具書
需要懂得因應場景選擇適當的演算法,才能夠建立有效率的程式。即便獲得的成果相同,但使用的演算法會讓處理效率大不相同。不過對演算法抱持著「看不出有什麼差異」「好複雜好像很難」排斥心態的學習者想必是大有人在。因此,本書中的每個主題皆是以跨頁,並搭配圖解的講解方式幫助讀者從零開始學習演算法的基礎知識。
推薦給符合以下條件的讀者
‧想學習演算法的基礎知識
‧想拓展知識領域更上一層樓
‧想成為懂得如何選擇演算法的人
‧想成為能快速又正確建立程式的人
立即查看
世界第一簡單的演算法: 圖解 ✕ 程式 ✕ 刷題機器人 (1版)
類似書籍推薦給您
【簡介】
傳統的演算法書籍太過枯燥無聊,裡面全是些看再多遍也看不懂的複雜理論、數學公式還有程式,光是翻幾頁就讓人哈欠連連,這對初學者而言就像在看外星文,而且有些程式概念很抽象,更是無法透過文字敘述就能理解。
本書透過生活化的舉例做引導,並避免無聊又複雜的敘述,目的就是希望讓讀者能像閱讀小說般地學會演算法概念。我相信最好的學習方式就是能回想起我們熟悉的事物,以範例來說明會讓你更容易回想。例如,當你忘記【陣列】與【鏈結串列】的差異時 (本書第 2 章的主題),只要回想到在電影院找座位就可以了。
本書內容精心挑選過,而且用生動有趣的手繪圖來輔助理解,所介紹的演算法都非常實用,希望能幫讀者奠定良好的基礎,以便將來學習更進階的演算法。
【目錄】
Ch01 二元搜尋法 (Binary Search) 與演算法執行時間
Ch02 選擇排序法 (Selection Sort)
Ch03 遞迴 (Recursion)
Ch04 Divide-and-Conquer 與快速排序法 (Quicksort)
Ch05 雜湊表 (Hash table)
Ch06 廣度優先搜尋 (Breadth-First Search)
Ch07 樹狀圖 (tree)
Ch08 平衡樹 (Balanced Tree)
Ch09 戴克斯特拉 (Dijkstra) 演算法
Ch10 貪婪演算法 (Greedy Algorithm)
Ch11 動態規劃演算法 (Dynamic Programming Algorithm)
Ch12 K-最近鄰演算法 (K-Nearest Neighbors Algorithm)
Ch13 進階之路:推薦十種演算法
附錄 A AVL 樹的效能
附錄 B NP-hard 問題
附錄 C 習題與解答
Bonus 客製化刷題機器人–驗證你的演算法學習成效
立即查看
演算法 圖解原理 x Python實作x創意應用王者歸來 (1版)
類似書籍推薦給您
立即查看
圖解資料結構 × 演算法:運用 Python 結合 ChatGPT 輔助驗證及寫程式(暢銷回饋版) (2版)
類似書籍推薦給您
【簡介】
資料結構必備好書,暢銷回饋中!
AI 再進化!
使用 ChatGPT 高效率生成 Python 程式碼
資料結構是電腦科學領域中一門極為重要的基礎課程,對於從事資訊相關工作的專業人員而言,它具有不可忽視的價值。無論是在學術考試還是實際應用中,對資料結構的深入理解都至關重要。然而,對初學者而言,理解資料結構中的理論和演算法可能會帶來困難和挫折感。
本書的獨特之處在於使用豐富的圖例解釋相對複雜的理論,並以簡潔明瞭的方式詮釋資料結構理論。從基礎的概念開始,逐步使用 Python 語言解釋陣列、堆疊、鏈結串列、佇列、樹狀結構、圖形、排序、搜尋等重要主題。附錄中整理了資料結構相關的專有名詞,並提供了重要演算法的介紹和實作範例。
本書以簡潔有力、邏輯清晰的方式優化文句表達,並特別收集了大量習題,以確保讀者掌握各章節的學習成果。演算法節點盡量使用 Python 程式碼展示,而非虛擬碼形式。此外,本書還會展示由 ChatGPT 生成的程式碼。我們相信,ChatGPT 生成的程式碼具有簡潔性和精簡性,並能夠提供更好的解決方案。
◇特別提供◇
——————————————————
ChatGPT 生成程式碼
——————————————————
可與人工編寫程式碼相互比較作為參考!
|本書範例程式碼檔案,請至博碩官網下載|
本書特色
☑ 完整的內容結構和清晰的邏輯,豐富的圖例解說提高可讀性
☑ 使用 Python 語言實作資料結構理論,並透過範例程式碼深入解析
☑ 參閱國家考試題型設計難易適中的習題,立即檢驗學習效果
☑ 附錄彙整出資料結構相關的專有名詞,方便查詢加深學習印象
☑ 增加「ChatGPT 解決觀點」欄位,幫助理解提高學習效率
資料結構必備好書,暢銷回饋中!
本書以簡潔有力、邏輯清晰、圖例豐富的方式詮釋資料結構理論,並特別收集了大量習題,以確保讀者掌握各章節的學習成果。演算法節點盡量使用 Python 程式碼展示,而非虛擬碼形式。此外,本書還會展示由 ChatGPT 生成的程式碼。我們相信,ChatGPT 生成的程式碼具有簡潔性和精簡性,並能夠提供更好的解決方案。
【目錄】
Chapter 0 ChatGPT 與 Python 程式設計黃金 入門課
0-1 認識聊天機器人
0-1-1 聊天機器人的種類
0-2 ChatGPT 初體驗
0-2-1 註冊免費 ChatGPT 帳號
0-2-2 更換新的機器人
0-2-3 登出 ChatGPT
0-3 使用 ChatGPT 寫 Python 程式
0-3-1 利用 ChatGPT AI 撰寫 Python 程式
0-3-2 複製 ChatGPT 幫忙寫的程式碼
0-3-3 ChatGPT AI 程式與人工撰寫程式的比較
0-4 ChatGPT AI Python 程式範例集
0-4-1 使用 Pygame 遊戲套件繪製多媒體圖案
0-4-2 以內建模組及模擬大樂透的開獎程式
0-4-3 建立四個主功能表的視窗應用程式
0-4-4 演算法的應用:寫一支迷宮問題的解決方案
0-4-5 海龜繪圖法繪製兩款精美的圖形
0-5 課堂上學不到的 ChatGPT 使用秘訣
0-5-1 能記錄對話內容
0-5-2 專業問題可事先安排人物設定腳本
0-5-3 目前只回答 2021 年前
0-5-4 善用英文及 Google 翻譯工具
0-5-5 熟悉重要指令
0-5-6 充份利用其它網站的 ChatGPT 相關資源
0-6 利用 ChatGPT 輕鬆開發 AI 小遊戲
0-6-1 請 ChatGPT 自我推薦以 Python 實作的小遊戲
0-6-2 猜數字遊戲
0-6-3 OX 井字遊戲
0-6-4 猜拳遊戲
0-6-5 牌面比大小遊戲
Chapter 1 資料結構與演算法入門
1-1 資料結構的定義
1-1-1 資料與資訊
1-1-2 資料的特性
1-1-3 資料結構的應用
1-2 演算法
1-2-1 演算法的條件
1-2-2 演算法的表現方式
1-3 常見演算法簡介
1-3-1 分治法
1-3-2 貪心法
1-3-3 枚舉法
1-3-4 巴斯卡三角形演算法
1-3-5 質數求解演算法
1-4 演算法效能分析
1-4-1 Big-oh
1-4-2 Ω(omega)
1-4-3 θ(theta)
Chapter 2 陣列結構
2-1 線性串列簡介
2-1-1 儲存結構簡介
2-2 認識陣列
2-2-1 二維陣列
2-2-2 三維陣列
2-2-3 n維陣列
2-3 矩陣
2-3-1 矩陣相加
2-3-2 矩陣相乘
2-3-3 轉置矩陣
2-3-4 稀疏矩陣
2-3-5 上三角形矩陣
2-3-6 下三角形矩陣
2-3-7 帶狀矩陣
2-4 陣列與多項式
2-4-1 認識多項式
Chapter 3 串列結構
3-1 單向串列
3-1-1 建立單向串列
3-1-2 走訪單向串列
3-1-3 單向串列插入新節點
3-1-4 單向串列刪除節點
3-1-5 單向串列的反轉
3-1-6 單向串列的連結功能
3-1-7 多項式串列表示法
3-2 環狀串列
3-2-1 環狀串列的建立與走訪
3-2-2 環狀串列插入新節點
3-2-3 環狀串列刪除節點
3-2-4 環狀串列的連結
3-2-5 環狀串列與稀疏矩陣表示法
3-3 雙向串列
3-3-1 雙向串列建立與走訪
3-3-2 雙向串列加入新節點
3-3-3 雙向串列刪除節點
Chapter 4 堆疊
4-1 堆疊簡介
4-1-1 陣列實作堆疊
4-1-2 串列實作堆疊
4-2 堆疊的應用
4-2-1 遞迴演算法
4-2-2 動態規劃演算法
4-2-3 河內塔問題
4-2-4 回溯法-老鼠走迷宮
4-2-5 八皇后問題
4-3 算術運算式的表示法
4-3-1 中序轉為前序與後序
4-3-2 前序與後序轉為中序
4-3-3 中序表示法求值
4-3-4 前序法的求值運算
4-3-5 後序法的求值運算
Chapter 5 佇列
5-1 認識佇列
5-1-1 佇列的工作運算
5-1-2 佇列的應用
5-1-3 陣列實作佇列
5-1-4 串列實作佇列
5-2 環狀佇列、雙向佇列與優先佇列
5-2-1 環狀佇列
5-2-2 雙向佇列
5-2-3 優先佇列
Chapter 6 樹狀結構
6-1 樹的基本觀念
6-1-1 樹專有名詞簡介
6-2 二元樹簡介
6-2-1 二元樹的定義
6-2-2 特殊二元樹簡介
6-3 二元樹的儲存方式
6-3-1 一維陣列表示法
6-3-2 串列表示法
6-4 二元樹走訪
6-4-1 中序走訪
6-4-2 後序走訪
6-4-3 前序走訪
6-4-4 二元樹節點的插入與刪除
6-4-5 二元運算樹
6-5 引線二元樹
6-5-1 二元樹轉為引線二元樹
6-6 樹的二元樹表示法
6-6-1 樹化為二元樹
6-6-2 二元樹轉換成樹
6-6-3 樹林化為二元樹
6-6-4 二元樹轉換成樹林
6-6-5 樹與樹林的走訪
6-6-6 決定唯一二元樹
6-7 最佳化二元搜尋樹
6-7-1 延伸二元樹
6-7-2 霍夫曼樹
6-8 平衡樹
6-8-1 平衡樹的定義
6-9 進階樹狀結構的應用
6-9-1 決策樹
6-9-2 B樹
6-9-3 二元空間分割樹(BSP)
6-9-4 四元樹 / 八元樹
Chapter 7 圖形結構
7-1 圖形簡介
7-1-1 尤拉環與尤拉鏈
7-1-2 圖形的定義
7-1-3 無向圖形
7-1-4 有向圖形
7-2 圖形的資料表示法
7-2-1 相鄰矩陣法
7-2-2 相鄰串列法
7-2-3 相鄰複合串列法
7-2-4 索引表格法
7-3 圖形的走訪
7-3-1 先深後廣法
7-3-2 先廣後深搜尋法
7-4 擴張樹
7-4-1 DFS擴張樹及BFS擴張樹
7-4-2 最小花費擴張樹
7-4-3 Kruskal演算法
7-4-4 Prim演算法
7-5 圖形最短路徑
7-5-1 單點對全部頂點
7-5-2 兩兩頂點間的最短路徑
7-5-3 A* 演算法
7-6 AOV網路與拓樸排序
7-6-1 拓樸序列簡介
7-7 AOE網路
7-7-1 臨界路徑
Chapter 8 排序演算法
8-1 認識排序
8-1-1 排序的分類
8-1-2 排序演算法分析
8-2 內部排序法
8-2-1 氣泡排序法
8-2-2 雞尾酒排序法
8-2-3 選擇排序法
8-2-4 插入排序法
8-2-5 謝耳排序法
8-2-6 合併排序法
8-2-7 快速排序法
8-2-8 堆積排序法
8-2-9 基數排序法
Chapter 9 搜尋演算法與雜湊函數
9-1 常見搜尋演算法
9-1-1 循序搜尋法
9-1-2 二分搜尋法
9-1-3 內插搜尋法
9-1-4 費氏搜尋法
9-2 雜湊搜尋法
9-2-1 雜湊法簡介
9-3 常用的雜湊函數
9-3-1 除法
9-3-2 中間平方法
9-3-3 折疊法
9-3-4 數位分析法
9-4 碰撞與溢位問題的處理
9-4-1 線性探測法
9-4-2 平方探測法
9-4-3 再雜湊法
9-4-4 鏈結串列法
附錄A 資料結構專有名詞索引
立即查看