本書內容不涉及計算機專業課程的諸多概念、理論,讀者之需要學過c語言,有算法、結構化程式設計和邏輯表達式的概念,並有獨立上機編制30條左右語句小程式的經驗,就能夠掌握書中的程式設計思想、算法和技巧,並能舉一反三,推廣套用,是自己的編程水平上一個台階。
基本介紹
- 書名:程式算法與技巧精選
- ISBN:978-7-111-23816-4
- 出版社:機械工業出版社
- 出版時間:2008-5
基本資料,內容提要,編輯推薦,內容選讀,目錄,
基本資料
作者:郭繼展 郭勇 蘇輝
ISBN:978-7-111-23816-4
出版日期:2008-5
頁碼:323 頁
定價:36.00元
內容提要
計算機科學是算法的科學。進行程式設計不僅需要掌握常用的算法、技術和方法,還要敢於創新、構思巧妙的算法和探索編程中的諸多技巧。
算法和技巧都需要學習、借鑑和交流。本書分17章,139個例題。書中介紹的算法和技巧涉及到隨機數函式理論,基礎數論,新意幻方,提高程式運行速度和精度,特定數據排序,窮舉、遞推、遞歸和疊代等諸多方面。這些算法和技巧大多是作者歷年從事教學、軟體開發、學術研究和學習的成果總結。
本書可作為大專院校師生和計算機編程人員或自學人員參考。
編輯推薦
巧算π值10000位
哥德巴赫猜想的篩法驗證
統計法排序——百萬整整隻需1秒
計算機輔助數學證明——3個數學黑洞
輔助解智力測驗題——12隻球中挑壞球
應用程式增加智慧型——顯示解題過程和精確解
內容選讀
第1章 算法——程式的靈魂
1.1 計算機科學是算法的科學
1. 什麼是算法
算法是對特定問題求解步驟的一種描述,包含操作的有限規則和操作的有限序列。
通俗一點講,算法就是一個解決問題的公式(數學手冊上的公式都是經典算法)、規則、思路、方法和步驟。算法可以用自然語言描述,也可以用流程圖描述,但最終要用計算機語言編程,上機實現。
有些問題算法是簡單的,手算人人都會,但編程上機實現卻很難(本書將對這一問題做較多的討論)。例如求100位數的四則運算,求線性方程組的精確解等。一個成功的算法,應該有良好的速度、精度和清晰度。
人沒有算法,計算機也無能為力。算法錯了,計算機將誤入歧途。20世紀初的數學家希爾伯特提出了23個問題。一個世紀過去了,有的問題還沒有解決,就是因為數學大師們仍找不到一個合適的算法。從這一點講,計算機的理論基礎是數學。
2. 好的算法具備的屬性
(1) 確定性。算法應當滿足具體問題的需求,正確反映問題對輸入、輸出和加工處理等方面的要求。第一條指令必須有確定的含義和作用,對於相同的輸入必須得出相同的執行結果。
(2) 有限性。算法中每條指令的執行次數是有限的,執行時間也是有限的。算法執行有限步後必然結束,不能要求無休止地執行下去。如近似計算,當達到要求的精度或要求的計算數時,即可停止。
……
目錄
出版說明
前言
第1章 算法——程式的靈魂
1.1 計算機科學是算法的科學
1.2 算法是有多樣性
1.3 奇妙算法是智慧的結晶
1.4 窮舉法——編程的瑰寶
第2章 隨機數函式——計算機模擬的基石
2.1 高質量的均勻分布的隨機函式
2.2 八種常用的隨機數函式
第3章 數組——設計算法的重要手段
3.1 百燈判熄——數組元素變號代替開關
3.2 列印楊輝三角形——數組元素相加勝過組合
3.3 新戰士的年齡——數組嵌套妙比數字
3.4 巧排螺旋數陣——數組下標靈活表旋向
3.5 小孩子圍圈分糖塊——數組下標靈活表旋向
3.6 猜數四問——一維數組列方陣
第4章 整數問題——問題簡明算法有難易
4.1 徒工工資數——數有特點算法有創新
4.2 古稀數——循序漸進連環驗證
4.3 巧算國王分財物——由部分推知全體
4.4 六位的翻兩番數——多個未知數巧合作一個
4.6 孫子問題——真諦原本在“求一”
4.7 完全數——全賴歐氏定理領航
4.7 親和數——因子試算只到平方根
4.8 自守數——兩位連推到十位
第5章 平方數問題——算法多從數的平方入手
5.1 一數三平方數——數組元素預算平方
5.2 卡普列加數——推導公式簡化編程
5.3 勾股數組——覓公式算法直接得解
5.4 巧妙驗證四個平方數和的定理——一用篩法(數組作篩)
5.5 十數字組四個平方數——巧用回退
5.6 金蟬平方數——“脫殼”組數
5.7 連解佩爾方程——測試細節不容忽視
第6章 素數問題——讓古老算法結新果
6.1 篩一億內的素數——二用篩法
6.2 哥德巴赫猜想驗證——三用篩法
6.3 求費爾馬“二平方”素數——“滾雪球”式地得到所使用的素數
6.4 回文式素數——依然含有諸多猜想
6.5 雙向環形素數——循環移位組數判斷
6.6 趣談莫林素數——突顯計算機、網路的魅力
第7章 用算法提高程式的運行速度
7.1 求百萬內回文式素數——最佳化求解順序提高速度300倍
7.2 百雞問題——減少循環重數提高速度5000倍
7.3 求自冪數——用數組預作乘法提高速度100倍
7.4 組合平方數——條件化為位運算表示提高速度100000倍
……
第8章 用算法提高程式的運算精度
第9章 特定數據排序——設計特效算法
第10章 取用計算機的幾種編碼
第11章 遞推、遞歸和疊代——三種基本算法
第12章 邏輯推理——設計符合計算機的簡捷算法
第13章 使應用程式增加智慧型——顯示解題過程和精確解
第14章 幻方新意新解——提出問題力求解決問題
第15章 計算機輔助解智力測驗題
第16章 計算機輔助數學證明
第17章 必須警惕計算機犯錯誤