geekdoc-python-zh/docs/pythonlibrary/book-review-think-complexit...

2.7 KiB

书评:思考复杂性——复杂性科学和计算建模

原文:https://www.blog.pythonlibrary.org/2012/08/06/book-review-think-complexity-complexity-science-and-computational-modeling/

艾伦·唐尼的《思考复杂性》是为中级大学水平的学生写的。它有 Python 代码的例子,并谈论了很多算法。就我个人而言,我认为它可能适合作为 300 级或更高的课程,因为所有的数学和科学相关的东西。

作者到处跑,经常参考维基百科。第一章是关于复杂性科学,它似乎倾向于“质疑一切”和“提出问题”的想法,而不是真正关心答案。第二章是关于图形的,但不是常规意义上的图形。相反,作者指的是一个“包含离散的、相互联系的元素的系统”,比如地图。第三章是关于算法的分析,有一些关于搜索算法和哈希表的有趣的小研究。

第四章是关于小世界图的,包含了很多像瓦特、斯特罗加兹和迪克斯特拉这样的科学家的参考资料。第五章讨论无尺度网络及其各种类型的分布。第六章介绍了细胞自动机的概念和史蒂夫·沃尔夫勒姆提出的不同层次。这个话题在第七章以生命观念的游戏继续。正如你所看到的,这些章节在内容上有很大的不同,无论是章节之间还是章节内部。它们也很短,因为大多数都在 10 页左右。第 8-10 章讨论了诸如分形、傅立叶变换和基于主体的模型等令人兴奋的话题。最后四章是案例研究。

这本书里没有很多 Python 代码。它主要是一本旨在让读者思考的“思想”书。不过,一些代码示例很有趣。例如,作者教读者如何非常清楚地用 Python 构造一个抽象类,以及如何设计它,使它不能被实例化,而是必须被子类化和重写。作者也有几个使用 SciPy 或 NumPy 的例子来说明他的一些想法,所以这本书可能对科学 Python 程序员最有吸引力。一个好的补充是,作者确实有一些有趣的练习供学生尝试,尽管他没有在书中提供解决方案。我认为在这本书的网站上可以找到一些解决方法。

如果你正在寻找一本相当随意的带有少量代码的科学书籍(或者你只是想学习一点复杂性科学),那么这本书可能适合你。另一方面,如果您希望了解科学界的实际 Python 代码,那么您不会从这项工作中学到太多东西。我知道这与上一段有点矛盾,但是虽然有一些使用 NumPy 和 SciPy 的方程的小例子,但这本书的大部分都是散文。最后,这本书读起来很有趣,但可能不会给你的编程工具箱增加很多东西。

注:我从出版商那里免费得到了这本书