算法的乐趣

算法的乐趣

大小:45.4M

更新时间:24-09-04

系统:Pc

开始下载

算法的乐趣是由王晓华所编写的一本适合软件开发人员、编程和算法爱好者以及计算机的学生阅读的图书,目前销量非常的好,其主要的算法有:历法和二十四节气计算使用的是霍纳法则和求解一元高次方程的牛顿迭代法、音频播放器跳动的实时频谱背后是离散傅立叶变换算法、DOS时代的PCX图像文件格式使用的是简单有效的RLE压缩算法、RSA加密算法的光环之下是朴实的欧几里德算法、蒙哥马利算法和米勒-拉宾算法等。

本书没有像一般的算法书一样单纯地去讲算法和数据结构本身,那样无论语言多风趣,只要一谈到关键的问题也会马上变得无趣起来,它同时涵盖逻辑类算法、通用类算法和类算法,真正是在训练读者解决问题的能力,而解决问题的能力,这正是任何一家公司所需人才的核心的技能。”本书深入浅出的讲述了算法的原理,通俗易懂,有需要的朋友可以下载阅读。

内容简介

王晓华编著的这本《算法的乐趣》从一系列有趣的生活实例出发,全面介绍了构造算法的基础方法及其广泛应用,生动地展现了算法的趣味性和实用性。全书分为两个部分,靠前部分介绍了算法的概念、常用的算法结构以及实现方法,第二部分介绍了算法在各个领域的应用,如物理实验、计算机图形学、数字音频处理等。

其中,既有各种大名鼎鼎的算法,如神经网络、遗传算法、离散傅里叶变换算法及各种插值算法,也有不起眼的排序和概率计算算法。讲解浅显易懂而不失深度和严谨,对程序员有很大的启发意义。书中所有的示例都与生活息息相关,淋漓尽致地展现了算法解决问题的本质,让你爱上算法,乐在其中。

算法的乐趣pdf目录

第1章程序员与算法

1.1什么是算法

1.2程序员必须要会算法吗

1.2.1一个队列引发的惨案

1.2.2我的个算法

1.3算法的乐趣在哪里

1.4算法与代码

1.5总结

1.6参考资料

第2章算法设计的基础

2.1程序的基本结构

2.1.1顺序执行

2.1.2循环结构

2.1.3分支和跳转结构

2.2算法实现与数据结构

2.2.1基本数据结构在算法设计中的应用

2.2.2复杂数据结构在算法设计中的应用

2.3数据结构和数学模型与算法的关系

2.4总结

2.5参考资料

第3章算法设计的常用思想

3.1贪婪法

3.1.1贪婪法的基本思想

3.1.2贪婪法的例子:0-1背包问题

3.2分治法

3.2.1分治法的基本思想

3.2.2递归和分治,一对好朋友

3.2.3分治法的例子:大整数Karatsuba乘法算法

3.3动态规划

3.3.1动态规划的基本思想

3.3.2动态规划法的例子:字符串的编辑距离

3.4解空间的穷举搜索

3.4.1解空间的定义

3.4.2穷举解空间的策略

3.4.3穷举搜索的例子:Google方程式

3.5总结

3.6参考资料

第4章阿拉伯数字与中文数字

4.1中文数字的特点

4.1.1中文数字的权位和小节

4.1.2中文数字的零

4.2阿拉伯数字转中文数字

4.2.1一个转换示例

4.2.2转换算法设计

4.2.3算法实现

4.2.4中文大写数字

4.3中文数字转阿拉伯数字

4.3.1转换的基本方法

4.3.2算法实现

4.4数字转换的测试用例

4.5总结

4.6参考资料

第5章三个水桶等分8升水的问题

5.1问题与求解思路

5.2建立数学模型

5.2.1状态的数学模型与状态树

5.2.2倒水动作的数学模型

5.3搜索算法

5.3.1状态树的遍历

5.3.2剪枝和重复状态判断

