1. 什麼是數字證書?
數字證書就是網路通訊中標志通訊各方身份信息的一系列數據,其作用類似於現實生活中的身份證。它是由一個權威機構發行的,人們可以在交往中用它來識別對方的身份。
最簡單的證書包含一個公開密鑰、名稱以及證書授權中心的數字簽名。一般情況下證書中還包括密鑰的有效時間,發證機關(證書授權中心)的名稱,該證書的序列號等信息,證書的格式遵循ITUT X.509國際標准。
一個標準的X.509數字證書包含以下一些內容:
證書的版本信息;
證書的序列號,每個證書都有一個唯一的證書序列號;
證書所使用的簽名演算法;
證書的發行機構名稱,命名規則一般採用X.500格式;
證書的有效期,現在通用的證書一般採用UTC時間格式,它的計時范圍為1950-2049;
證書所有人的名稱,命名規則一般採用X.500格式;
證書所有人的公開密鑰;
證書發行者對證書的簽名。
使用數字證書,通過運用對稱和非對稱密碼體制等密碼技術建立起一套嚴密的身份認證系統,從而保證:信息除發送方和接收方外不被其它人竊取;信息在傳輸過程中不被篡改;發送方能夠通過數字證書來確認接收方的身份;發送方對於自己的信息不能抵賴。
2. 為什麼要使用數字證書?
由於Internet網電子商務系統技術使在網上購物的顧客能夠極其方便輕松地獲得商家和企業的信息,但同時也增加了對某些敏感或有價值的數據被濫用的風險。買方和賣方都必須保證在網際網路上進行的一切金融交易運作都是真實可靠的,並且要使顧客、商家和企業等交易各方都具有絕對的信心,因而網際網路電子商務系統必須保證具有十分可靠的安全保密技術,也就是說,必須保證網路安全的四大要素,即信息傳輸的保密性、數據交換的完整性、發送信息的不可否認性、交易者身份的確定性。
信息的保密性
交易中的商務信息均有保密的要求,如信用卡的帳號和用戶名被人知悉,就可能被盜用,訂貨和付款的信息被競爭對手獲悉,就可能喪失商機。因此在電子商務的信息傳播中一般均有加密的要求。
交易者身份的確定性
網上交易的雙方很可能素昧平生,相隔千里。要使交易成功首先要能確認對方的身份,商家要考慮客戶端是不是騙子,而客戶也會擔心網上的商店不是一個玩弄欺詐的黑店。因此能方便而可靠地確認對方身份是交易的前提。對於為顧客或用戶開展服務的銀行、信用卡公司和銷售商店,為了做到安全、保密、可靠地開展服務活動,都要進行身份認證的工作。對有關的銷售商店來說,他們對顧客所用的信用卡的號碼是不知道的,商店只能把信用卡的確認工作完全交給銀行來完成。銀行和信用卡公司可以採用各種保密與識別方法,確認顧客的身份是否合法,同時還要防止發生拒付款問題以及確認訂貨和訂貨收據信息等。
不可否認性
由於商情的千變萬化,交易一旦達成是不能被否認的。否則必然會損害一方的利益。例如訂購黃金,訂貨時金價較低,但收到訂單後,金價上漲了,如收單方能否認受到訂單的實際時間,甚至否認收到訂單的事實,則訂貨方就會蒙受損失。因此電子交易通信過程的各個環節都必須是不可否認的。
不可修改性
由於商情的千變萬化,交易一旦達成應該是不能被否認的。否則必然會損害一方的利益。例如訂購黃金,訂貨時金價較低,但收到訂單後,金價上漲了,如收單方能否認收到訂單的實際時間,甚至否認收到訂單的事實,則訂貨方就會蒙受損失。因此電子交易通信過程的各個環節都必須是不可否認的。
數字安全證書提供了一種在網上驗證身份的方式。安全證書體制主要採用了公開密鑰體制,其它還包括對稱密鑰加密、數字簽名、數字信封等技術。
我們可以使用數字證書,通過運用對稱和非對稱密碼體制等密碼技術建立起一套嚴密的身份認證系統,從而保證:信息除發送方和接收方外不被其它人竊取;信息在傳輸過程中不被篡改;發送方能夠通過數字證書來確認接收方的身份;發送方對於自己的信息不能抵賴。
3. 數字認證原理
數字證書採用公鑰體制,即利用一對互相匹配的密鑰進行加密、解密。每個用戶自己設定一把特定的僅為本人所知的私有密鑰(私鑰),用它進行解密和簽名;同時設定一把公共密鑰(公鑰)並由本人公開,為一組用戶所共享,用於加密和驗證簽名。當發送一份保密文件時,發送方使用接收方的公鑰對數據加密,而接收方則使用自己的私鑰解密,這樣信息就可以安全無誤地到達目的地了。通過數字的手段保證加密過程是一個不可逆過程,即只有用私有密鑰才能解密。
在公開密鑰密碼體制中,常用的一種是RSA體制。其數學原理是將一個大數分解成兩個質數的乘積,加密和解密用的是兩個不同的密鑰。即使已知明文、密文和加密密鑰(公開密鑰),想要推導出解密密鑰(私有密鑰),在計算上是不可能的。按現在的計算機技術水平,要破解目前採用的1024位RSA密鑰,需要上千年的計算時間。公開密鑰技術解決了密鑰發布的管理問題,商戶可以公開其公開密鑰,而保留其私有密鑰。購物者可以用人人皆知的公開密鑰對發送的信息進行加密,安全地傳送以商戶,然後由商戶用自己的私有密鑰進行解密。
如果用戶需要發送加密數據,發送方需要使用接收方的數字證書(公開密鑰)對數據進行加密,而接收方則使用自己的私有密鑰進行解密,從而保證數據的安全保密性。
另外,用戶可以通過數字簽名實現數據的完整性和有效性,只需採用私有密鑰對數據進行加密處理,由於私有密鑰僅為用戶個人擁有,從而能夠簽名文件的唯一性,即保證:數據由簽名者自己簽名發送,簽名者不能否認或難以否認;數據自簽發到接收這段過程中未曾作過任何修改,簽發的文件是真實的。
4. 數字證書是如何頒發的?
數字證書是由認證中心頒發的。根證書是認證中心與用戶建立信任關系的基礎。在用戶使用數字證書之前必須首先下載和安裝。
認證中心是一家能向用戶簽發數字證書以確認用戶身份的管理機構。為了防止數字憑證的偽造,認證中心的公共密鑰必須是可靠的,認證中心必須公布其公共密鑰或由更高級別的認證中心提供一個電子憑證來證明其公共密鑰的有效性,後一種方法導致了多級別認證中心的出現。
數字證書頒發過程如下:用戶產生了自己的密鑰對,並將公共密鑰及部分個人身份信息傳送給一家認證中心。認證中心在核實身份後,將執行一些必要的步驟,以確信請求確實由用戶發送而來,然後,認證中心將發給用戶一個數字證書,該證書內附了用戶和他的密鑰等信息,同時還附有對認證中心公共密鑰加以確認的數字證書。當用戶想證明其公開密鑰的合法性時,就可以提供這一數字證書。
5. 加密技術
由於數據在傳輸過程中有可能遭到侵犯者的竊聽而失去保密信息,加密技術是電子商務採取的主要保密安全措施,是最常用的保密安全手段。加密技術也就是利用技術手段把重要的數據變為亂碼(加密)傳送,到達目的地後再用相同或不同的手段還原(解密)。
加密包括兩個元素:演算法和密鑰。一個加密演算法是將普通的文本(或者可以理解的信息)與一竄數字(密鑰)的結合,產生不可理解的密文的步驟。密鑰和演算法對加密同等重要。
密鑰是用來對數據進行編碼和解碼的一種演算法。在安全保密中,可通過適當的密鑰加密技術和管理機制,來保證網路的信息通訊安全。密鑰加密技術的密碼體制分為對稱密鑰體制和非對稱密鑰體制兩種。
相應地,對數據加密的技術分為兩類,即對稱加密(私人密鑰加密)和非對稱加密(公開密鑰加密)。對稱加密以數據加密標准(DES,Data Encryption Standard)演算法為典型代表,非對稱加密通常以RSA(Rivest Shamir Ad1eman)演算法為代表。對稱加密的加密密鑰和解密密鑰相同,而非對稱加密的加密密鑰和解密密鑰不同,加密密鑰可以公開而解密密鑰需要保密。
⑵ 加密演算法和技術在生活中的應用
RSA演算法主要是在建立HTTP保密通信的時候來用,微軟先在windows上保存了自己用的公鑰,然後通過微軟認證的人給我們發了一個認證的信息,我們就可以用windows上的公鑰來解密同時確認那個認證是不是有效的。HHTP保密通信建立了以後,我們主要是通過AES加密演算法來做數據通信。
我們平時都是用用戶名和密碼來登陸網站,但是如果將用戶名和密碼直接發送到網站是有風險的,如果網站被別人攻擊,人家就會拿到我們的用戶和密碼,一般的做法是將密碼用SHA演算法處理以後,將sha演算法的結果發給網站。因為通過sha的結果不能算出輸入的數據。所以攻擊的人只能是拿到用戶,他拿不到密碼。
⑶ 人工智慧演算法解決新挑戰,智能演算法是什麼是如何運行的
由於人工智慧缺乏可解釋性,人們越來越關注人工智慧主體的接受和信任問題。多年來,對可解釋性的重視在計算機視覺、自然語言處理和序列建模等領域取得了巨大的進展。隨著時間的推移,這些類型的編碼指令變得比任何人想像的都更加全面和復雜。人工智慧演算法已經進入了這一領域。人工智慧演算法是機器學習的一個子領域,它引導計算機學習如何獨立工作。因此,為了優化程序並更快地完成工作,小工具將繼續學習。
人工智慧演算法也每天都在使用。盡管關於美國聯邦政府如何保護個人數據信息的問題尚不清楚,但對特定方面和通信的計算機軟體監控已經在防止國內外的重大恐怖行為。這只是人類使用人工智慧不斷發展和擴大的一種經驗。人類對人工智慧的使用拓寬了我們的視野,使事情變得更簡單、更安全,並使子孫後代更幸福。
⑷ 數字圖像處理的基本演算法及要解決的主要問題
圖像處理,是對圖像進行分析、加工、和處理,使其滿足視覺、心理以及其他要求的技術。圖像處理是信號處理在圖像域上的一個應用。目前大多數的圖像是以數字形式存儲,因而圖像處理很多情況下指數字圖像處理。此外,基於光學理論的處理方法依然佔有重要的地位。
圖像處理是信號處理的子類,另外與計算機科學、人工智慧等領域也有密切的關系。
傳統的一維信號處理的方法和概念很多仍然可以直接應用在圖像處理上,比如降噪、量化等。然而,圖像屬於二維信號,和一維信號相比,它有自己特殊的一面,處理的方式和角度也有所不同。
目錄
[隱藏]
* 1 解決方案
* 2 常用的信號處理技術
o 2.1 從一維信號處理擴展來的技術和概念
o 2.2 專用於二維(或更高維)的技術和概念
* 3 典型問題
* 4 應用
* 5 相關相近領域
* 6 參見
[編輯] 解決方案
幾十年前,圖像處理大多數由光學設備在模擬模式下進行。由於這些光學方法本身所具有的並行特性,至今他們仍然在很多應用領域佔有核心地位,例如 全息攝影。但是由於計算機速度的大幅度提高,這些技術正在迅速的被數字圖像處理方法所替代。
從通常意義上講,數字圖像處理技術更加普適、可靠和准確。比起模擬方法,它們也更容易實現。專用的硬體被用於數字圖像處理,例如,基於流水線的計算機體系結構在這方面取得了巨大的商業成功。今天,硬體解決方案被廣泛的用於視頻處理系統,但商業化的圖像處理任務基本上仍以軟體形式實現,運行在通用個人電腦上。
[編輯] 常用的信號處理技術
大多數用於一維信號處理的概念都有其在二維圖像信號領域的延伸,它們中的一部分在二維情形下變得十分復雜。同時圖像處理也具有自身一些新的概念,例如,連通性、旋轉不變性,等等。這些概念僅對二維或更高維的情況下才有非平凡的意義。
圖像處理中常用到快速傅立葉變換,因為它可以減小數據處理量和處理時間。
[編輯] 從一維信號處理擴展來的技術和概念
* 解析度(Image resolution|Resolution)
* 動態范圍(Dynamic range)
* 帶寬(Bandwidth)
* 濾波器設計(Filter (signal processing)|Filtering)
* 微分運算元(Differential operators)
* 邊緣檢測(Edge detection)
* Domain molation
* 降噪(Noise rection)
[編輯] 專用於二維(或更高維)的技術和概念
* 連通性(Connectedness|Connectivity)
* 旋轉不變性(Rotational invariance)
[編輯] 典型問題
* 幾何變換(geometric transformations):包括放大、縮小、旋轉等。
* 顏色處理(color):顏色空間的轉化、亮度以及對比度的調節、顏色修正等。
* 圖像合成(image composite):多個圖像的加、減、組合、拼接。
* 降噪(image denoising):研究各種針對二維圖像的去噪濾波器或者信號處理技術。
* 邊緣檢測(edge detection):進行邊緣或者其他局部特徵提取。
* 分割(image segmentation):依據不同標准,把二維圖像分割成不同區域。
* 圖像製作(image editing):和計算機圖形學有一定交叉。
* 圖像配准(image registration):比較或集成不同條件下獲取的圖像。
* 圖像增強(image enhancement):
* 圖像數字水印(image watermarking):研究圖像域的數據隱藏、加密、或認證。
* 圖像壓縮(image compression):研究圖像壓縮。
[編輯] 應用
* 攝影及印刷 (Photography and printing)
* 衛星圖像處理 (Satellite image processing)
* 醫學圖像處理 (Medical image processing)
* 面孔識別, 特徵識別 (Face detection, feature detection, face identification)
* 顯微圖像處理 (Microscope image processing)
* 汽車障礙識別 (Car barrier detection)
[編輯] 相關相近領域
* 分類(Classification)
* 特徵提取(Feature extraction)
* 模式識別(Pattern recognition)
* 投影(Projection)
* 多尺度信號分析(Multi-scale signal analysis)
* 離散餘弦變換(The Discrete Cosine Transform)
⑸ 北京北大青鳥:程序員為什麼要學習演算法以及應用領域
對於許多編程開發程序員來說,組織開發架構等技術應該都掌握了不少了,那麼大家是否懂得演算法相關的技術呢?今天,北京電腦培訓http://www.kmbdqn.cn/就一起來了解一下,程序員為什麼要學習演算法以及應用領域的問題。
學習演算法的重要性在介紹具體演算法之前,我先談一下個人對學習演算法的初心。
我的初心無非有兩點:一,BAT等互聯網公司招聘面試時要問演算法知識,如果想要進入互聯網公司,我就必須學好演算法;二,通過學習演算法提升個人開發的基本功,這樣一來,對於不同場景我就可以正確選擇對應的數據結構和演算法,使得程序更健壯,提高程序的運行效率。
應用領域目前計算機各個細分領域涉及到不同的演算法。
比如說搜索引擎,平時我們使用google、網路等瀏覽器,只要我們輸入一個關鍵字,瀏覽器就會快速地返回相關的集合,這個集合的背後就隱藏著許多演算法。
如果沒有這些演算法,我們是不可能這么快速地得到想要的結果。
再比如說人工智慧,通過計算模型演算法實現人體識別、語音識別等各應用場景。
演算法分析上文我們已經介紹到演算法就是解決問題的方法,而對於同一個問題,可能存在不同的解決方法。
因此,為了衡量一個演算法的優劣,提出了時間復雜度與空間復雜度這兩個概念。
時間復雜度一般情況下,演算法中基本操作重復執行的次數是問題規模n的某個函數f(n),演算法的時間度量記為T(n)=O(f(n)),它表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸近時間復雜度,簡稱時間復雜度。
空間復雜度空間復雜度是對一個演算法在運行過程中臨時佔用存儲空間大小的量度,記做S(n)=O(f(n))。
一個演算法的優劣主要從演算法的執行時間和所需要佔用的存儲空間兩個方面衡量。
⑹ 演算法給我們帶來了巨大的影響,演算法到底改變了什麼
一、演算法改變了我們接受信息的方式。演算法技術應用在生活中的方方面面,無論我們是通過瀏覽器接受新聞,還是通過微博、微信、資訊類APP接受新聞,我們都不自覺地受著演算法給我們帶來的影響。基於大數據的演算法,通過掌握用戶以往的瀏覽記錄和搜索歷史推測用戶可能感興趣的內容。於是主動給用戶推薦相關內容,我們接收信息的方式從偶然看到或是刻意檢索,變成了各種APP主動給我們推薦。從這個角度來說,演算法讓我們接收信息的方式由主動變得被動起來。
我們享受著技術帶來的便捷,同時我們也要警惕技術可能存在的問題。就像是演算法技術可能存在的隱患,凡是有利有弊,一體有兩面。因此,無論即便演算法本身沒有錯,我們依然要謹慎使用該技術,並且要將此技術關在籠子里,不讓居心叵測之人運用來侵害大多數的權益。
⑺ 貴陽北大青鳥:程序員為什麼要學習演算法以及應用領域
對於許多編程開發程序員來說,組織開發架構等技術應該都掌握了不少了,那麼大家是否懂得演算法相關的技術呢?今天,貴陽電腦培訓http://www.kmbdqn.cn/就一起來了解一下,程序員為什麼要學習演算法以及應用領域的問題。
學習演算法的重要性在介紹具體演算法之前,我先談一下個人對學習演算法的初心。
我的初心無非有兩點:一,BAT等互聯網公司招聘面試時要問演算法知識,如果想要進入互聯網公司,我就必須學好演算法;二,通過學習演算法提升個人開發的基本功,這樣一來,對於不同場景我就可以正確選擇對應的數據結構和演算法,使得程序更健壯,提高程序的運行效率。
應用領域目前計算機各個細分領域涉及到不同的演算法。
比如說搜索引擎,平時我們使用google、網路等瀏覽器,只要我們輸入一個關鍵字,瀏覽器就會快速地返回相關的集合,這個集合的背後就隱藏著許多演算法。
如果沒有這些演算法,我們是不可能這么快速地得到想要的結果。
再比如說人工智慧,通過計算模型演算法實現人體識別、語音識別等各應用場景。
演算法分析上文我們已經介紹到演算法就是解決問題的方法,而對於同一個問題,可能存在不同的解決方法。
因此,為了衡量一個演算法的優劣,提出了時間復雜度與空間復雜度這兩個概念。
時間復雜度一般情況下,演算法中基本操作重復執行的次數是問題規模n的某個函數f(n),演算法的時間度量記為T(n)=O(f(n)),它表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸近時間復雜度,簡稱時間復雜度。
空間復雜度空間復雜度是對一個演算法在運行過程中臨時佔用存儲空間大小的量度,記做S(n)=O(f(n))。
一個演算法的優劣主要從演算法的執行時間和所需要佔用的存儲空間兩個方面衡量。
⑻ 2.演算法設計或項目開發中,你碰到哪些問題或困難,如何解決的
開發過程中遇到具體的技術問題,解決方案如下:自己查閱官網,看官方文檔,還有就是自己平時的積累(包括看書、資料、博客等等)。
遇到問題不要害怕,也不要煩躁,靜下心來,想想問題出現的原因以及該怎麼去解決,每解決一個問題都是對自己能力的提升。而且每解決一個難以搞定的問題,我相信大部分人都是很高興的。
平時多看技術資料、博客、書,看重對自己知識的積累,才能有實質性的能力提升。掌握解決問題的方式,謙虛的向別人請教,日復一日,相信你一定可以解決掉所有的困難。
⑼ 如何解決演算法多樣化帶來的問題
提倡演算法多樣化是新課標倡導的重要思想,是指尊重學生的獨立思考,鼓勵學生探索解題的不同方法。我在教學中也進行了演算法多樣化的嘗試。
在教學時,我創設了一個情景:出示鉛筆,「這是一盒鉛筆,裡面裝了10支鉛筆,這里還有5支鉛筆,老師這里一共有多少支鉛筆?」學生很快算出來是15支,我又問:「我有15支鉛筆,要送給小朋友9支,還剩多少支?」並寫出算式:15-9= 我讓學生通過從15支鉛筆中拿走9支鉛筆的辦法來解這個算式,問學生「誰願意來拿走9支?並說說你是怎麼拿的?」
生1:我是先拿走5支,再從10里拿4支。15-5=10 10-4=6
生2:我是從10里拿走9支。10-9=1 1+5=6
生3:我是先從10里拿走4支,再拿走外面的5支。10-4=6
生4:我還有不同的方法。我從外面拿走4支,再從10裡面拿走5支。
5-4=1 10-5=5 1+5=6
生5:我從外面拿走1支,再從10里拿走8支。5-1=4 10-8=2 4+2=6
生6:我從10裡面拿走7支,從5里拿走2支。10-7=3 5-2=3 3+3=6
生7:因為9+6=15 所以15-9=6
學生熱鬧的發言給出了多種不同的方法,確實可以說是做到演算法多樣化了,可是面對這許多種演算法,我心裡有點著急。一急:這每一種方法都要給學生一一介紹嗎?光是第一種方法,如果要學生掌握,大概需要半節課。每一種方法都介紹,課怎麼上得完呢?二急:要不要從這眾多的演算法中選出優演算法?如何選?三急:如果要選優演算法,應重點選擇哪種方法?四急:還有一部分學生連一種方法都不清楚,我要不要講解?五急:如果不把每一種演算法都講清楚,學生怎麼會知道這種方法是否適合他?也許沒講到的那種方法剛好就是最適合他的呢?六急:對一部分學生,如果不把一些思維方式強加於他,他可能一直會用數手指頭的方法,難道就讓他一直這樣嗎?……
但是,課堂教學的緊迫容不得我的茫然,我選擇了介紹了生1和生2的方法,並著重讓學生通過擺小棒的辦法領悟第2種方法。
這個處理過程可以說是我把我個人的看法和思想強加給了學生,這不是我希望看到的情形。學習是為了什麼?要不要學到一定的知識?答案是肯定的。可是當不是所有的學生都能主動建構知識的時候,教師該如何做呢?
演算法多樣化的教學思考及其策略把握
「鼓勵演算法的多樣化」是新課程標準的一個重要理念。當前,根據新課程標准編制的各種版本的教材,都將這個重要理念擺在突出的位置。演算法多樣化已得到廣大教師的極大關注和積極實踐,但在算化多樣化的理解和把握上則各不相同:有的教師要求學生對各種方法都要理解掌握,有的教師認為應該從中選取一種最好的方法,還有的教師認為應尊重學生的「原創演算法」,讓學生「你想怎麼算就怎麼算」。可見,在演算法多樣化的教學中確實存在著急需解決的實踐問題。
以「20以內退位減法」為例,敘述了自己在教學中進行演算法多樣化的嘗試,並提出了自己的教學困惑(即文中的「六急」)。回顧我鎮實施新課程的起步階段,我鎮基層教師在進行演算法多樣化教學時也曾經歷過,因此她的困惑具有一定的普遍意義。下面就結合我鎮在演算法多樣化上的研究和實踐,談談我們對演算法多樣化的教學認識以及策略把握。
一、為什麼要提倡演算法多樣化
1.這是計算教學的價值所在
隨著計算機(器)的普及,計算教學的要求正在逐步降低,計算教學的目的正在發生轉變,不僅是原先要求學生熟練、正確的計算技能(實際上新課程標准已降低了計算要求);更重要的是,計算教學的價值是突出演算法思維,在倡導演算法多樣化的過程中,培養學生的創新精神、探索意識和解決問題的能力。我國著名數學家吳文俊院士在數學機械化領域的開創性工作,引發了國際數學界對中國古代數學的傳統(即演算法化思想)的重新審視。當前我們的中小學數學教學應當繼承和挖掘我國古代數學傳統之精華。因而有學者提出,身處信息社會的學生必須掌握兩種重要的思維方法,即批判性思維和演算法思維。長期以來,我國的小學數學教學把培養學生的計算能力作為小學數學基礎的核心,但面對計算機信息技術的迅猛發展以及國際數學教育的改革潮流,小學數學的基礎不能僅僅停留在「熟練的計算能力上」。對於計算教學,應當從傳統的「方法統一和過分強調計算技能」轉變為「尊重學生的個性特點、關注學生思維能力的培養」。所以,計算教學不僅僅是培養學生的計算技能,還要培養學生推理計算的能力,強調演算法思維的多樣性。演算法多樣化的本質是讓學生從自己已有的知識與經驗出發學習新知識,鼓勵學生通過獨立思考而探尋解題的方法。對於「15 -9」的演算法探索,體現了「知識再發現」的要求,這對培養學生的創新精神和探索意識是極其有利的。
2.這是尊重學生不同認知方式的體現
以往的數學教學中,過分地強調解題方法的唯一性或計算方法的最優化,而忽視了學生解決問題過程中不同的思維方式和不同解決策略的探索。實際上,在計算教學中,由於學生認知方式的不同,在探索過程中必然會引發計算方法的多樣性。認知方式是個體在知覺、思維、記憶和解決問題等認知活動中加工和組織信息時所顯示出來的獨特而穩定的風格。認知方式沒有優劣之分,只是表現為學生對信息加工方式的某種偏愛。教學中,特別是在新知識的探索階段,理應尊重每一個學生的個性特徵,允許不同的學生從不同的角度認識問題,採用不同的方式表達自己的想法,用不同的知識與方法解決問題。面對新知識,學生用自己過去的經驗與本領來加以解決,教師給予適當的鼓勵和評價,這是尊重學生不同認知方式的體現。
二、如何把握演算法多樣化
1.注意演算法的簡約化和優化
一方面,學生認知水平各有高低,這決定了其解決問題的方法必然存在優劣之分。有時學生的方法會顯得過於繁瑣,如生4、生5和生6的方法;有時學生的方法缺乏思維的共性,無法作為基本方法而供學生選用等。另一方面,推動數學發展的內在動力之一,就是數學家探索方法的簡單化和最優化。因此,教師在教學中倡導演算法多樣化的同時,還要引導學生對多樣化的方法進行一定的簡化與優化(不是指最優化),把簡化與優化的過程作為學生反思以及進一步探索的過程。如果在教學中對學生良莠並存的各種思維方式以及演算法視而不見,對影響學生後繼學習的核心基礎知識和基本方法放任不管,那麼就會失去教師「教」的真正意義,學生也就失去了自我反思、比較、交流和提升的機會。
2.明確每個教學階段的目的
(1)探索階段,重在倡導演算法的多樣化。教學中,讓學生通過自主探索、獨立思考,提出自己解決問題的方法。如果有的學生有困難,允許學生之間進行一定的討論與交流;對於認知水平較高的學生,還要鼓勵他們提出不同的解決方法。這一階段,教師教學的重要策略就是啟發、引導、鼓勵學生,讓學生「你想怎麼算就怎麼算」。學生主要通過自主探索,提出解決問題的方法,培養學生的探索意識和解決問題的能力。需指出的是:其一,演算法多樣化不等同於「一題多解」。在教學中,有的老師往往把演算法多樣化等同於「一題多解」,要求所有學生盡可能地探索出幾種方法,結果使一部分認知水平較低的學生產生畏懼情緒,也增加了學生不必要的負擔。對此,北京師范大學周玉仁教授指出兩者是有區別的。她認為,「一題多解」是面向學生個體,尤其是中等以上水平的學生,遇到同一道題可有多種思路多種解法,目的是為了發展學生思維的靈活性。而「多樣化」是面向學生群體的,學生可以用自己喜歡或能理解的演算法,對學生個體來說,不要求每人都想出或掌握兩種或更多種演算法;同時在群體多樣化時,通過交流、評價可以吸收或改變自己原有的演算法。這對我們廣大教師來說,具有很強的實踐指導意義。其二,演算法多樣化應防止陷入形式化的誤區。我們強調自主探究,倡導演算法多樣化是以關注學生的獨立思考,尊重學生的個性為重要目標的。教學中,教師不必煞費苦心「索要」多樣化的演算法,片面追求演算法多樣化的探究,那隻能是造成學生低層次思維的重復,或者「依他人之樣畫瓢」而已。生4、生5和生6的計算方法,反映出教師在演算法多樣化的處理上有這樣的影子,教師還沒有準確把握操作和思維的關系。
(2)總結階段,重在對演算法進行歸納與優化。在學生自主探索的基礎上,把自己解決問題的方法進行交流與匯總。這里要強調的是,教師一定要引導學生在交流與匯總的基礎上對學生提出的各種解題方法給予分析、歸納與優化。不然,演算法的多樣化有時往往會讓一些中、差生感到眼花繚亂,無所適從,以致方法越多越糊塗,達不到演算法多樣化的教學目的。事件中學生通過自己的探索,全班交流得出的計算方法有7種之多,但很可惜,教師沒有引導學生對各種方法進行一定的分析與歸納、簡化與優化。
其實在這一階段,教師要引導學生對各種方法進行一定的考察,分析各種方法的特點,並對各種方法進行一定的歸類。事件中生1的計算方法是「平十法」(又稱「連減法」);生2的計算方法是「破十法」;生3、生4、生5和生6的計算方法都是通過把15和9進行分拆,再利用原有的不退位減法和加法知識加以解決的,屬於同一類;生7的計算方法是利用加減法之間的關系,即「做減法,想加法」而加以解決的。在此基礎上,對於各類方法可以作進一步分析,讓學生感悟、理解探索和解決問題的數學思想方法,即把要解決的新知轉化為學過的舊知而加以順利解決。對於生3、生4、生5和生6的計算方法,引導學生去分析這些方法的缺點和弱點而加以舍棄,以突出基本原理和通用方法,切實加強數學課程的基礎性。通過上述的教學處理,即在倡導演算法多樣化的基礎上,引導學生對多樣化的演算法進行分析與歸納、簡化與優化。
(3)應用階段,則應當鼓勵演算法的個性化。即尊重學生的不同認知風格,允許學生「你喜歡用什麼方法就用什麼方法計算」。我們倡導演算法的多樣化,決不是簡單地讓學生「你想怎麼算就怎麼算」,而是在對多樣化演算法的分析與總結的基礎上,倡導科學、合理的方法,舍棄不科學、不合理的方法,再讓學生「你想怎麼算就怎麼算」,真正體現出演算法多樣化的本質要求。在應用階段,教師鼓勵學生演算法個性化,自主選擇經過大家歸納、優化後自己所理解、認可和喜歡的一種方法;但同時不排斥一部分認知水平較高的學生,用自己喜歡的多種計算方法計算;同樣,也允許個別學習困難的學生暫時保留經過優化已遭淘汰的方法。當然,這里允許個別特殊學生保留已遭淘汰的方法,並不是說教師可以遷就學生的現有發展水平,放棄教師的主導作用,而是必須因勢利導,不失時機地啟發學生超越自我,真正體現教學是為了促進學生發展的宗旨。
視角2
對演算法多樣化的幾點思考與建議
思考一:
到底什麼是演算法多樣化?為什麼要鼓勵演算法多樣化?演算法多樣化不是對學生個體的要求,而是面向學生群體的。學習是學生在已有知識經驗基礎上的自主建構活動,而學生之間的差異是客觀存在的,對於同一道計算題,解題思路往往不盡相同。面對全班學生,教師只講解一種演算法的教學,容易忽視學生的個別差異,遏制學生的創造性。鼓勵演算法多樣化,是讓每個學生用自己最能理解的方法進行計算,通過交流評價從中得到啟發,在各自的基礎上得到發展。
思考二:
演算法多樣化,是不是演算法越多越好?在學生回答完一種方法後,教師常會不停地追問「還有嗎?」,於是,學生有時會為演算法的多樣而挖空心思。案例中的學生,有從10里拿走9支的,也從10里拿走8支、拿走7支、拿走4支的。我想,在老師的「還有嗎」下,可能有學生會從10里拿走6支、拿走5支的。上述每一種拿法應該是有區別的,但不是我們所要鼓勵的演算法多樣化。其實,教師在這里應該適時引導:」小朋友們這幾種拿法是不同的,但是,我們的想法其實是一樣的,都是——「,引導學生歸類,讓他們體會到這些想法屬於同一類,並進一步比較發現,從10里拿走9的方法,計算最簡單方便。注意,演算法多樣化,關注的不是形式的多樣,而是想法的多樣。對於學生形式的多樣,教師要作引導。演算法多樣化,絕不是演算法越多越好。
思考三:
多樣的演算法要不要優化?在學生出現了多種演算法後,教師常會說「你們可以用自己喜歡的方法進行計算」,看似非常尊重學生的選擇,其實是一種簡單化的處理。如若學生喜歡扳手指計算,教師也任其喜歡?數學是講「優化」的,教師應該引導學生對多種演算法進行比較,讓學生體會到哪種演算法是最簡捷、最容易的方法。當然,有些演算法很難說出孰優孰劣,就讓學生憑經驗自己做選擇。
建議:
對本節課的教學,有三點建議:(1)「誰願意來拿走9支?並說說你是怎麼拿的?」這一提問會妨礙學生自己的思考,學生在拿的過程中不太會有「用加算減」的想法,然而,這也是應該讓學生學會的一種演算法;(2)問題出示後,教師要給出一定的時間讓學生獨立思考、嘗試計算,最好能讓學生在小組內交流自己的想法,而不是要求學生迅速做出反應,因為那樣往往是少部分學優生積極參與,其餘學生被動旁聽,很難真正做到演算法多樣化;(3)教師要適時介入(特別是當學生中出現從10中拿幾的想法一致、拿法不同的時侯),及時地引導,讓學生在交流、比較中獲得新的認識,思維得到發展。
⑽ 問題 : 結合不同演算法技術解決某個實際問題的一個實例。 (就是一個問題中同時要用到多個演算法技術,舉
在3D圖形運算里 需要計算平移 角度 映射 等等一系列坐標相關運算
這里就要用到矩陣 歐拉角 四元數來進行操作了 因為矩陣不能做插值運算 而四元數可以有很好的插值效果 四元數不好理解不便於輸入 當然矩陣也是 矩陣需要輸入9個值(3X3矩陣) 而歐拉角 只需要3個值 不過歐拉角在計算旋轉時會有萬向鎖問題 所以需要用矩陣或四元數來計算。