数学与泛型编程:高效编程的奥秘

admin 2022年11月13日 233次浏览

数学与泛型编程:高效编程的奥秘

(副标题):无 ;

(作者): Alexander A. Stepanov, Daniel E. Rose ;

内容简介:

​ 第1章 内容提要
不懂数学,就无法了解世界。
——罗吉尔·培根(Roger Bacon),《大著作》(Opus Majus)
这是一本谈编程的书,但是它与大多数的编程书都不太一样,因为除了算法和代码之外,本书还会给出数学证明和一些讲述从古代到20世纪各种数学发现的历史材料。
另一个更为具体的特色在于:这是一本谈论泛型编程(generic programming)的书。泛型编程是出现于20世纪80年代的编程方法,在20世纪90年代随着C++标准模板库(Standard Template Library,STL)而变得流行起来。我们可以这样定义它:
定义1.1 泛型编程是一种专注于对算法及数据结构进行设计的编程方式,它使得这些算法及数据结构能够在不损失效率的前提下,运用到最为通用的环境中。
用过STL的读者可能在想:“不对吧?泛型编程的概念只用这么简单的一句话就能定义出来?模板和迭代器(iterator)等特性怎么没有提到呢?”其实那些特性应该说是工具,它们使得编程语言能够支持泛型编程。程序员固然应该学会高效地使用那些工具,然而泛型编程主要谈的是编程态度(attitude),而不是某一套工具。
笔者认为,所有的程序员都应该抱持这种编程态度,也就是说,都应该试着以这种通用的方式来编写代码。如果能够写出高品质的泛型程序,那么很容易就能使用并修改其中的各个组件。这要比那种采用硬代码来编写的程序好很多,因为后者会针对具体的应用程序来给数据结构、算法以及接口施加一些毫无必要的限制。把程序写得通用一些可以令它变得更为简洁,也更为强大。

目录预览:

​ 数学与泛型编程:高效编程的奥秘
第1章 内容提要
1.1 编程与数学
1.2 从历史的角度来讲解
1.3 阅读准备
1.4 各章概述
第2章 算法初谈
2.1 埃及乘法算法
2.2 改进该算法
2.3 本章要点
第3章 古希腊的数论
3.1 整数的几何属性
3.2 筛选素数
3.3 实现该算法并优化其代码
3.4 完美数
3.5 毕达哥拉斯学派的构想
3.6 毕氏构想中的严重缺陷
3.7 本章要点
第4章 欧几里得算法
4.1 雅典与亚历山大
........


[EPUB下载]