1樓:
擴充套件歐幾里德演算法是用來在已知a, b求解一組x,y,使它們滿足貝祖等式: ax+by = ***(a, b) =d(解一定存在,根據數論中的相關定理)。擴充套件歐幾里德常用在求解模線性方程及方程組中。
下面是一個使用c++的實現:
intex***(int a,int b,int x,int y)intr=ex***(b,a%b,x,y);
intt=x;x=y;y=t-a/b*y;
return r;
}把這個實現和***的遞迴實現相比,發現多了下面的x,y賦值過程,這就是擴充套件歐幾里德演算法的精髓。
關於擴充套件歐幾里得演算法有點不明白,請大神指教
2樓:匿名使用者
這是通過數學計算出來的(所以,學好數學很重要),其實你應該仔細理解該演算法的原理!如下內容摘自:http:
//******blogs.***/frog112111/archive/2012/08/19/2646012.
html
擴充套件歐幾里德演算法
基本演算法:對於不完全為 0 的非負整數 a,b,***(a,b)表示 a,b 的最大公約數,必然存在整數對 x,y ,使得 ***(a,b)=ax+by。
證明:設 a>b。
1,顯然當 b=0,***(a,b)=a。此時 x=1,y=0;
2,ab!=0 時
設 ax1+by1=***(a,b);
bx2+(a mod b)y2=***(b,a mod b);
根據樸素的歐幾里德原理有 ***(a,b)=***(b,a mod b);
則:ax1+by1=bx2+(a mod b)y2;
即:ax1+by1=bx2+(a-(a/b)*b)y2=ay2+bx2-(a/b)*by2;
根據恆等定理得:x1=y2; y1=x2-(a/b)*y2;
這樣我們就得到了求解 x1,y1 的方法:x1,y1 的值基於 x2,y2.
上面的思想是以遞迴定義的,因為 *** 不斷的遞迴求解一定會有個時候 b=0,所以遞迴可以結束。
擴充套件的歐幾里得演算法求逆元
3樓:匿名使用者
數對 x,y ,使得 ***(a,b)=ax+by。
c++語言實現
#include
#include
using namespace std;
int x,y,q;
void extend_eulid(int a,int b)else
}int main()
你給的題目實際上就是: 給定 a 和b。
a 要有逆元 , 那麼***( a , b ) = 1假設a的逆元 為x , 那麼就有 a * x mod b = 1
也就是 a * x + b * y = 1上面的程式中輸入a和b就可以求出對應的x和y。
其中 x 就是 a的逆元
用c語言編制的求模逆元的擴充套件歐幾里德演算法,只要能基本上實現這個功能就行
4樓:匿名使用者
//舉例 3x+4y=1 ax+by=1
//得到一組解x0=-1,y0=1 通解為x=-1+4k,y=1-3k
返回a,b的***,同時求的一組滿足題目的最小正整數解
ans=extend_***(b,a%b,x,y);t=x;x=y;y=t-(a/b)*y;
return ans;
}//(a/b)%mod=c 逆元為p,(p*b)%mod=1
//(a/b)*(p*b)%mod=c*1%mod=c
// (p*b)%mod=1 等價於 p*b-(p*b)/mod*mod=1其中要求p,b已知 等價於 ax+by=1
//其中x=p(x就是逆元),y=p/mod,a=b,b=b*mod 那麼呼叫extend_***(b,b*mod,x,y)即可求(a/b)%mod的逆元等價於a*p%mod
int main()
cout<<"x="< 麻煩採納,謝謝! 1.先求出矩陣的特徵值 a e 0 2.對每個特徵值 求出 a e x 0的基礎解系a1,a2,as 3.a的屬於特徵值 的特徵向量就是 a1,a2,as 的非零線性組合 滿意請採納.矩陣的特徵向量怎麼求?1.先求出矩陣的特徵值 a e 02.對每個特徵值 求出 a e x 0的基礎解系a1,a2,... 答案是對du的。估計zhi你用的是用伴隨dao矩陣的方式做出來的,專你仔細看看伴隨矩陣中元屬素代數餘子式的排列方式,估計你弄反了。a11 a21 a31 a12 a22 a32 a13 a23 a33 第一行元素的代數餘子式是在第一列。矩陣求逆矩陣的兩種方法做出來的答案怎麼不一樣 你好!你說的是用伴... 只須把這個數開方即可。如 12是 12 的平方。開平方法的計算步驟如下 1 將被開方數的整數部分從個位起向左每隔兩位劃為一段,用撇號分開分成幾段,表示所求平方根是幾位數。2 根據左邊第一段裡的數,求得平方根的最高位上的數。3 從第一段的數減去最高位上數的平方,在它們的差的右邊寫上第二段陣列成第一個餘...這個矩陣的特徵向量是怎麼求出來的
幫我看下這個逆矩陣是怎麼求出來的?我做出來的和它剛好是轉置矩
怎麼才能知道數是用多少的平方求出來的