基本信息
- 作者: 吴永辉 王建德 [英] 马库斯·杜·索托伊(Marcus du Sautoy)
- 译者: 王晓燕 陈浩 程国建
- 出版社:机械工业出版社
- ISBN:9782004249305
- 上架时间:2020-4-24
- 出版日期:2020 年3月
- 开本:16开
- 页码:850
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 综合 > 高级程序语言设计

编辑推荐
---------------------------算法设计编程实验(第2版)---------------------------
适用于ACM-ICPC、IOI等各类
程序设计竞赛的训练
精析典型赛题,并给出有详细注释的参考程序
系统、高效地训练思维能力和编程能力
---------------------------天才与算法:人脑与AI的数学思维---------------------------
我们即将进入一个由算法主导和支配的世界,AI将在互联网、绘画、音乐、写作等全方面挑战人类的创造力和想象力。
索托伊用数学思维帮助我们理解算法,引领人们认知创造力的本质,帮助人类创造一个人与机器共存的美好未来。
内容简介
计算机书籍
---------------------------算法设计编程实验(第2版)---------------------------
本书从ACM-ICPC程序设计竞赛等各种程序设计竞赛的试题进行了分析和整理,并精选出典型试题进行分类解析,既可用于高校算法、程序设计课程的实验和教学,也可以用于竞赛选手的系统训练。
---------------------------天才与算法:人脑与AI的数学思维---------------------------
算法、计算机代码、人工智能、机器学习都是以数学为核心的。如果想了解掌控现代生活的算法完成这些事情的内在机理,那么就需要理解支撑它们的数学规则。
牛津大学著名数学家马库斯?杜?索托伊(Marcus du Sautoy)在数论方面的研究,让他游走在当今人类数学理解力的最前沿。他一直关注跟踪人工智能将如何丰富和改变甚至颠覆我们对于人类创造力意义的理解。在令人困惑的人工智能科学里可以为各位导航的,很难想象还有谁能更出其右。
在本书中,作者思考了人工智能对创造力的未来意味着什么。从洛夫莱斯的预言到AlphaGo与人类博弈并“战胜人类”,小到择偶、大到向公众发布新闻,从数学到文学,从音乐到绘画, Google搜索引擎的“爬虫算法”,网飞公司为用户推荐电影,“波洛克化器”可以制作出波洛克风格的滴画,机器从J?K?罗琳的灵感中衍生出以假乱真的续集,而音乐创作算法“艾米”成功地愚弄了一大帮研究巴赫的专家。人工智能和机器学习的魅影在这些领域里潜行。但是,这些程序只是进行模仿,还是它们已经具备了创造所需的所有条件?
马库斯认为,要回答这个问题,我们就需要了解驱动它们的算法是如何工作的——这又让他回到了数学的领域。在其中探索算法的谜题、未知却又引人入胜的可能性。
本书为我们展现了人工智能是如何逐步变得强大,怎样支持我们人类的创造力,以及它们开始进行创造性的艺术创作。引导读者去认知人类创造力的本质,探索了算法、数学思维和艺术创作之间的关系,并为未来人类与机器的共生关系描绘出一个更加积极、出人意料的愿景。
牛津大学著名数学家马库斯?杜?索托伊(Marcus du Sautoy)在数论方面的研究,让他游走在当今人类数学理解力的最前沿。他一直关注跟踪人工智能将如何丰富和改变甚至颠覆我们对于人类创造力意义的理解。在令人困惑的人工智能科学里可以为各位导航的,很难想象还有谁能更出其右。
在本书中,作者思考了人工智能对创造力的未来意味着什么。从洛夫莱斯的预言到AlphaGo与人类博弈并“战胜人类”,小到择偶、大到向公众发布新闻,从数学到文学,从音乐到绘画, Google搜索引擎的“爬虫算法”,网飞公司为用户推荐电影,“波洛克化器”可以制作出波洛克风格的滴画,机器从J?K?罗琳的灵感中衍生出以假乱真的续集,而音乐创作算法“艾米”成功地愚弄了一大帮研究巴赫的专家。人工智能和机器学习的魅影在这些领域里潜行。但是,这些程序只是进行模仿,还是它们已经具备了创造所需的所有条件?
马库斯认为,要回答这个问题,我们就需要了解驱动它们的算法是如何工作的——这又让他回到了数学的领域。在其中探索算法的谜题、未知却又引人入胜的可能性。
作译者
---------------------------天才与算法:人脑与AI的数学思维---------------------------
[英] 马库斯•杜•索托伊(Marcus du Sautoy) 著:作者简介
马库斯?杜?桑托伊(Marcus du Sautoy)
◇ 英国皇家学会会士
◇ 美国数学会会士
◇ 牛津大学西蒙尼公众理解科学教授
◇ 大英帝国勋章获得者
◇ 英国皇家学会迈克尔?法拉第奖获得者
◇ 伦敦数学协会贝维克奖获得者
作者被誉为科学王国的大使,他创造了“流行数学”的概念,将复杂的数字和数学概念用形象生动、通俗易懂的语言表达出来。他的演讲不但生动有趣,更会让你意想不到地发现利用数学预见未来的方法,很像是国内流行的“百家讲坛”式的学者。他常为《泰晤士报》和《卫报》写文章,也为电台和电视台作评论,同时与英国BBC广播公司保持长期合作。2001年,他赢得了伦敦数学会的贝维克奖(Berwick Prize)。2004年,他被英国《周日独立报》评为英国最杰出的科学家之一。
作者不仅在数学方面有着深厚的造诣,对人工智能算法有着独到的理解,在本书中,作者在写作、音乐、绘画等艺术创造方面有着非凡的见解。阅读本书,你将会惊叹读者思维之美妙、见识之广博,更会惊叹人类的创造力有着如此严密的逻辑和音符般的节奏。
目录
---------------------------算法设计编程实验(第2版)---------------------------
前 言
第1章 求解Ad Hoc类问题的编程实验 1
1.1 机理分析法的实验范例 1
1.2 统计分析法的实验范例 5
1.3 相关题库 9
第2章 模拟法的编程实验 31
2.1 直叙式模拟的实验范例 31
2.2 筛选法模拟的实验范例 46
2.3 构造法模拟的实验范例 56
2.4 相关题库 60
第3章 数论的编程实验 72
3.1 素数运算的实验范例 72
3.1.1 使用筛法生成素数 72
3.1.2 测试大素数 79
前言
---------------------------算法设计编程实验(第2版)---------------------------
本书是“大学程序设计课程与竞赛训练教材”系列著作中的第2部。我们编著这一系列著作的指导思想如下。
(1)程序设计竞赛是“通过编程解决问题”的竞赛。国际大学生程序设计竞赛(Inter-national Collegiate Programming Contest,ICPC)和中学生国际信息学奥赛(International Olympiad in Informatics,IOI)在20世纪80年代中后期走向成熟,30多年来,累积了海量的试题。这些来自全球各地、凝聚了无数命题者的心血和智慧的试题,不仅可以用于程序设计竞赛选手的训练,而且可以用于教学,以系统、全面地提高学生编程解决问题的能力。
(2)我们认为,评价一个人的专业能力,要看这个人的两个方面:1)知识体系,即他能用哪些知识去解决问题,或者说,他所真正掌握并能应用的知识,而不仅仅是他学过的知识;2)思维方式,即他在面对问题(特别是不太标准化的问题)的时候,解决问题的策略是什么?对于程序设计竞赛选手所要求的知识体系,可以概括为1984年图灵奖得主Niklaus Wirth提出的著名公式“算法+数据结构=程序”,这也是计算机学科知识体系的核心部分,因此本系列的前两部著作分别是《数据结构编程实验》和《算法设计编程实验》。对于需要采用某些策略进行求解的程序设计试题,比如,不采用常用的数据结构或者需要优化解题的算法,我们进行分析整理,编写了本系列的第3部著作《程序设计解题策略》。
(3)从本质上说,程序设计是技术,所以,首先牢记学习编程要不断“Practice, Practice,
Practice”!本系列选用程序设计竞赛的大量试题,以案例教学的方式进行教学实验并安排学生进行解题训练。其次,“Practice in a systematic way”。本系列的编写基于传统的教学大纲,以系统、全面地提高学生编程解决问题的能力为目标,以程序设计竞赛的试题及详细的解析、带注释的程序作为实验,在每一章的结束部分给出相关题库及解题提示,并对大部分试题给出官方的测试数据。
2013年,我们在机械工业出版社出版了《算法设计编程实验:大学程序设计课程与竞赛训练教材》。2018年,我们在CRC Press出版了该书的英文版《Algorithm Design Practice: for Collegiate Programming Contest and Education》。此外,我们还在中国台湾地区出版了繁体中文版。
本书的第1版是在复旦大学程序设计集训队长期活动的基础上编写而成的,共分8章,主要内容如下:
第1章“求解Ad Hoc类问题的编程实验”:介绍了机理分析法和统计分析法,引导读者在没有经典和模式化算法可对应的情况下,学会自创简单的算法。
第2章“模拟法的编程实验”:引导读者按照题意设计数学模型的各种参数,观察变更这些参数所引起的过程状态的变化,在此基础上展开算法设计。
第3章“数论的编程实验”和第4章“组合分析的编程实验”:这两章凸显了数论和组合分析知识在算法中的应用。其中,第3章围绕初等数论中的素数运算、求解不定方程和同余方程、应用积性函数等问题展开实验。第4章介绍在编程求解组合类问题时如何计算具有某种特性的对象个数,如何将它们完全列举出来,如何使用抽屉原理解决存在性问题,如何使用容斥原理计算多个集合并的元素数,如何使用Pólya定理对一个问题的各种不同的组合状态计数。
第5章“贪心法的编程实验”和第6章“动态规划方法的编程实验”:在求解具备最优子结构特征的问题时,这两种方法是最常用、最经典的思想方法,但适用场合不同,既有相同点又有区别之处。
第7章“高级数据结构的编程实验”:选择在一般数据结构教材中没有出现但很有用的一些知识,例如后缀数组、线段树、欧拉图、哈密顿图、最大独立集、割点、桥和双连通分支等内容展开编程实验。
第8章“计算几何的编程实验”:计算几何学是算法体系中一个重要的组成部分,也是先前算法教材中最薄弱的环节。该章开展点线面运算、扫描线算法、计算半平面交、凸包计算和旋转卡壳算法等实验。
近来年,我们使用本书第1版的中、英文版在全球高校进行教学,根据读者和学生的反馈,我们对本书第1版的内容进行了修订,形成了第2版。我们除了修正第1版中的小错误,以及改进一些表述之外,还做了如下较大改进:
媒体评论
---------------------------算法设计编程实验(第2版)---------------------------
本书基于作者20余年来总结的编程知识体系和行之有效的编程能力训练方法,以ACM-ICPC、IOI等各类大型程序设计竞赛的经典试题为素材编写而成,通过启发式、案例化的教学,系统、全面地培养读者编程解决问题的能力。本书不仅可以作为ACM-ICPC、IOI等程序设计竞赛的训练教程,亦可作为高校程序设计相关课程的实践教材以及对编程感兴趣的读者的自学读物。
本书特色
从ACM-ICPC、IOI等各类国内外程序设计竞赛中精选300余道典型赛题,并归为Ad Hoc、模拟、数论、组合分析、贪心、动态规划、高级数据结构、计算几何八类,使读者掌握各类经典问题的思考方法和解题策略。
将150余道试题作为范例试题,每道试题不仅有详尽的试题解析,还给出有详细注释的参考程序;其他试题为题库试题,每道试题给出清晰的提示,使读者进一步训练解题策略。
与上一版相比,数论、组合分析两章通过程序设计竞赛试题及其解析对相关知识点进行了全覆盖,贪心、动态规划两章则加强了对经典问题的解析。
本书给出所有试题的英文原版以及大部分试题的官方测试数据和解答程序,读者可登录华章网站下载。
---------------------------天才与算法:人脑与AI的数学思维---------------------------
段永朝 “信息社会50人论坛”执行主席,苇草智酷创始合伙人
被誉为牛津“科学大使”的索托伊,将数学家、爵士乐手、作曲家、小说家、诗人、画家、软件工程师等人一系列创造行为的共同“原码”展现在读者面前,这一“原码”是人类创造力的源泉,也是鉴赏和领略AI无限魅力的金钥匙。
宋继强 英特尔中国研究院院长