5.4算法实现

5.5总结

5.6参考资料

第6章妖怪与和尚过河问题

6.1问题与求解思路

6.2建立数学模型

6.2.1状态的数学模型与状态树

6.2.2过河动作的数学模型

6.3搜索算法

6.3.1状态树的遍历

6.3.2剪枝和重复状态判断

6.4算法实现

6.5总结

6.6参考资料

第7章稳定匹配与舞伴问题

7.1稳定匹配问题

7.1.1什么是稳定匹配

7.1.2Gale-Shapley算法原理

7.2Gale-Shapley算法的应用实例

7.2.1算法实现

7.2.2改进优化:空间换时间

7.3有多少稳定匹配

7.3.1穷举所有的完美匹配

7.3.2不稳定因素的判断算法

7.3.3穷举的结果

7.4二部图与二分匹配

7.4.1*大匹配与匈牙利算法

7.4.2带权匹配与Kuhn-Munkres算法

7.5总结

7.6参考资料

第8章爱因斯坦的思考题

8.1问题的答案

8.2分析问题的数学模型

8.2.1基本模型定义

8.2.2线索模型定义

8.3算法设计

8.3.1穷举所有的组合结果

8.3.2利用线索判定结果的正确性

8.4总结

8.5参考资料

第9章项目管理与图的拓扑排序

9.1AOV网和AOE网

9.2拓扑排序

9.2.1拓扑排序的基本过程

9.2.2按照活动开始时间排序

9.3关键路径算法

9.3.1什么是关键路径

9.3.2计算关键路径的算法

9.4总结

9.5参考资料

第10章RLE压缩算法与PCX图像文件格式

10.1RLE压缩算法

10.1.1连续重复数据的处理

10.1.2连续非重复数据的处理

10.1.3算法实现

10.2RLE与PCX图像文件格式

10.2.1PCX图像文件格式

10.2.2PCX_RLE算法

10.2.3256色PCX文件的解码和显示

10.3总结

10.4参考资料

第11章算法与历法

11.1格里历(公历)生成算法

11.1.1格里历的历法规则

11.1.2今天星期几

11.1.3生成日历的算法

11.1.4日历变更那点事儿

11.2二十四节气的天文学计算

11.2.1二十四节气的起源

11.2.2二十四节气的天文学定义

11.2.3VSOP-82/87行星理论

11.2.4误差修正——章动

11.2.5误差修正——光行差

11.2.6用牛顿迭代法计算二十四节气

11.3农历朔日(新月)的天文学计算

11.3.1日月合朔的天文学定义

11.3.2ELP-2000/82月球理论

11.3.3误差修正——地球轨道离心率修正

11.3.4误差修正——黄经摄动

11.3.5月球地心视黄经和*后的修正——地球章动

11.3.6用牛顿迭代法计算日月合朔

11.4农历的生成算法

11.4.1中国农历的起源与历法规则

11.4.2中国农历的推算

11.4.3一个简单的“年历”

11.5总结

11.6参考资料

第12章实验数据与曲线拟合

12.1曲线拟合

12.2小二乘法曲线拟合

12.2.1*小二乘法原理

12.2.2高斯消元法求解方程组

12.2.3小二乘法解决“速度与加速度”实验

12.3三次样条曲线拟合

12.3.1插值函数

12.3.2样条函数的定义

12.3.3边界条件

12.3.4推导三次样条函数

12.3.5追赶法求解方程组

12.3.6三次样条曲线拟合算法实现

12.3.7三次样条曲线拟合的效果

12.4总结

12.5参考资料

第13章非线性方程与牛顿迭代法

13.1非线性方程求解的常用方法

13.1.1公式法

13.1.2二分逼近法

13.2牛顿迭代法的数学原理

13.3用牛顿迭代法求解非线性方程的实例

13.3.1导函数的求解与近似公式

13.3.2算法实现

13.4参考资料

第14章计算几何与计算机图形学

