请选择语言 / Please select language
这个项目包含《数学与泛型编程:高效编程的奥秘》的配套资源:
-
本书预计于2025年由清华大学出版社出版。
-
本项目为这本书描述的各种算法提供了可视化、可操作的Web app。方便您体验每种算法的运算过程。另外,当然还包含了原书的配套代码和习题答案。
-
在整个翻译→出版→勘误→重印过程期间,会不断完善。
中文版主页请访问周靖的博客
中英文版算法可视化Web app
若不通晓数学,便难以真正理解世间万物。 ——罗杰·培根,《大著作》
这是一本关于编程的书,但它有别于常见的编程书籍。书中不仅包含算法和代码,还融入了诸多数学证明,以及从古代到20世纪的许多数学发现的历史背景,力求为读者呈现更完整的知识图景。
更具体地说,本书聚焦于泛型编程。这是一种编程范式,它起源于上世纪80年代,并在90年代随着C++标准模板库(Standard Template Library,STL)的诞生而逐渐普及。我们可以将其定义如下:
定义 1.1:泛型编程是一种编程范式,它关注如何设计算法和数据结构,使其在尽可能广泛的应用场景中保持高性能。
This project contains the source code for the Chinese edition of book From Mathematics to Generic Programming by Alexander A. Stepanov & Daniel E. Rose
-
This book is expected to be published by Tsinghua University Press in 2025.
-
Explore the algorithms from the book through our interactive Web app, where you can visualize and experiment with each algorithm's operation. The project also comes with the original book's code and exercise answers.
-
It will be continuously improved throughout the entire process of translation → publication → errata → reprinting.
Chinese homepage: Zhou Jing's Blog
A Web app for algorithm visualization, available in both Chinese and English.
It is impossible to know things of this world unless you know mathematics. ——Roger Bacon, Opus Majus
This is a programming book, but it is different from common programming books. The book not only contains algorithms and code but also incorporates many mathematical proofs, as well as the historical backgrounds of many mathematical discoveries from ancient times to the 20th century, striving to present a more complete knowledge picture for readers.
More specifically, this book focuses on generic programming. This is a programming paradigm that originated in the 1980s and gradually became popular in the 1990s with the birth of the C++ Standard Template Library (STL). We can define it as follows:
Definition 1.1: Generic programming is a programming paradigm that focuses on how to design algorithms and data structures so that they maintain high performance in the widest possible range of application scenarios.



