中国空间站24小时直播入口,网站群建设调研报告,网站备案 排名影响,wordpress商城支付宝目录
0的故事
一、按位计数法
二、不使用按位计数法的罗马数字
三、十进制转二进制
四、0所起到的作用
逻辑
一、为何逻辑如此重要
二、兼顾完整性和排他性
三、逻辑
四、德摩根定律
五、真值表
六、文氏图
七、卡诺图
八、逻…
目录
0的故事
一、按位计数法
二、不使用按位计数法的罗马数字
三、十进制转二进制
四、0所起到的作用
逻辑
一、为何逻辑如此重要
二、兼顾完整性和排他性
三、逻辑
四、德摩根定律
五、真值表
六、文氏图
七、卡诺图
八、逻辑表达式
余数
一、余数
二、余数性质
三、更多思考题
四、奇偶校验
五、总结
数学归纳法
一、简介
二、说明
三、定义
排列组合
一、计数
二、计数方法
三、排列组合
递归
一、开头
二、汉诺塔
三、阶乘
四、斐波那契数列Fibonacci sequence
五、分形图fractale
指数爆炸
一、指数爆炸
二、倍数游戏
三、二分法查找
四、对数
五、如何处理指数爆炸
六、总结 0的故事
——无即是有
一、按位计数法
生活中常见的计数法
10进制计数法十进制计数法是世界各国常用的一种记数方法。也是我们从小学就开始学习的计数法。常说“满十进一”这种以“十”为基数的进位制叫做十进制。2进制计数法一打啤酒是12瓶每12瓶就是一打这个就叫做十二进制。 16进制计数法“半斤八两”一词是个常用成语很多人却忘了我们中国所用的称重单位斤和两一斤16两每满16两是一斤这就叫做十六进制。
编程中常见的计数法
2进制计数法二进位计数制仅用两个数码。0和1所以任何具有二个不同稳定状态的元件都可用来表示数的某一位。而在实际上具有两种明显稳定状态的元件很多。8进制计数法使用的数字有0、1、2、3、4、5、6、7共 8种。80的位、81的位、82的位、83的位……基数是816进制计数法使用的数字有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共 16种。160的位、161的位、162的位、163的位……基数是16在16进制计数法中使用 A、B、C、D、E、F有时也使用小写字母 a、b、c、d、e、f来表示 10以上的数字。
二、不使用按位计数法的罗马数字
罗马计数法的特征如下
数位没有意义只表示数字本身。没有0。使用 I (1)、 v (5)、 X (10)、 L (50)、 C (100)、 D (500)、 M (1000来记数。将并排的数字加起来就是所表示的数。
例如3个并排的1( I 表示3并排的 V 和 I ( VI 表示6, VII 表示8。 罗马数字的加法很简单只要将罗马数字并排写就可以得到它们的和。比如要计算2只要将表示1的 I 和表示2的 I 并排写作皿就行了。但是数字多了可就不太简单了。 思考为什么十二写成10而不是102
015不同按位计数法表示
二进制八进制十进制十六进制000011111022211333100444101555110666111777100010881001119910101210A10111311B11001412C11011513D11101614E11111715F
三、十进制转二进制
除二取余
四、0所起到的作用
0的作用站位
在按位计数法中数位具有很重要的意义。即使十位的数字“没有”也不能不写数字。这时就轮到0出场了即0的作用就是占位。换言之0站着一个位置以保证数位高于它的数字不会产生错位。
0的作用统一标准简化规则
“0次方”还将1特意表示成10的0次幂能够将按位计数法的各个位数所对应的大小统一表示成10的n次幂。计算机中计数也是从0开始。
日常生活中的0
日常生活中0表示“无”或“没有”。
逻辑
——真与假的二元世界
一、为何逻辑如此重要
逻辑是消除歧义的工具
我们平时使用的语言——自然语言是极易产生歧义的。就连“或者”一词也不是只有一个正确意义。然而规格说明书记述如何编写程序文件一般都是用自然语言描述的。因此程序员必须走出自然语言歧义的迷宫谨慎解读规格说明书确定其正确的意义。“逻辑”是消除自然语言歧义、严密准确地记还事物的工具。
二、兼顾完整性和排他性
有没有“遗漏”有没有“重复”画一根数轴辅助思考注意边界值使用 if 语句分解问题逻辑的基本是两个分支
三、逻辑
逻辑非!不是 A逻辑与A 并且 B 逻辑或|||A 或者 B异或A 或者 B 但不都满足相等A 和 B 相等蕴涵若A 则 B
四、德摩根定律
非(P 且 Q) (非 P) 或 (非 Q)非(P 或 Q) (非 P) 且 (非 Q)
真值证明
假设你要证明 (A v B) A ^ B则可构造真值表如下 A B AvB (AvB) A B A^B 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0
可见在A和B的所有可能取值下 (A v B) 与 A ^ B 的值都相同故要证明的式子成立。 对于 (A ^ B) A v B 的情形可以同样的方法证明。
逻辑证明
设x属于Cu(A∪B)则x属于u却不属于A∪B所以x属于u却不属于A也不属于B故x属于CuA且属于CuB故x属于CuA∩CuB反过来式子仍然成立同理另一式也成立
五、真值表
表征逻辑事件输入和输出之间全部可能状态的表格。列出命题公式真假值的表。通常以1表示真0 表示假。命题公式的取值由组成命题公式的命题变元的取值和命题联结词决定命题联结词的真值表给出了真假值的算法。
真值表是在逻辑中使用的一类数学表用来确定一个表达式是否为真或有效。 表达式可以是论证 表达式的合取它的每个结合项(conjunct)都是最后要做的结论的一个前提。
六、文氏图
文氏图英语Venn diagram或译Venn图、 [1] 温氏图、维恩图、范氏图是在所谓的集合论或者类的理论数学分支中在不太严格的意义下用以表示集合或类的一种草图。
它们用于展示在不同的事物群组集合之间的数学或逻辑联系尤其适合用来表示集合或类之间的“大致关系”它也常常被用来帮助推导或理解推导过程关于集合运算或类运算的一些规律。
七、卡诺图
卡诺图是逻辑函数的一种图形表示。卡诺图是一种平面方格图每个小方格代表逻辑函数的一个最小项故又称为最小项方格图。
方格图中相邻两个方格的两组变量取值相比只有一个变量的取值发生变化按照这一原则得出的方格图全部方格构成正方形或长方形就称为卡诺方格图简称卡诺图。
八、逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子称为逻辑表达式。逻辑表达式的值是一个逻辑值即“true”或“false”。C语言编译系统在给出逻辑运算结果时以数字1表示“真”以数字0表示“假”但在判断一个量是否为“真”时以0表示“假”以非0表示“真”。
余数
——周期性与分组
一、余数
概念
余数就是做除法预算时剩下的数。周期性和分组是余数性质的体现。
作用
当数据很大时找到规律使用余数获得正确的答案。也就是说运用余数大数值得问题就能简化成小数值问题。
二、余数性质
问题 : 今天是星期日100天以后是星期几
答案100%72 星期二
周期性
一周有7天。每过7天变循环到相同的星期数。
分组
余数的力量——将较大的数字除一次就能分组
数06分别代表星期日星期六为一组。
三、更多思考题
加大难度
问题 : 今天是星期日10的100次幂天以后是星期几
答案100%64 星期四 可以直接计算吗当然不行数太大。那我们该怎么做先不急求出答案先找规律。
规律
1天以后 1%71 星期一
10天以后 10%73 星期三
100天以后 100%72 星期二
1000天以后 1000%76 星期六
10000天以后 10000%74 星期四
100000天以后 100000%75 星期五
1000000天以后 1000000%71 星期一
省略…
余数以132645…的顺序循环。
数05分别代表星期一、星期三星期二、星期六、星期四、星期五为一组。
再加大难度
问题 : 1234567的987654321次幂个位数是多少
答案987654321%41 个位数为7 通过试算找出规律吗1234567的2次幂数就很大了。
那我们该怎么做能影响乘方结果个位数的只有个位数。
规律
7的0次幂 1
7的1次幂 7
7的2次幂 9
7的3次幂 3
7的4次幂 1
7的5次幂 7
7的6次幂 9
省略…
个位以1793…的顺序循环。
数03分别代表1、79、3为一组。
四、奇偶校验
作用
数据传输过程会受到外界干扰造成数据的改变。通常让数据流的前面或者后面一位成为奇偶校验位用来检测数据传输过程中是否发生变化。
奇校验
比如Ascll码我们知道它使用了7位二进制表示了128个常用的字符。现在我们令它的最高位成为奇偶校验位。在发送前通过改变奇偶校验位是0还是1从而使得8位数据中1的个数为奇数。 比如0101011它包含了4个1在发送前我们需要在最高位也就是我们约定的奇偶校验位也加上一个1。如此一来数据中总共包含了5个1。 在数据传输过程中如果受到外界干扰其中任意一个0变为1则1的个数变为了偶数6。如果其中任意一个1变为了0则1的个数也变为了偶数4。 如此一来接收方便可以通过检查1的个数是否为奇数来确保数据是否发生了改变。如果检查的1的个数是奇数就是正确的数据。如果是偶数说明数据发生了改变就丢弃它。
偶校验
偶校验和奇校验一样这不过在发送的时候校验位要添加的值要确保数据中1的个数是偶数。然后再接收方要检查1的个数是不是偶数如果是偶数就是正确的数据否则数据发生了改变。
使用奇校验还是偶校验由通信双方规定。它们的区别在于使用奇校验发送的数据中不会全是0。
五、总结
对于难以处理的庞大数值只要发现其周期性并使用余数就能够简化问题。此外还可以根据余数结果的差异将许多事物进行分组。只要运用奇偶性就能省略反复试验的过程。当我们“想要详细地研究”事物时往往容易陷人“想正确把握所有细节”的思维。但是像奇偶性校验那般较之“正确地把握”有时“准确地分类”更为有效。人们只要发现了周期性和奇偶性就能将大问题转换为小问题来解决。余数就是其中一种重要的武器。
感兴趣的同学
可以自行百度寻找恋人、铺设草席、哥尼斯堡七桥一笔画问题。
数学归纳法
——如何征服无穷数列
一、简介
数学归纳法是证明某断言对于0以上的所有整数(0,1,2,3,…都成立的方法。0以上的整数0,1,2,3,…有无穷个但若使用数学归纳法只需要经过“两个步骤”就能证明有关无穷的命题。
二、说明
123…100
大家都知道1加到100是5050。如果通过一步一步计算需要很长的时间。那么有没有一个方法快速的求出答案。
德国数学家高斯Karl Friedrich Gauss1777-1855后来成为了历史上著名的数学家。在9岁时遇到了同样的问题却马上得出了答案。当时他既没有计算器也没用计算机是不是很厉害啊那么他究竟是怎么算出来的呢
小高斯是这么想的
123…100正向计算和1009998…1逆向计算的结果是相同的。那么如果两者相加就是100个101100×10110100。再除于2获得一半的值就是5050。真是妙不可言啊
小哆啦是这么想的
1100是101299也是101…
那么101有100÷250个
所以答案是101×505050
多米诺骨牌
想要推到所有的多米诺骨牌我们会怎么做呢
大家会说把它们排成前面一个倒下就能顺次带倒下一个骨牌推到第一个骨牌就可以了。是的没错就是这样。
以上两个案例就体现了数学归纳法的“两个步骤”。
三、定义
数学归纳法是证明有关整数的断言对于0以上的所有整数0,1,2,3,…是否成立时所用的方法。
假设现在要用数学归纳法来证明“断言 P ( n 对于0以上的所有整数 n 都成立”。数学归纳法要经过以下两个步骤进行证明。
基底 base )证明“ P (0成立”归纳 induction )要证明无论 k 为0以上的哪个整数“若 P ( k 成立则 P ( k I 也成立”。
若步骤1和步骤2都能得到证明就证明了“断言 P ( n 对于0以上的所有整数 n 都成立”。
排列组合
——解决计数问题的方法
一、计数
概念
有人会说计数有什么概念可言我们从小就学会“数数”再简单不过了。但是如果数非常大的时候计数结果的正确性我们就很难保证了。这时我们就需要通过一些方法获得正确的计数结果。计数就是通过加法法则、乘法法则、置换、排列、组合等计数方法。获得准确的计数结果。
注意
我们不需要死记硬背计数方法而是注意这些方法是如何推导出来的。
注意“遗漏”和“重复”
计数和第二期内容讲的逻辑是一样的遗漏就是没有数全所有的数重复则和遗漏恰恰相反是将已经数了的又多数一次或几次。所以有“遗漏”或“重复”就不能获得准确的计数结果。
举个例子
爸爸是大学毕业生开发工程师
妈妈是大学毕业生测试工程师
舅舅是高中毕业生饭店老板
初中以上学历的学历的是3人根据条件判断不能有遗漏。即是大学毕业生又是开发工程师的是1人不能重复计算因为是同一人。
注意不要忘记0
我们回顾一下0所起到的作用。0的作用站位、统一标准简化规则。在计算机中0起到非常重要的作用。不仅在二进制排序、集合等等都有涉及。
问题 : 间隔1米站1位同学那么10米需要几位同学
需要11位同学因为第一位同学不需要间距10÷1是10是间隔数而不是人数。本题和植树问题相似不要忘记0的重要性。
二、计数方法
加法法则
要数出分为两个集合的事物时可以使用加法法则。但是加法法则只在集合中没有重复元素的条件下成立。也就是说使用加法法则时一定要注意是否有重复。
问题 : 113数字中2的倍数和6的倍数的有多少
2的倍数有2,4,6,8,10,12共6个
3的倍数有3,6,9,12共4个
即是2的倍数又是3的倍数有6,12共2个
因此有64-28
既不是2的倍数也不是3的倍数。的倍数的个数加上3的倍数的个数再减去重复的个数就是容斥原理the rinciple of inclusion and exclusion。这是“考虑了重复元素的加法法则”。在使用容斥原理时必须弄清“重复的元素有多少”。这也是“认清计数对象性质”的一个例子。
乘法法则
需要根据两个集合进行“元素配对”时可以使用乘法法则。
举2个例子
大家都非常熟悉扑克牌有4种花色每个花色有A、210、J、Q、K共13张牌。除大王牌一共是4×1352张牌。有3个骰子摇骰子3个骰子摇出来的数形成3位数共能形成6×6×6216种。也可以理解为6的3次幂每个骰子出来的结果有166种情况3个骰子就有6的3次幂种。
置换
将 n 个事物按顺序进行排列称为置换substitution。
举个例子
A、B、C这3张牌有3×2×16种排法。因为第1张牌可以从A、B、C任选。而第2张牌只能从剩下2张牌中选第3张牌没得选。
问题扑克牌不包括王牌摆成一排有多少种排法呢
和↑例子思路相同。
52!52×51×50×…×1 数非常大
这里52称为52的阶乘factorial是因乘数呈阶梯状递减而得名。 0! 是多少呢0还是1
三、排列组合
排列
排列permutation和置换类似都需要考虑顺序。区别是置换是排序所有事物而排序是从事物中拿出几个或多个进行排序。
举个例子
在上面置换例子的基础上多了D和E两张牌也就是有5张牌。从5张牌中选择3张牌有如下图所示种排法。P是排列首字母大写。 组合
组合combination和置换、排列不同不考虑排序内容一样就是相同。
举个例子
5张里面取3张的组合的总数写作C是combination的首字母。计算如下。
5张里面取3张的组合的总数 5张里面取3张的排列总数考虑顺序排列的数 / 3张的置换总数重复度
置换、排列和组合的关系
置换可以看作是排列的一个特例即当排列中选取的元素数目等于集合中元素的总数时排列就变成了置换。排列和组合虽然都涉及从n个不同元素中取出m个元素但排列关注的是元素的有序排列而组合关注的是元素的无序组合。简单来说排列是需要考虑顺序的组合不需要考虑顺序仅考虑选择对象。
递归
——自己定义自己
一、开头
“GUN is Not UNIX”这里GUN是什么的缩写是“GUN is Not UNIX”的缩写。那第一个单词GUN是什么的缩写那也是“GUN is Not UNIX”的缩写。是不是一脸懵这就是递归。在开发中常常使用递归方法调用自己。使用递归时要注意逻辑不然有可能死循环。
二、汉诺塔
有可能大家没有听说过“汉诺塔”这个词汇。但是大家一定玩过或听说过这个游戏。是一个由法国数学家爱德华.卢卡斯Edourd Lucas于1883年发明的游戏。
游戏规则
有3个柱子1个柱子上有圆盘从上往下圆盘逐渐变大。需要把所有的圆盘从一个柱子上移动到另一个柱子上。
规则1一次只能移动一个圆盘。规则2圆盘上不能放置比自己大的圆盘。
问题 : n层汉诺塔至少要移动多少次呢
2的n次幂减1
我们先笼统的看一下需要进行的步骤。因为规则2的限制需要将最大圆盘以上的圆盘移动到临时柱子上。我们先将n-1层汉诺塔的移动次数用H(n-1)函数表示。最大圆盘只要移动一次就能放到目标柱子上。然后我们需要将剩余的圆盘从临时柱子上移动到目标柱子。同样用H(n-1)函数表示。所以总的移动次数H(n)H(n-1)1H(n-1)。我们将这种 H(n) 和 H(n-1) 的关系式称为递推公式recursion relation , recurrence。
我们先依次计算一下
0个圆盘H(0)0没有圆盘不需要移动。
1个圆盘H(1)H(0)1H(0)0101只需要移动最大圆盘。
2个圆盘H(2)H(1)1H(1)1113需要将上面的圆盘先移动到临时柱子再移动到目标柱子。
3个圆盘H(3)H(2)1H(2)3137
…
6个圆盘H(6)H(6)1H(6)3113163
在来回移动圆盘的过程中你一定会觉得“在重复做相似的事情”。之所以会产生这种感觉是因为我们有“发现规律的能力”。这种感觉很重要。
我们看一下依次计算结果0,1,3,7,15,31,63…
我相信直觉敏锐且聪明的你已经找到规律 0 1 - 1 1 2 - 1 3 4 - 1
…
63 64 - 1
获得表达式H(n)2的n次幂-1这种只使用 n 表示 H(n) 的式子叫作解析式。
总结
将 n 层汉诺塔转换为 n-1 层汉诺塔的问题即在问题中找出递归结构。虽然不知道 H(n-1) 的结果但将它当作“已知条件”来运用。接下来就根据递推结构建立递推公式求出答案。这就是递归的思维方式。
三、阶乘
我们先看一下上一期遗留的问题。
n! n × (n-1) × (n-2) × … × 2 × 1
按照↑的定义似乎“0的阶乘”意义不明确。
递归定义阶乘
阶乘的递推结构
n! n × (n-1)!
阶乘的递推公式
3! 3 × 2!
2! 2 × 1!
1! 1 × 0!
0! 1
为了顺利进行上诉递归定义所以 0! 1。大家是否发现阶乘的递归定义和数学归纳法比较类似呢n0时相当于数学归纳法的步骤1基底, n 1时相当于步骤2归纳。若用多米诺骨牌来打比方“正确地定义0!”就相当于“确保推倒第1张多米诺骨牌”。
递归recursion和归纳induction在本质上是相同的都是“将复杂问题简化”。
四、斐波那契数列Fibonacci sequence
数列0,1,1,2,3,5,8,13,21,34,55,89,… 是在13世纪由数学家斐波那契Leonardo Fibonacci 1170-1250发现的因此被命名为斐波那契数列。
斐波那契数列只要是程序员都会了解并掌握。原题是不断繁殖的动物动物出生后第二天开始每天1只的速度繁殖下一代不考虑死亡。动物数量呈爆发式增长。
递归思路和汉诺塔相近且网上有很多。
F(n) F(n-1) F(n-2)
F(0) 0
F(1) 1
F(2) F(n-1) F(n-2) 1 0 1
F(3) F(n-1) F(n-2) 1 1 2
…
感兴趣的同学
可以继续计算一下还可以百度摆砖头、创作旋律等递归。
五、分形图fractale
含有递归结构的递归图形叫做分形图。插入图片来自于网络。
杨辉三角帕斯卡三角形
百度百科解释杨辉三角是二项式系数在三角形中的一种几何排列中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲帕斯卡1623----1662在1654年发现这一规律所以这个表又叫做帕斯卡三角形Pascals triangle。帕斯卡的发现比杨辉要迟393年比贾宪迟600年。 谢尔平斯基三角形
谢尔平斯基三角形英语Sierpinski triangle是一种分形由波兰数学家谢尔宾斯基在1915年提出。 递归图形 感兴趣的同学
还有很多很多递归图形可以自行查找。
指数爆炸
——如何解决复杂问题
一、指数爆炸
概念
“指数爆炸”所谓爆炸其实不是真的爆炸。指数爆炸blow up是一个数学术语即指数函数的 “爆炸性” 增长。如果遇到的问题中包含指数爆炸就要多加注意了。因为一旦处理不好该问题可能会膨胀到难以收拾的地步。相反若能巧妙利用 “指数爆炸”它将成为解决难题的有力武器。
我们先来体验一下指数爆炸的威力。
问题假设现在有一张厚度为 1 mm 的纸纸质非常柔软可以对折无数次。毎对折1次厚度便翻一番。已知地球距月球约 390000 km请问对折多少次后厚度能超过地月距离呢
◆提示 这个问题看上去有点异想天开。即从 1 mm 开始反复进行厚度翻倍的 “倍数游戏”要重复多少次才能超过 390000 km。
我们先凭感觉估计一下需要对折多少次才能达到月球。一万次差不多吧哈哈 学过的小伙伴们应该已经知道答案了。经过计算发现仅仅对折 39 次就让 1 mm 的纸的厚度达到了地球到月球的距离实在是让人大吃一惊
仅仅反复 “折纸”数值不断翻倍就很快得出了非常庞大的数值。我们把这种数值息这增长的情况称为指数爆炸。之所以称为指数爆炸是因为折纸时厚度2的n次幂的指数 n 就是对折次数。根据上下文也可以称为指数式增长。
虽然把 1 mm 的纸仅仅对折 39 次就能从地球到达月球。但是我们对折 8 次已经是极限。所以对折 39 次只是理论上来说是可以达到的而现实是做不到的。如同给我一个支点就能撑起整个地球。
二、倍数游戏
指数爆炸引发的难题
我们开发程序往往都需要测试如果测试不完备就会遗留Bug程序就有可能崩溃crash或挂起freeze。
举个例子
程序中有多个按钮每个按钮都有ON、OFF两种状态即开和关。每一种开关组合对应一个指令也可以说是功能。按钮个数为 3 个时只有 8 种组合。但是如果有 30 个按钮就如折纸一样会有爆炸性增长。30 个按钮说起来不多开关组合却达到了 10亿 以上。综上所述穷尽测试是不现实的。因此通常在软件开发中不进行这种 “一个不漏” 的全覆盖测试而是只挑选出可能对功能有影响的按钮进行测试。这时如何选出要测试的范围是很重要的。
三、二分法查找
利用指数爆炸
二分法查找binary search是在有序数据中找出目标数据时“总是判断目标数据所在范围内正中间数据”的方法。也叫作 “二分法” “二分查找”。“二分法查找” 的递推公式和“汉诺塔”的递推公式相同不过 n 0 时的值不同。P(n) 2的n1次幂 - 1通过 n 次查找可以在2的n1次幂 - 1数中找到答案。
“二分法查找” 使用了指数爆炸的方法进行查找这句话的意思是每次查找查找范围会缩小一半儿。换言之每判断 1 次就能从近 2 倍的查找对象中找出目标数据。
四、对数
掌握指数爆炸的工具
一旦发生指数爆炸数字就会变得非常大。数字非常庞大书写和处理起来非常麻烦。我们总是会把复杂的问题转换为多个简单的问题或换一种方式来解决。
16、17世纪之交随着天文、航海、工程、贸易以及军事的发展改进数字计算方法成了当务之急。约翰·纳皮尔John Napier1550~1617正是在研究天文学的过程中为了简化其中的计算而发明了对数。
下面就是对数的表达式 log 是 logarithm 的缩写意为对数。x 叫做对数a 叫做对数的底基数N叫做真数。a 为 10、N 为 100000 时x 就等于 5。或许一看到算式你觉得内容一下子变难理解了其实只要理解为 “对数是乘方的逆运算”就不难理解了。
算尺slide rule或计算尺即对数计算尺是一种模拟计算机通常由三个互相锁定的有刻度的长条和一个滑动窗口称为游标组成。在1970年代之前使用广泛之后被电子计算器所取代成为过时技术。
五、如何处理指数爆炸
遇到任何问题只要具备 “判断是否已成功破解的方法” 和 “按顺序试解的步骤” 就可以使用暴力破解法。人工智能的先驱马文·明斯基 Marvin Minsky 将其命名为 “解迷原理”。
四种处理方法
极力求解变相求解近似求解概率求解
六、总结
随着时代的发展计算机也在飞速的发展处理数据越来越快。比方说暴力破解密码从理论上来说是可以的。但是需要很长的时间不符合我们的要求。同样数据以指数爆炸增长的时代暴力查找目标数据是不现实的。
我们用手机、电脑等电子产品都追求流畅。所以如何快速的处理庞大的数据非常的关键。即使CPU处理速度非常快暴力查找目标数据也会耗费很长的时间。我们可以利用指数爆炸来减少查找目标数据次数二分法查找也可以进行加密。
二分法查找虽然大大缩短查找时间。但是必须满足有序的的条件。所以不能满足所有的查找。算法就是一种提高计算效率的方法满足我们即快速又准确处理数据的要求。
在生活中也是同样的道理。遇到问题我们应该先考虑同样的问题是不是已经有解决的办法。如果有办法就按部就班可以快速解决问题。如果没有就考虑怎样把问题转换为我们可以解决的小问题把问题逐个击破。