-
算法谜题
算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。 本书是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。本书中还有一些较新的谜题,其中有一部分谜题被用作知名IT企业的面试题。全书可分为4个部分,分别是概览、谜题、提示和答案。概览介绍了算法设计的通用策略和算法分析的技术,还附带有不少的实例。谜题部分将谜题按照简单、中等难度和较难三个层级分别列出。提示部分依次给出谜题提示,帮助读者找到正确的解题方向,同时仍然为读者留下了独立求解的空间。答案部分则给出了谜题的详细解答。 本书可以为对算法感兴趣的广大读者提供系统丰富而实用的资料,能够帮助读者提升高阶算法思维能力。本书适合计算机专业的高校教师和学生,想要培养和训练算法思维和计算思维的IT专业人士,以及在准备面试的应聘者和面试官阅读参考。 -
复杂性思考
本书的灵感来源于无聊与迷恋的感觉:对常规的数据结构与算法介绍的无聊,对复杂系统的迷恋。数据结构的问题在于教师在教授这门课程的时候通常不会调动起学生的积极性;复杂性科学的问题在于学校通常不会教授这门课程。 2005年,我在欧林学院讲授了一门新课程,学生要阅读关于复杂性的主题,使用Python进行实验,并学习算法与数据结构。当我在2008年再次讲授这门课程时,我写了本书的初稿。 在2011年第3次讲授这门课程时,我准备出版该书并邀请学生们以案例研究的形式提交其工作成果并包含在书中。我在欧林学院找了9位教授成立了项目委员会,选择可供出版的报告。符合标准的案例研究被纳入到本书中。我们将在下一版吸纳来自读者的更多稿件(参见附录A)。 对教师的建议 本书可以用作Python编程与算法的大学中级课程教材。我的教学遵循如下结构: 阅读 复杂性科学涵盖了各种主题。这些主题之间相互关联,但需要花费不少时间才能搞清楚这些联系。为了帮助学生们看到全景,我会向他们介绍一些阅读列表,这些都来自于该领域最流行的研究成果。我的阅读列表以及关于如何使用它的建议在附录B中。 练习 本书提供了一系列练习;很多练习都要求学生重新实现一些开创性实验并对其进行扩展。复杂性吸引人的一个地方在于我们可以通过适当的编程技能与数学知识接触研究前沿。 讨论 书中的主题提出了关于科学哲学的问题,这需要学生们进一步阅读并进行课堂讨论。 案例研究 在我的课堂上,我们将几乎半个学期的时间都用在了案例研究上。学生们经由构思产生过程、形成团队,并在一系列实验上花费6~7周的时间,然后以4~6页可发表的报告形式来呈现其工作成果。 可以通过https://sites.google.com/site/compmodolin了解课程大纲与我的说明。 对自学者的建议 在2009~2010年,我作为Google的一名访问学者在其剑桥办公室工作。在与我共事的软件工程师中,让我印象深刻的一点是他们广博的求知欲以及增长知识与技能的动力。 我希望本书能够帮助像他们一样的人们来探索他们可能遇不到的一些主题与想法,练习Python编程技能,以及学习关于数据结构与算法的更多知识(或者看看有哪些内容不适合放在第1版中)。 本书针对自学者的一些特点有: 技术深度 -
新编实用算法分析与程序设计
本书是一部程序设计竞赛教程。书中首先讲述了算法的基本概念、各种排序与解题的方法及策略,然后论述了初等数论、计算几何学、搜索和图论的有关算法,最后讨论了动态规划。本书不仅从教学的角度详细讲解算法理论,而且从竞赛的角度对经典习题进行详细解析,培养学生灵活运用算法的能力。. 本书既可以作为大专院校计算机专业算法类课程的教材,亦可以作为大中学校计算机竞赛活动的培训教材,还可供计算机软硬件研发人员参考。 -
The Art of R Programming
-
实时碰撞检测算法技术
《实时碰撞检测算法技术》详细阐述了与碰撞检测问题相关的高效解决方案及相应的数据结构和算法,主要包括:碰撞检测系统中的设计问题、数学和几何学入门、包围体、基本图元测试、层次包围体技术、空间划分、BSP树层次结构、凸体算法、基于GPU的碰撞检测、数值健壮性、几何健壮性以及优化操作。另外,《实时碰撞检测算法技术》还提供了相应的算法、代码以及伪代码,以帮助读者进一步理解计算方案的实现过程。 《实时碰撞检测算法技术》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。 -
A Beginner's Guide to R
Based on their extensive experience with teaching R and statistics to applied scientists, the authors provide a beginner's guide to R. To avoid the difficulty of teaching R and statistics at the same time, statistical methods are kept to a minimum. The text covers how to download and install R, import and manage data, elementary plotting, an introduction to functions, advanced plotting, and common beginner mistakes. This book contains everything you need to know to get started with R.