《程序算法与技巧精选》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:郭继展,郭勇,苏辉编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2008
  • ISBN:7111238168
  • 页数:323 页
图书介绍:本书主要介绍了程序算法和技巧等方面的知识。

第1章 算法——程序的灵魂 1

1.1 计算机科学是算法的科学 1

1.2 算法具有多样性 2

1.3 奇妙算法是智慧的结晶 5

1.4 穷举法——编程的瑰宝 6

第2章 随机数函数——计算机模拟的基石 8

2.1 高质量的均匀分布的随机数函数 8

2.1.1 均匀分布的随机数函数的质量 8

2.1.2 生成随机数的一个可靠算法 9

2.1.3 算法在微机上的实现 10

2.1.4 编写随机数函数md(x) 11

2.2 八种常用的随机数函数 14

2.2.1 等地铁的时间——在区间(a,b)上均匀分布的随机数函数 14

2.2.2 射击直至命中的射击次数——几何分布的随机数函数 15

2.2.3 n次射击有k次命中——二项分布的随机数函数 16

2.2.4 射击至第k次命中的射击次数——负二项分布的随机数函数 17

2.2.5 日光灯管的寿命——指数分布的随机数函数 18

2.2.6 人到齐才开会的等待时间——г分布的随机数函数 19

2.2.7 一天进入某商店的人数——泊松分布的随机数函数 20

2.2.8 人身体高度——正态分布的随机数函数 21

2.3 应用举例 22

第3章 数组——设计算法的重要手段 31

3.1 百灯判熄——数组元素变号代替开关 31

3.2 打印杨辉三角形——数组元素相加胜过组合 33

3.3 新战士的年龄——数组嵌套妙比数字 35

3.4 巧排螺旋数阵——数组下标灵活表旋向 37

3.5 小孩围圈分糖块——数组封闭成环形链表 40

3.6 猜数四问——一维数组列方阵 42

第4章 整数问题——问题简明算法有难易 46

4.1 徒工工资数——数有特点算法有创新 46

4.2 古稀数——循序渐进连环验证 48

4.3 巧算国王分财物——由部分推知全体 51

4.4 六位的翻两番数——多个未知数巧合作一个 52

4.5 孙子问题——真谛原本在“求一” 54

4.6 完全数——全赖欧氏定理领航 56

4.6.1 什么是完全数 56

4.6.2 欧几里德完全数定理 57

4.6.3 完全数的奇妙性质 59

4.7 亲和数——因子试算只到平方根 60

4.8 自守数——两位连推到十位 63

第5章 平方数问题——算法多从数的平方入手 65

5.1 一数三平方数——数组元素预算平方 65

5.2 卡普列加数——推导公式简化编程 68

5.3 勾股数组——觅公式算法直接得解 70

5.3.1 二维勾股数组 70

5.3.2 长方体长、宽、高勾股数组 73

5.3.3 三维勾股数组 75

5.4 巧妙验证四个平方数和的定理——一用筛法(数组作筛) 76

5.5 十数字组四个平方数——巧用回退 79

5.6 金蝉平方数——“脱壳”组数 82

5.7 连解佩尔方程——测试细节不容忽视 84

第6章 素数问题——让古老算法结新果 89

6.1 筛一亿内的素数——二用筛法 89

6.1.1 筛万内素数 90

6.1.2 筛亿内素数 91

6.1.3 制素数表等问题 92

6.1.4 用素数表求孪生素数 93

6.2 哥德巴赫猜想验证——三用筛法 94

6.3 求费尔马“二平方”素数——“滚雪球”式地得到所使用的素数 96

6.4 回文式素数——依然含有诸多猜想 100

6.4.1 回文式素数猜想 100

6.4.2 回文数猜想 100

6.5 双向环形素数——循环移位组数判断 102

6.6 趣谈莫森素数——突显计算机、网络的魅力 105

6.6.1 莫森素数由来 105

6.6.2 莫森素数的计算机时代和互联网时代 107

6.6.3 研究莫森素数的意义 109

第7章 用算法提高程序的运行速度 111

