第7章 指数爆炸——如何解决复杂问题
什么是指数爆炸:数字急速增长
思考题:折纸问题
有倍数游戏的地方,就有指数爆炸。
二分法查找——利用指数爆炸进行查找:每判断1次就能筛选出近一半的查找对象(多判断1次就能从近2 倍的查找对象中找出目标数据)。
思考题:寻找犯人
二分法查找(binary search):
在有序数据中找出目标数据时“总是判断目标数据所在范围内正中间数据”的方法。
对数(logarithm)——掌握指数爆炸的工具
对数:数字中0的个数(底、基数);由约翰·奈皮尔(John Napire, 1550-1617)于1614年发现。
对数和乘方的关系:互逆
对数图表
指数法则和对数:将乘法转化为加法计算。
对数和计算尺
计算尺:使用对数进行乘方计算时的一种辅助工具。
密码——利用指数爆炸加密
暴力破解法(brute-force attack)
字长和安全性的关系
如何处理指数爆炸
理解问题空间的大小
4种处理方法:极力求解、变相求解、近视求解、概率求解
相关推荐
C~C++程序员实用大全——C~C++最佳编程指南.pdf(3)
程序员之路——一个老程序员对刚上大学的学弟学妹的忠告.
C_C++程序员面试宝典——第17章_思维拓展,大家共分享
C~C++程序员实用大全——C~C++最佳编程指南
C~C++程序员实用大全——C~C++最佳编程指南
C~C++程序员实用大全——C~C++最佳编程指南
《程序员面试宝典——经典》是一本专门为准备进入IT行业或者寻求职业晋升的程序员量身打造的面试指南。这本书深入浅出地解析了面试中常见的技术问题和面试技巧,旨在帮助读者更好地理解和应对面试挑战。以下是一些...
C~C++程序员实用大全——C~C++最佳编程指南.part5
"程序员实用算法——sourceCode"这个主题涵盖了各种在实际开发中经常遇到的算法,通过源代码的形式来展示这些算法的实现。下面将详细介绍一些重要的算法类型及其应用。 1. 排序算法:包括快速排序、归并排序、冒泡...
C~C++程序员实用大全——C~C++最佳编程指南.part6.rar
【程序员之路———关于代码风格】的探讨主要集中在代码风格的重要性、代码行极限、缩进方式、折行原则以及空格和空行的使用。这些规范对于任何程序员来说都是提高代码可读性和团队协作效率的基础。 1. **代码行...
《C~C++程序员实用大全——C~C++最佳编程指南》是一本为C和C++程序员量身定制的综合教程,旨在提供全面且深入的编程指导。这本书涵盖了从基础知识到高级特性的全面内容,是提升C/C++编程技能的理想资源。 首先,书...
程序员小飞解密——纯新手的我,到底该把宝押在python2还是python3??
《C~C++程序员实用大全——C~C++最佳编程指南》是一本为C和C++程序员量身定制的综合教程,旨在提供全面且深入的编程指导。这本书涵盖了C和C++的基础到高级主题,是提升技能和深入理解这两种语言精髓的重要资源。 ...
在这个“优秀程序员之路——ASP.NET开发经验及技巧大汇总”中,我们将深入探讨ASP.NET的核心概念、开发实践以及各种实用技巧,帮助你提升编程技能,成为一名出色的开发者。 首先,ASP.NET的基础知识是必不可少的。...
《程序员数学3》是一本专为程序员设计的数学学习书籍,其主要目的是帮助读者理解并应用数学在实际编程中的重要性。这本书强调易懂性,通过简洁明了的讲解方式,使得复杂的数学概念变得平易近人。尤其适合那些希望...
"C~C++程序员实用大全——C~C++最佳编程指南"是一部全面覆盖这两种语言的参考资料,旨在帮助程序员提升技能,理解语言的核心概念,并掌握实际编程中的最佳实践。 C语言作为基础,它以其简洁、高效和对硬件的直接...