最大公約數,英文是 \(\mathcal\),簡稱 \(\gcd\)。
兩個數 \(x,y\) 的最大公約數,經常表示為 \(\gcd(x,y)\) 或者在不被誤解的情況下可以表示為 \((x,y)\),其定義為 \(g_\ s.t.\ g|x,g|y\)。
同理可以定義 \(n\) 個數的 \(\gcd\)。
性質 \(1\):不妨 \(x\le y\),\(\gcd(x,y)=gcd(x,y\%x)\)。
性質 \(2\):\(\gcd(x,0)=x\)。
根據上述 \(2\) 個性質,即可寫出**:
ll gcd(ll x,ll y)
需要注意的是,輾轉相除時一定要確認好大小關係,否則有可能陷入死迴圈。
最小公倍數,英文是 \(\mathcal\),簡稱 \(\mathcal}\)。
兩個數 \(x,y\) 的最小公倍數,經常表示為 \(\operatorname(x,y)\) 或者在不被誤解的情況下可以表示為 \([x,y]\),其定義為 \(g_\ s.t.\ x|g,y|g,g\neq 0\)。
需要注意,一般情況下此處的 \(x,y\) 需要大於 \(0\),但在 \(\gcd\) 中則不需要。
性質 \(3\):\(\gcd(x,y)\times \operatorname(x,y)=x\times y\)。
因此我們可以直接使用這個性質利用上面的 \(\gcd\) 函式計算兩數 \(\operatorname\)。
同理可以定義 \(n\) 個數的 \(\operatorname\)。
\(\mathcalut}\) 定理
即,對 \(n\) 個整數 \(a_1,a_2,\dots a_n\) ,不定方程 \(a_1x_1+a_2x_2+\dots +a_nx_n=c\) 有整數解 \((x_1,x_2\dots x_n)\) 的充要條件是 \(\gcd(a_1,a_2,a_3\dots a_n)|c\)。
證明略。
根據裴蜀定理,可以求解 \(2\) 元的不定方程。
由於也是通過輾轉相除求解故稱為擴充套件 \(\mathcal\) 演算法,被稱為 \(\operatorname\)。
**:
ll exgcd(ll a,ll b,ll &tx,ll &ty)
ans=exgcd(b,a%b,tx,ty);
ll tp=tx;tx=ty;ty=tp-a/b*ty;
return ans;
}
\(\mathcal\),高斯消元的全名。
主要用於解決 線性方程組 的解,可以判斷無解,有無窮多組解的情況。
線性方程組 形如:
\(\begina_x_1+a_x_2+\dots +a_x_n=a_\\\dots\\a_x_1+a_x_2+\dots +a_x_n=a_\end\)
演算法的主要部分即兩兩消元。
int main()//輸入部分
int del=0;
for(int i=1;i<=n;i++)
if(!now) continue;//沒有找到該項係數不為0的方程。
del++;
for(int j=0;j<=n;j++) swap(a[now][j],a[del][j]);
for(int j=1;j<=n;j++)
} //del 代表的是已經確定下來的x數量,以上就是消元的過程
if(del==n) for(int i=1;i<=n;i++) printf("x%d=%.2lf\n",i,a[i][0]/a[i][i]);
else
if(flag) puts("0");
else puts("-1");
} return 0;
}
計算機中常用的快捷鍵
1 ctrl c 複製 2 ctrl x 剪下 3 ctrl v 貼上 4 ctrl a 全選 5 ctrl z 撤銷鍵入 6 ctrl y 重複鍵入 7 ctrl s 儲存 8 ctrl f5 強制重新整理 9 ctrl w 關閉 10 ctrl f 查詢 11 ctrl esc 開始選單 12 ...
基礎知識 計算機中的移位運算
移位運算子就是在二進位制的基礎上對數字進行平移。按照平移的方向和填充數字的規則分為三種 左移 帶符號右移 和 無符號右移 在移位運算時,byte short和char型別移位後的結果會變成int型別,對於byte short char和int進行移位時,規定實際移 動的次數是移動次數和32的餘數,也...
計算機基礎知識 計算機基礎知識彙總
計算機專業的那六大件 組成原理,作業系統,資料庫,編譯原理,計算機網路,資料結構,其次還得加上分布式的基礎知識,因為現在的系統都變成分布式的了。如果你是做應用層開發的,那幾門課程中的有些內容和日常工作關聯度不大,我挑那些最重要的來說一說,也算是乙個最小集合吧!1,計算機組成原理 如果你不是做作業系統...