7.1 求百万内回文式素数——优化求解顺序提高速度300倍 111

7.2 百鸡问题——减少循环重数提高速度5000倍 114

7.3 求自幂数——用数组预作乘法提高速度100倍 116

7.4 组合平方数——条件化为位运算表示提高速度100000倍 121

第8章 用算法提高程序的运算精度 127

8.1 1000的阶乘2568位 128

8.2 加法减法任意位 131

8.3 百位乘法万位积 135

8.4 百位除法百位商 139

8.5 巧算π值一万位 145

第9章 特定数据排序——设计特效算法 150

9.1 统计法排序——百万整数只需1秒 150

9.2 利用指针排序 154

9.2.1 有序数据用指针合并排序——只比排头 154

9.2.2 字符串用指针排序——只动指针 156

9.3 多记录字段排序——解决实际编程中的难题 159

9.3.1 比较降序标序法 159

9.3.2 统计反馈法 160

9.3.3 记录一次到位移动法 162

9.4 链表排序 164

9.4.1 巧用数组拉链——显示已标序的记录 164

9.4.2 字符串指针拉链排序——分而治之速度陡增 166

9.4.3 环形链表的使用——复杂问题简单化 168

第10章 取用计算机的几种编码 171

10.1 任意位十进制数与十六进制数互换 171

10.2 巧取区位码 175

10.3 巧取汉字点阵 180

10.4 巧取键盘扫描码、ASCII码 183

10.5 <F11>、<F12>功能键的开发和利用 186

10.6 巧取Unicode码 191

10.7 文件BIT级简易快速加密 193

第11章 递推、递归和迭代——三种基本算法 199

11.1 斐波那契级数等问题的求解——递推 199

11.2 汉诺塔经典问题求解——递归 205

11.3 牛顿切线法解方程等问题求解——迭代 212

第12章 逻辑推理——设计符合计算机的简捷算法 217

12.1 神枪手打靶斗智——高环起算必夺魁 217

12.2 谁是偷窃者——只凭0、1推出来 219

12.3 四个学生猜果树——巧加关系表达式 221

12.4 五人猜五色珠——知其一可推知其二 225

12.5 鬼谷子考徒弟——突破关键在素数(四用筛法) 229

第13章 使应用程序增加智能——显示解题过程和精确解 235

13.1 整数常用运算的智能编程——分数等运算 235

13.2 一元二次方程的智能编程——由具体方程选择算法 239

13.3 整型矩阵的智能行变换——解八类矩阵问题 245

第14章 幻方新意新解——提出问题力求解决问题 254

14.1 求解三阶幻方的技巧——9重循环变2重 254

14.2 嵌套幻方——逐层外延里应外合 256

14.2.1 五阶嵌套幻方 257

14.2.2 七阶九阶嵌套幻方 259

14.2.3 偶数阶嵌套幻方 259

14.3 巧解全线幻方——先解高秩方程组 260

14.3.1 全线幻方的特性 261

14.3.2 全线幻方的求法 262

14.4 巧算六合立方幻方——“空间幻方” 266

14.4.1 六合幻立方角图 266

14.4.2 六合幻立方棱图 268

第15章 计算机辅助解智力测验题 271

15.1 老头戴帽难四子——它山之石可以攻玉 271

15.2 将军打单不打双——双向链表的一个妙用 275

15.3 取石子游戏——异或运算出胜招 280

15.4 12只球中挑坏球——问题分析要全面 285

15.5 端口访问举例——巧用键盘作琴 289

第16章 计算机辅助数学证明 293

16.1 证明勒让德素数通项公式的范围 293

16.2 数平方和运算的怪圈145 295

16.3 证明数学黑洞6174——卡普雷卡尔常数 298

16.4 证明数学黑洞123——西西弗斯串 300

16.5 证明数学黑洞153——水仙花数 305

第17章 必须警惕计算机犯错误 308

17.1 程序测试的目的在于查找错误 308

17.1.1 程序(软件)测试的基本概念 308

17.1.2 黑盒法测试程序 309

17.2 Turbo C系统软件有错误吗? 313

17.3 使用二进制带来的计算机失误 318