算法三步
① 两位数乘两位数的速算方法,十秒以内算出结果。
当然,这个10秒不是人人都能达到的。只有经过无数次的反复练习,熟练于心,才能脱口而出,说出答案。我编辑了两个方法,供大家参考!
(一)、任意两位数相乘三步口算法:
计算公式:ab x cd = ac + ad x bc + bd
三步口算法口诀和步骤:
1、 十位数乘十位数,是百位。(有满十的加进千位)
2、个位数和十位数交叉相乘积相加,是十位。(有满十的加进百位)
3、位数乘个位数,是个位。(有满十的加进十位)
例如口算:11×22=? =242,
1、先10位相乘1×2=200,
2、再交叉相乘的和1×2=20,+,1×2=20,=40,
3、最后个位相乘=2,
这样就可以读出来了:=242
这个3步速算法,比常用的列竖式的方法要快一些,对两位数加法的基础要求很熟练,要好好锻炼想象能力,把这个算式在脑海里,或在眼前,形成列竖式一样的一幅图,上下对齐,像写在黑板上一样的效果,这样就能快速提高计算速度了。更多心得,自己开心的去多练习吧!
(二)、两位数相乘的分类口算法
(1)、十几乘十几 。口诀:头乘头,尾加尾,尾乘尾。
例如:13×18=? =234
1、先10位相乘,结果放在百位,1×1=100,(有满十的进千位)。
2、再尾加尾,结果放在10位,3+8=110,(有满十的进百位)。
3、最后尾乘尾,结果放在个位,3×8=24,(有满十的进十位)。
这样就可以读出来了:=234
(2)、头相同,尾和十。(十位数字完全相同,个位数字相加之和等于10)。
口诀:一个头加1后乘另一头,尾乘尾。
例如:32×38=? =1216
1、先一个头加1后乘另一头,结果放在百位,3+1=4,4×3=1200,(有满十的进千位)。
2、最后尾乘尾,结果放在个位,2×8=16,(有满十的进十位)。
这样就可以读出来了:=1216
(3)、头和十,尾相同。(个位数字完全相同,十位数字相加之和等于10)。
口诀:头乘头加尾,尾乘尾。
例如:32×72=?= 2304
1、头乘头加尾,结果放在百位,3×7+2=2300,(有满十的进千位)。
2、尾乘尾,结果放在个位,2×2=4,(有满十的进十位)。
这样就可以读出来了:=2304
(4)、第一个乘数和十,另一个乘数数字相同 。
口诀:和十头加1后乘头,尾乘尾。
例如:28×66=?=1848
1、和十头加1后乘头,结果放在百位,2+1=3,3×6=1800,(有满十的进千位)。
2、尾乘尾,结果放在个位,8×6=48,(有满十的进十位)。
这样就可以读出来了:=1848
(5)、几十 一乘几十 一。
口诀:头乘头,头加头,尾乘尾。
例如:61×51=?=1581
1、头乘头,结果放在百位,3×5=3000,(有满十的进千位)。
2、头加头,结果放在10位,3+5=110,(有满十的进百位)。
3、尾乘尾,结果放在个位,1×1=1,
这样就可以读出来了:=3111
(6)、11乘任意数。
口诀:任意数首尾不动下落,中间之和下拉。
例如:11×5201314=?=57214454
1、首尾不动下落,5(?)4,
2、中间之和下拉,5+2=7,2+0=2,0+1=1,1+3=4,3+1=4,1+4=5,(和满十要进一)
这样就可以读出来了:=57214454
(7)、十几乘任意数 。
口诀:第二乘数首位不动向下落,第一因数的个位乘以第二因数后面每一个数字,加下一位数,再向下落。
例如:18×518=?=9324
1、第二乘数首位不动向下落,5(?)
2、第一因数的个位乘以第二因数后面每一个数字,加下一位数,再向下落,8×5+1=41,8×1+8=16,8×8=64,(和满十要进一)
这样就可以读出来了:=9324
总结一下:
第一种:一招鲜,吃遍天;一指禅,威名杨!好记忆,不怕忘!想要速度快,基础天天练。
第二种:十八般武艺,样样精通!眼疾嘴快脑瓜灵!几天不用,可能就混淆了。速度想要快,熟记规律天天练!
以上有觉得方便的,有觉得麻烦的,各有所长。看各人练习的程度,和喜欢那种方法。不管那种飞速的方法,离不开天天用心的练习。拳不离手,曲不离口,温故而知新。
② python算法设计的步骤有三步分别是
1. 弄清楚题目的意思,列出题目的输入、输出、约束条件
其中又一道题目是这样的:“有一个mxn的矩阵,每一行从左到右是升序的,每一列从上到下是升序的。请实现一个函数,在矩阵中查找元素elem,找到则返回elem的位置。”题设只说了行和列是升序的,我在草稿纸上画了一个3x4的矩阵,里面的元素是1~12,于是我就想当然的认为矩阵的左上角是最小的元素,右下角是最大的元素。于是整个题目的思考方向就错了。
2. 思考怎样让算法的时间复杂度尽可能的小
继续以上面的题目为例子。可以有如下几种算法:
a. 遍历整个矩阵进行查找,那么复杂度为O(m*n);
b. 因为每一行是有序的,所以可以对每一行进行二分查找,复杂度为O(m*logn)。但是这样只用到了行有序的性质。
c. 网上查了一下,最优的算法是从矩阵的左下角开始,比较左下角的元素(假设为X)与elem的大小,如果elem比X大,那么X所在的那一列元素就都被排除了,因为X是该列中最大的了,比X还大,那么肯定比X上面的都大;如果elem比X小,那么X所在的那一行就可以排除了,因为X是这一行里最小的了,比X还小那么肯定比X右边的都小。每迭代一次,矩阵的尺寸就缩小一行或一列。复杂度为O(max(m,n))。
可以先从复杂度较高的实现方法入手,然后再考虑如何利用题目的特定条件来降低复杂度。
3. 编写伪代码或代码
③ 计算机解决问题的三大步骤是
1、分析问题。
用电脑来解决问题时,首先电脑要对问题进行定性、定量的分析,然后才能设计算法。定性分析法是对问题进行“质”的方面的分析,确定问题的性质,定量分析法,是对要解决的问题的数量特征、数量关系与数量变化进行分析的方法。
2、设计算法。
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。
不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
3、编写程序。
设计完算法后,就要使用某种程序设计语言编写程序代码,并最终得到相应结果。编程的语言包括汇编语言、机器语言和高级语言。高级语言中最简单、最常用的是Visual Basic语言和Pascal语言。
(3)算法三步扩展阅读:
人类解决问题:靠知识、见识、常识、经验、直觉、甚至赌博;
计算机解决问题:靠知识库、推理、推演、演绎、计算和预测以及概率分析。
人类会受外界因素和个人情感的干扰,导致同样的条件不同的结果;计算机则不受干扰,满足某个或某些条件,就会执行预先设定的命令。
利用计算机程序解决问题的基本过程:
了解利用计算机解决问题的基本过程。
了解问题分析与算法设计之间的关系。
了解算法的基本特征。
能用自然语言、流程图或伪代码描述算法。
了解程序设计语言产生与发展过程。
④ 已知平行四边形的底为a,高为h,计算它的算法的三步
第一步:输入平行四边形的底a;
第二步:输入平行四边形的高h;
第三步:输出结果。
⑤ 算法的三种基本结构是
算法有顺序结构、条件分支结构、循环结构三种基本逻辑结构。
1、顺序结构:顺序结构是最简单的算法结构,语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的。
它是任何一个算法都离不开的一种基本算法结构。顺序结构在程序框图中的体现就是用流程线将程序框自上而下地连接起来,按顺序执行算法步骤。
2、条件结构:
条件结构是指在算法中通过对条件的判断,根据条件是否成立而选择不同流向的算法结构。
条件P是否成立而选择执行A框或B框。无论P条件是否成立,只能执行A框或B框之一,不可能同时执行A框和B框,也不可能A框、B框都不执行。一个判断结构可以有多个判断框。
3、循环结构
在一些算法中,经常会出现从某处开始,按照一定条件,反复执行某一处理步骤的情况,这就是循环结构,反复执行的处理步骤为循环体,显然,循环结构中一定包含条件结构。循环结构又称重复结构,循环结构可细分为两类:
一类是当型循环结构,如下左图所示,它的功能是当给定的条件P成立时,执行A框,A框执行完毕后,再判断条件P是否成立,如果仍然成立,再执行A框,如此反复执行A框,直到某一次条件P不成立为止,此时不再执行A框,离开循环结构。
另一类是直到型循环结构,如下右图所示,它的功能是先执行,然后判断给定的条件P是否成立,如果P仍然不成立,则继续执行A框,直到某一次给定的条件P成立为止,此时不再执行A框,离开循环结构。
(5)算法三步扩展阅读
共同特点
(1)只有一个入口和出口
(2)结构内的每一部分都有机会被执行到,也就是说对每一个框来说都应当有一条从入口到出口的路径通过它,如图中的A,没有一条从入口到出口的路径通过它,就是不符合要求的算法结构。
(3)结构内不存在死循环,即无终止的循环。
⑥ 算法步骤
上述算法的流程如图4-1所示。
算法从寻找初始可行解开始。通常的做法是,它对应于从松弛变量列形成的基底。如果没有初始可行解存在,则算法在第二步停止。
图4-1 菲力浦的多目标单纯形法计算框图
如果存在一个可行基底。便置计数器b和c分别为1和0。计数器b标识各个基底,计数器c标识对应于非劣势解的基底,在第三步中计算与初始基底对应的解。在第四步中,通过解非劣势性子问题来检查可行解的非劣势性。
算法在第四、五、六步中进行循环,直到发现一个非劣势解。发现后,把这个非劣势解在第七步中打印出来。
为了检查另外的非劣势解,在第八步中求解方向子问题。如果没有合适的(sk)min=0,那么,不存在别的非劣势解,算法停止。但是,如果第九步确定了一个(sk)min=0,且第十步指出对应的xk将引导到一个未探索过的基底,则对应的xk进入基底,转到第七步去打印出这个另外的非劣势解。算法将继续在第七、八、九、十、十一、七步之间进行循环,直到出现没有对应的xk导致未探索基底时为止。
为了进一步理解菲力浦的多目标单纯形法求解的有关步骤,我们考虑上一节中的例子并添加松弛变量来产生初始多目标单纯形表。
极大优势
华北煤田排水供水环保结合优化管理
其中,
华北煤田排水供水环保结合优化管理
满足于约束条件
华北煤田排水供水环保结合优化管理
初始基本可行解在表4-2中列出,初始基底是根据与松弛变量x3、x4、x5相关的列来形成的。从而,算法的第一、二、三步是满足的。
表4-2 初始基本可行解表
接下来,算法确定x1=x2=0是否为非劣势解点。这由解非劣势性子问题来进行。要解这个非劣势性子问题,需要确定(uT+eT)D。矩阵D对应于目标函数行中的非基本列,就是
华北煤田排水供水环保结合优化管理
对于x1=x2=0要是非劣势的,必须存在一个权数集wi=ui+1,使得
华北煤田排水供水环保结合优化管理
或
华北煤田排水供水环保结合优化管理
或
华北煤田排水供水环保结合优化管理
减去剩余变量s1,s2,添加人工变量y1,y2,产生所需要的第一演算阶段单纯形问题:
华北煤田排水供水环保结合优化管理
满足于约束条件
华北煤田排水供水环保结合优化管理
对此非劣势性子问题的初始表如表4-3所示。
表4-3 非劣势性子问题的初始表
把第三行加到第一行上,产生初始可行解,如表4-4所示。
表4-4 初始可行解
根据单纯形法则,u2进入基底,旋转主元是第三行框起来的数2。变换后得表4-5。
表4-5 非劣势解表
此时ymin=0,s1=7/2,u2=1/2,u1=s2=y1=y2=0,于是点x1=x2=0是非劣势解。
我们也注意到,表4-5表明存在正的权数w1=u1+1=1,w2=u2+1=3/2,解x1=x2=0也是下面问题的最优解。这个问题是:
华北煤田排水供水环保结合优化管理
满足于
华北煤田排水供水环保结合优化管理
因此,可以这样说,菲力浦算法允许我们“朝后”应用加权方法:对于一个非劣势解x,确定出一组权数w,它们是在加权方法中用来得出这个非劣势解x所需要的权数。
接下来求解方向子问题,以确定是否存在另外的非劣势解。从表4-5,我们能够看到,有s2=0。于是,如果引入x2将导致一个未探索过的基底,则存在另一个非劣势解点。从表4-2,对x2的旋转主元是第五行中的数字5,这表明新的基底将是x2、x3和x4,它还没有被探索过。
显然没有必要,因为已经确定了将导致另一个非劣势解的xk,但我们现在也能够确定引入x1是否会导致一个非劣势解。这可以通过解下面的方向子问题来进行。这个方向子问题是:
华北煤田排水供水环保结合优化管理
满足于
华北煤田排水供水环保结合优化管理
在第一演算阶段以后(表4-5),得到如下的方向子问题,表4-6所示。
表4-6 方向子问题表
把第2行加到第一行上,产生了表4-7。
表4-7 最优解表
表4-7是最优的,它指出s1=7/2>0,因此引入x1将导致一个有劣势解。
我们现在引入x2。以表4-2第五行的元素为主元进行旋转,得到主问题的第二个表,如表4-8所示,从而,x1=0,x2=72/5是一个非劣势解,把它打印出来。
表4-8 主问题二表
为了检查是否存在别的非劣势解,现在必须重新求解方向子问题。要这样做,必须又一次计算(uT+eT)D,其中的矩阵D此时为
华北煤田排水供水环保结合优化管理
于是,
华北煤田排水供水环保结合优化管理
由此,方向子问题的合适的约束集为
华北煤田排水供水环保结合优化管理
关于目标函数,可以为s1和s5。然而,在前面我们是用x2驱赶x5而得到目前的非劣势解点,因此,易知有s5=0,且把x5带入基底会产生出前面的非劣势解点。从而,仅需对s1检查方向子问题,就是,
华北煤田排水供水环保结合优化管理
满足于
华北煤田排水供水环保结合优化管理
用表的形式,见表4-9。
表4-9 方向子问题表
把表4-9的第2行加到第1行上,得表4-10。对表4-10以第2行第二列元素为主元进行旋转,得到最优的表4-11。从表4-11可以看出,s1=0,这表示此时把x1引入基底将产生另一个非劣势解点。从表4-3可明显看出,旋转主元是4/25,将把x4驱赶出基底。这导致又一个未探索过的基底(x1,x2和x3)和第三个非劣势解点。以4/25为主元旋转,得到下面表4-12中的解:非劣势点x1=7,x2=13。
表4-10 方向子问题过渡表
表4-11 最优解表
表4-12 非劣势解表
继续与前面同样的过程,即求解与表4-12相关的方向子问题,得到s4=0和s5=9/2。引入s4将把x1从基底中驱赶出去并返回到先前的非劣势解。引入x5将把x2从基底中驱赶出去将得到一个有劣势解。这样,算法停止[134]。
⑦ 算法的概念
1.(168+184)÷4=88米/秒........速度和
(168+184)÷16=22米/秒......速度差
(88+22)÷2=55米/秒........快速
88-55=33米/秒..........慢速
如果用设未知数的话, 就设快车速度为X,慢车速度为Y
168+184=4(X+Y)
168+184=16(X-Y)
X=55, Y=33
2.算法步骤如下:
第一步,计算法定工作时间内工资a=8×(60-20)=320(元).
第二步,计算加班工资b=10×20=200(元).
第三步,计算一周内工资的总数c=a+b=320+200=520(元).
第四步,计算这个人净得工资数d=c×(1-10%)=520×0.9=468(元)
3.第一步:人带两只狼过河再自己返回
第二步:人带一只狼过河再自己返回
第三步:人带两只羊过河并带两只狼返回
第四步:人带一只羊过河自己返回
第五步:人带两只羊过河