演算法三步
① 兩位數乘兩位數的速算方法,十秒以內算出結果。
當然,這個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.第一步:人帶兩只狼過河再自己返回
第二步:人帶一隻狼過河再自己返回
第三步:人帶兩只羊過河並帶兩只狼返回
第四步:人帶一隻羊過河自己返回
第五步:人帶兩只羊過河