14.1计算几何的基本算法

14.1.1点与矩形的关系

14.1.2点与圆的关系

14.1.3矢量的基础知识

14.1.4点与直线的关系

14.1.5直线与直线的关系

14.1.6点与多边形的关系

14.2直线生成算法

14.2.1什么是光栅图形扫描转换

14.2.2数值微分法

14.2.3Bresenham算法

14.2.4对称直线生成算法

14.2.5两步算法

14.2.6其他直线生成算法

14.3圆生成算法

14.3.1圆的八分对称性

14.3.2中点画圆法

14.3.3改进的中点画圆法——Bresenham算法

14.3.4正负判定画圆法

14.4椭圆生成算法

14.4.1中点画椭圆法

14.4.2Bresenham椭圆算法

14.5多边形区域填充算法

14.5.1种子填充算法

14.5.2扫描线填充算法

14.5.3改进的扫描线填充算法

14.5.4边界标志填充算法

14.6总结

14.7参考资料

第15章音频频谱和均衡器与傅里叶变换算法

15.1实时频谱显示的原理

15.2离散傅里叶变换

15.2.1什么是傅里叶变换

15.2.2傅里叶变换原理

15.2.3快速傅里叶变换算法的实现

15.3傅里叶变换与音频播放的实时频谱显示

15.3.1频域数值的特点分析

15.3.2从音频数据到功率频谱

15.3.3音频播放时实时频谱显示的例子

15.4破解电话号码的小把戏

15.4.1拨号音的频谱分析

15.4.2根据频谱数据反推电话号码

15.5离散傅里叶逆变换

15.5.1快速傅里叶逆变换的推导

15.5.2快速傅里叶逆变换的算法实现

15.6利用傅里叶变换实现频域均衡器

15.6.1频域均衡器的实现原理

15.6.2频域信号的增益与衰减

15.6.3均衡器的实现——仿Foobar的18段均衡器

15.7总结

15.8参考资料

第16章全局*优解与遗传算法

16.1遗传算法的原理

16.1.1遗传算法的基本概念

16.1.2遗传算法的处理流程

16.2遗传算法求解0-1背包问题

16.2.1基因编码和种群初始化

16.2.2适应度函数

16.2.3SHOU*选择算子设计与轮盘赌算法

16.2.4交叉算子设计

16.2.5变异算子设计

16.2.6这就是遗传算法

16.3总结

16.4参考资料

第17章计算器程序与大整数计算

17.1哦,溢出了,出洋相的计算器程序

17.2大整数计算的原理

17.2.1大整数加法

17.2.2大整数减法

17.2.3大整数乘法

17.2.4大整数除法与模

17.2.5大整数乘方运算

17.3大整数类的使用

17.3.1与Windows的计算器程序一决高下

17.3.2最大公约数和最小公倍数

17.3.3用扩展欧几里得算法求模的逆元

17.4总结

17.5参考资料

第18章RSA算法——加密与签名

18.1RSA算法的开胃菜

18.1.1将模幂运算转化为模乘运算

18.1.2模乘运算与蒙哥马利算法

18.1.3模幂算法

18.1.4素数检验与米勒—拉宾算法

18.2RSA算法原理

18.2.1RSA算法的数学理论

18.2.2加密和解密算法

18.2.3RSA算法的安全性

18.3数据块分组加密

18.3.1字节流与大整数的转换

18.3.2PCKS与OAEP加密填充模式

18.3.3数据加密算法实现

18.3.4数据解密算法实现

18.4RSA签名与身份验证

18.4.1RSASSA-PKCS与RSASSA-PSS签名填充模式

18.4.2签名算法实现

18.4.3验证签名算法实现

18.5总结

18.6参考资料

第19章数独游戏

19.1数独游戏的规则与技巧

19.1.1数独游戏的规则

19.1.2数独游戏的常用技巧

19.2计算机求解数独问题

19.2.1建立问题的数学模型

