⑴ 運籌學中大M法的理論依據是什麼
對於一般形式的線性規劃問題,化為標准型後,大M法和兩階段法都可以求解。如果手算求解,兩種演算法的應用沒有差別。
如果是計算機編程,首選兩階段演算法。原因是大M法可能會由於大M的取值而出現計算誤差。
在極大化問題中,對人工變數賦於一M作為其系數;在極小化問題中,對人工變數賦於一個M作為其系數,M為一任意大(而非無窮大)的正數。把M看作一個代數符號參與運算,用單純形法求解。
(1)這種演算法的理論依據是擴展閱讀:
用單純形法在改進目標函數的過程中,如果原問題存在最優解,必然使人工變數逐步變為非基變數,或使其值為零。目標函數值將不可能達到最小或最大。
在迭代過程中,若全部人工變數變成非基變數,則可把人工變數所在的列從單純形表中刪去,此時便找到原問題的一個初始基可行解。若此基可行解不是原問題的最優解,則繼續迭代,直至所有的檢驗數都小於等於0,求得最優解為止。
⑵ rsa加密和解密的理論依據是什麼
以前也接觸過RSA加密演算法,感覺這個東西太神秘了,是數學家的事,和我無關。但是,看了很多關於RSA加密演算法原理的資料之後,我發現其實原理並不是我們想像中那麼復雜,弄懂之後發現原來就只是這樣而已..
學過演算法的朋友都知道,計算機中的演算法其實就是數學運算。所以,再講解RSA加密演算法之前,有必要了解一下一些必備的數學知識。我們就從數學知識開始講解。
必備數學知識
RSA加密演算法中,只用到素數、互質數、指數運算、模運算等幾個簡單的數學知識。所以,我們也需要了解這幾個概念即可。
素數
素數又稱質數,指在一個大於1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數。這個概念,我們在上初中,甚至小學的時候都學過了,這里就不再過多解釋了。
互質數
網路上的解釋是:公因數只有1的兩個數,叫做互質數。;維基網路上的解釋是:互質,又稱互素。若N個整數的最大公因子是1,則稱這N個整數互質。
常見的互質數判斷方法主要有以下幾種:
兩個不同的質數一定是互質數。例如,2與7、13與19。
一個質數,另一個不為它的倍數,這兩個數為互質數。例如,3與10、5與 26。
相鄰的兩個自然數是互質數。如 15與 16。
相鄰的兩個奇數是互質數。如 49與 51。
較大數是質數的兩個數是互質數。如97與88。
小數是質數,大數不是小數的倍數的兩個數是互質數。例如 7和 16。
2和任何奇數是互質數。例如2和87。
1不是質數也不是合數,它和任何一個自然數在一起都是互質數。如1和9908。
輾轉相除法。
指數運算
指數運算又稱乘方計算,計算結果稱為冪。nm指將n自乘m次。把nm看作乘方的結果,叫做」n的m次冪」或」n的m次方」。其中,n稱為「底數」,m稱為「指數」。
模運算
模運算即求余運算。「模」是「Mod」的音譯。和模運算緊密相關的一個概念是「同餘」。數學上,當兩個整數除以同一個正整數,若得相同餘數,則二整數同餘。
兩個整數a,b,若它們除以正整數m所得的余數相等,則稱a,b對於模m同餘,記作: a ≡ b (mod m);讀作:a同餘於b模m,或者,a與b關於模m同餘。例如:26 ≡ 14 (mod 12)。
RSA加密演算法
RSA加密演算法簡史
RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。
公鑰與密鑰的產生
假設Alice想要通過一個不可靠的媒體接收Bob的一條私人訊息。她可以用以下的方式來產生一個公鑰和一個私鑰:
隨意選擇兩個大的質數p和q,p不等於q,計算N=pq。
根據歐拉函數,求得r = (p-1)(q-1)
選擇一個小於 r 的整數 e,求得 e 關於模 r 的模反元素,命名為d。(模反元素存在,當且僅當e與r互質)
將 p 和 q 的記錄銷毀。
(N,e)是公鑰,(N,d)是私鑰。Alice將她的公鑰(N,e)傳給Bob,而將她的私鑰(N,d)藏起來。
加密消息
假設Bob想給Alice送一個消息m,他知道Alice產生的N和e。他使用起先與Alice約好的格式將m轉換為一個小於N的整數n,比如他可以將每一個字轉換為這個字的Unicode碼,然後將這些數字連在一起組成一個數字。假如他的信息非常長的話,他可以將這個信息分為幾段,然後將每一段轉換為n。用下面這個公式他可以將n加密為c:
ne ≡ c (mod N)
計算c並不復雜。Bob算出c後就可以將它傳遞給Alice。
解密消息
Alice得到Bob的消息c後就可以利用她的密鑰d來解碼。她可以用以下這個公式來將c轉換為n:
cd ≡ n (mod N)
得到n後,她可以將原來的信息m重新復原。
解碼的原理是:
cd ≡ n e·d(mod N)
以及ed ≡ 1 (mod p-1)和ed ≡ 1 (mod q-1)。由費馬小定理可證明(因為p和q是質數)
n e·d ≡ n (mod p) 和 n e·d ≡ n (mod q)
這說明(因為p和q是不同的質數,所以p和q互質)
n e·d ≡ n (mod pq)
簽名消息
RSA也可以用來為一個消息署名。假如甲想給乙傳遞一個署名的消息的話,那麼她可以為她的消息計算一個散列值(Message digest),然後用她的密鑰(private key)加密這個散列值並將這個「署名」加在消息的後面。這個消息只有用她的公鑰才能被解密。乙獲得這個消息後可以用甲的公鑰解密這個散列值,然後將這個數據與他自己為這個消息計算的散列值相比較。假如兩者相符的話,那麼他就可以知道發信人持有甲的密鑰,以及這個消息在傳播路徑上沒有被篡改過。
RSA加密演算法的安全性
當p和q是一個大素數的時候,從它們的積pq去分解因子p和q,這是一個公認的數學難題。然而,雖然RSA的安全性依賴於大數的因子分解,但並沒有從理論上證明破譯RSA的難度與大數分解難度等價。
1994年彼得·秀爾(Peter Shor)證明一台量子計算機可以在多項式時間內進行因數分解。假如量子計算機有朝一日可以成為一種可行的技術的話,那麼秀爾的演算法可以淘汰RSA和相關的衍生演算法。(即依賴於分解大整數困難性的加密演算法)
另外,假如N的長度小於或等於256位,那麼用一台個人電腦在幾個小時內就可以分解它的因子了。1999年,數百台電腦合作分解了一個512位長的N。1997年後開發的系統,用戶應使用1024位密鑰,證書認證機構應用2048位或以上。
RSA加密演算法的缺點
雖然RSA加密演算法作為目前最優秀的公鑰方案之一,在發表三十多年的時間里,經歷了各種攻擊的考驗,逐漸為人們接受。但是,也不是說RSA沒有任何缺點。由於沒有從理論上證明破譯RSA的難度與大數分解難度的等價性。所以,RSA的重大缺陷是無法從理論上把握它的保密性能如何。在實踐上,RSA也有一些缺點:
產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到一次一密;
分組長度太大,為保證安全性,n 至少也要 600 bits 以上,使運算代價很高,尤其是速度較慢,。
⑶ 如何讓學生理解算理,構建演算法』
在教學中如何培養學生的運算能力?處理好算理與演算法的關系對於突出計算教學核心,抓住計算教學關鍵具有重要的作用。
何為算理?顧名思義,算理就是計算過程中的道理,是指計算過程中的思維方式,解決為什麼這樣算的問題。而演算法就是計算的方法,主要是指計算的法則,就是簡約了復雜的思維過程,添加了人為規定後的程式化的操作步驟,解決如何算得方便、准確的問題。算理是客觀存在的規律,演算法是人為規定的操作方法;算理為計算提供了正確的思維方式,保證了計算的合理性和正確性,演算法為計算提供了快捷的操作方法,提高了計算的速度;算理是演算法的理論依據,演算法是算理的提煉和概括,演算法必須以算理為前提,算理必須經過演算法實現優化,它們是相輔相成的。
在小學數學計算教學中,我們要引導學生對計算的道理進行深入的研究,幫助學生應用已有的知識領悟計算的道理。學生只有理解了計算的道理,才能「創造」出計算的方法,才能理解和掌握計算方法,才能正確迅速地計算。
這里我以人教版五年級上冊《一個數除以小數》一課來談談怎樣在計算教學中實現「演算法」與「算理」的有效結合。
一:找准新舊知識的切入點——找到算理的源頭活水
教學中既要重視法則的教學,還要使學生理解法則背後的道理,使學生不僅知其然,而且還知其所以然,在理解算理的基礎上掌握運演算法則。而找准新舊知識的切入點就是找到了走進新知的橋梁,更找到了新知所含算理的源頭活水。在教學設計中我們要遵循這一教學規律,去了解內容前後的聯系,了解學生的思維水平,學情分析是教學設計系統中「影響學習系統最終設計」的重要因素之一。找准了新舊知識的切入點就像敲開了學生學習新知的思維大門,這樣才能輕松地完成學生對新知的建構過程,達到教學最終的彼岸。
【課例】
「一個數除以小數」這部分知識是小數除法的重點,它的關鍵點在於運用商不變性質的原理,將除數是小數的除法轉化成除數是整數的除法,然後再按照除數是整數的小數除法的方法來計算。其中「商不變性質」和「除數是整數的小數除法的計算方法」就是這節課新舊知識的連接點。所以在教學的第一個環節,我與學生共同復習了這兩方面的知識,為學生學習新知做好了准備。
從復習中,及時了解學生的思維水平,喚起學生的舊知,讓學生重新回顧所需的舊知識,給學生的思維搭上一座連接新知的橋梁,讓學生找到算理的源頭活水。
二:抓住操作與算理的融合點——感知演算法的建構過程
我們知道計算是枯燥的,如果沒有一定的運算原理做支撐,法則的框架最終會支離破碎。所以在計算教學中我們不僅要讓學生知道該怎麼計算,而且還應該讓學生明白為什麼要這樣計算,幫助學生在心中了解演算法的理論依據,並將「算理」與「演算法」有效結合、緊密聯系。如何做到這樣完美的效果呢?心理學研究表明,兒童的認識規律是「感知——表象——概括」,只有在真真切切的動手操作中慢慢感知、逐步體驗才更能符合孩子們的這一認知規律。動手操作可以充分調動學生的各種感官,並使這些感官參與到數學教學活動中去,在操作中感知大量直觀形象的事物,獲得感性知識,形成知識的表象,並誘發學生積極探索,從事物的表象中概括出事物的本質特徵,從而形成科學的概念。《一個數除以小數》這節課在探究計算方法的過程中,先放手讓學生自己嘗試計算,關注學生的思維動向。給學生充分表達想法的空間。在學生都有自己的想法的基礎上,組織學生再次進行討論,讓學生在相互啟發、相互影響下初步獲得一個數除以小數的計算方法。讓學生在操作中發現計算的規律,感悟算理。實現「算理」與「演算法」完美結合。
⑷ 什麼是加速折舊法,採用加速折舊法的理論依據是什麼
1、加速折舊法是相對於直接法來說的。直接法實質就是平均折舊計提。而加速折舊法是加速計提試用期間的前期折舊費用的一種財務實踐方法。
2、加速折舊法的理論依據是效用遞減,即固定資產的效用隨著其使用壽命的縮短而逐漸降低,因此,當固定資產處於較新狀態時,效用高,產出也高,而維修費用較低,所取得的現金流量較大;當固定資產處於較舊狀態時,效用低,產出也小,而維修費用較高,所取得的現金流量較小,這樣,按照配比原則的要求,折舊費用應當呈遞減的趨勢。
⑸ 二分法的理論依據是什麼體現了什麼樣的數學 思想
一般地,對於函數f(x),如果存在實數c,當x=c是f(c)=0,那麼把x=c叫做函數f(x)的零點。
解方程即要求f(x)的所有零點。
先找到a、b,使f(a),f(b)異號,說明在區間(a,b)內一定有零點,然後求f[(a+b)/2],
現在假設f(a)<0,f(b)>0,a<b
如果f[(a+b)/2]=0,該點就是零點,
如果f[(a+b)/2]<0,則在區間((a+b)/2,b)內有零點,按上述方法在求該區間中點的函數值,這樣就可以不斷接近零點
如果f[(a+b)/2]>0,同上
通過每次把f(x)的零點所在小區間收縮一半的方法,使區間的兩個端點逐步迫近函數的零點,以求得零點的近似值,這種方法叫做二分法
⑹ 計算14-6,先從10里減去6得4,再加上4得8。這種演算法的主要理論依據是__________.
把文字翻譯成算式就是
14-6=(10+4)-6=10-6+4=4+4=8
非要說理論的話,加法交換律吧~
⑺ 輾轉相除法的理論依據是什麼
輾轉相除法 輾轉相除法,又名歐幾里德演算法(Euclideanalgorithm)乃求兩個正整數之最大公因子的演算法。它是已知最古老的演算法,其可追溯至前300年。它首次出現於歐幾里德的《幾何原本》(第VII卷,命題i和ii)中,而在中國則可以追溯至東漢出現的《九章算術》。它並不需要把二數作質因子分解。 [編輯]演算法 輾轉相除法是利用以下性質來確定兩個正整數a和b的最大公因子的: 1.若r是a÷b的余數,則 gcd(a,b)=gcd(b,r) 2.a和其倍數之最大公因子為a。 另一種寫法是: 1.a÷b,令r為所得余數(0≤r<b) 若r=0,演算法結束;b即為答案。 2.互換:置a←b,b←r,並返回第一步。 [編輯]虛擬碼 這個演算法可以用遞歸寫成如下: functiongcd(a,b){ if(a不整除b) returngcd(b,amodb); else returna; } 或純使用循環: functiongcd(a,b){ definerasinteger; whileb≠0{ r:=amodb; a:=b; b:=r; } returna; } 其中「amodb」是指取a÷b的余數。 例如,123456和7890的最大公因子是6,這可由下列步驟看出: abamodb 12345678905106 789051062784 510627842322 27842322462 232246212 462126 1260 只要可計算余數都可用輾轉相除法來求最大公因子。這包括多項式、復整數及所有歐幾里德定義域(Euclideandomain)。 輾轉相除法的運算速度為O(n2),其中n為輸入數值的位數 定義已經給過了~ 證明: 設兩數為a、b(b<a),求它們最大公約數(a、b)的步驟如下:用b除a,得a=bq......r1(0≤r)。若r1=0,則(a,b)=b;若r1≠0,則再用r1除b,得b=r1q......r2(0≤r2).若r2=0,則(a,b)=r1,若r2≠0,則繼續用r2除r1,……如此下去,直到能整除為止。其最後一個非零餘數即為(a,b)。 給個例子具體來說吧: 8251=6105+2146,為了表示簡單,我就用a=b c表示這個吧 於是有c=a-b 那麼如果有d|a,且d|b,就必然有d|a-b,也就是d|c, 可見a和b的公約數必然也是c的約數。 現在假設d是a,b的最大公約數,那麼d也必然是c的約數,於是d是b,c的公約數,現在就要證明它是最大公約數—— 因為a=b c,於是b,c的公約數也必然是a的約數,假設(b,c)=e,(根據"d是b,c的公約數"知道d|e)那麼有e|b c,即e|a,可見e也是a,b的公約數,e|d,綜上有e=d 可見(a,b)=(b,c)=d 這個思想一推廣,就成了輾轉相除法了。 求ab的最大公約數: a=mb c(帶余除法:輾轉相除法的步驟) 設n是a,b的最大公約數,則上式可寫成na`=mnb` c 所以,c=n(a`-mb`),所以n也是c的公約數。 同理可證,bc的最大公約數也是a的公約數 這就是原理。
⑻ RSA演算法建立的理論基礎是()
RSA演算法建立的理論基礎是大數分解和素數檢測 。
RSA是1977年由羅納德·李維斯特、阿迪·薩莫爾和倫納德·阿德曼一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。
RSA公開密鑰密碼體制是一種使用不同的加密密鑰與解密密鑰,「由已知加密密鑰推導出解密密鑰在計算上是不可行的」密碼體制。
在公開密鑰密碼體制中,加密密鑰(即公開密鑰)PK是公開信息,而解密密鑰(即秘密密鑰)SK是需要保密的。加密演算法E和解密演算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據PK計算出SK。
正是基於這種理論,1978年出現了著名的RSA演算法,它通常是先生成一對RSA密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在網路伺服器中注冊。
為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送信息時,常採用傳統加密方法與公開密鑰加密方法相結合的方式。