19.2.2算法实现

19.2.3与传统穷举方法的结果对比

19.3关于数独的趣味话题

19.3.1数独游戏有多少终盘

19.3.2目前*难的数独游戏

19.4总结

19.5参考资料

第20章华容道游戏

20.1华容道游戏介绍

20.2自动求解的算法原理

20.2.1定义棋盘的局面

20.2.2算法思路

20.3自动求解的算法实现

20.3.1棋局状态与Zobrist哈希算法

20.3.2重复棋局和左右镜像的处理

20.3.3正确结果的判断条件

20.3.4武将棋子的移动

20.3.5棋局的搜索算法

20.4总结

20.5参考资料

第21章A*寻径算法

21.1寻径算法演示程序

21.2Dijkstra算法

21.2.1Dijkstra算法原理

21.2.2Dijkstra算法实现

21.2.3Dijkstra算法演示程序

21.3带启发的搜索算法——A*算法

21.3.1A*算法原理

21.3.2常用的距离评估函数

21.3.3A*算法实现

21.4总结

21.5参考资料

第22章俄罗斯方块游戏

22.1俄罗斯方块游戏规则

22.2俄罗斯方块游戏人工智能的算法原理

22.2.1影响评价结果的因素

22.2.2常用的俄罗斯方块游戏人工智能算法

22.2.3PierreDellacherie评估算法

22.3PierreDellacherie算法实现

22.3.1基本数学模型和数据结构定义

22.3.2算法实现

22.4总结

22.5参考资料

第23章博弈树与棋类游戏

23.1棋类游戏的AI

23.1.1博弈与博弈树

23.1.2极大极小值搜索算法

23.1.3负极大极搜索算法

23.1.4“α-β”剪枝算法

23.1.5估值函数

23.1.6置换表与哈希函数

23.1.7开局库与终局库

23.2井字棋——*简单的博弈游戏

23.2.1棋盘与棋子的数学模型

23.2.2估值函数与估值算法

23.2.3如何产生走法(落子方法)

23.3奥赛罗棋(黑白棋)

23.3.1棋盘与棋子的数学模型

23.3.2估值函数与估值算法

23.3.3搜索算法实现

23.3.4*终结果

23.4五子棋

23.4.1棋盘与棋子的数学模型

23.4.2估值函数与估值算法

23.4.3搜索算法实现

23.4.4*终结果

23.5总结

23.6参考资料

附录A算法设计的常用技巧

A.1数组下标处理

A.2一重循环实现两重循环的功能

A.3棋盘(迷宫)类算法方向遍历

A.4代码的一致性处理技巧

A.5链表和数组的配合使用

A.6“以空间换时间”的常用技巧

A.7利用表驱动避免长长的switch-case

附录B一个棋类游戏的设计框架

B.1代码框架的整体结构

B.2代码框架的使用方法

算法的乐趣完整版pdf使用说明

1、下载并解压,得出pdf文件

2、如果打不开本文件,请务必下载pdf阅读器

3、安装后,在打开解压得出的pdf文件

4、双击进行阅读

展开全部内容
语言简体中文

同类热门

南方Plus电脑版南方Plus电脑版 网易新闻电脑版网易新闻电脑版 潇湘书院电脑版潇湘书院电脑版 吉利博瑞用户手册吉利博瑞用户手册 未公开的Oracle数据库秘密未公开的Oracle数据库秘密 linux常用命令大全linux常用命令大全 本草纲目本草纲目 docker入门实战docker入门实战

热门标签

常用的web富文本编辑器 cad杀毒专用软件 简谱打谱软件 免费商业字体大全 u盘格式化软件大全 电脑图纸设计制作软件大全 电脑视频播放器大全 电脑视频解码软件大全 鸿合软件大全 制作app软件工具大全 电脑报税软件大全 网卡驱动大全

网友评论1人参与,1条评论

评论需审核后才能显示

最新排行

手游排行软件排行热门应用