高斯 約當消元法(隨機程式,UVA 10828)

2021-07-25 05:04:15 字數 1032 閱讀 3430

就是有一類題目:

就是給你乙個圖,和乙個起始點(可以很抽象,比如uva 11762需要你自己建模。也可以很具體,比如就是乙個網格)

然後每個節點都有一定概率轉移到另一些節點。

具體解法就是:

如果是有向無環圖就用動態規劃或者記憶化搜尋。

否則就是高斯消元。

本題就是高斯消元。

然後如果使用高斯-約當消元法就可以省去回代的過程。

大白書上的**是用double型別的,雖然有一些技巧可以提高數值穩定性,但是多少會有精度損失的。想要完全準確得重寫分數運算。

double型別有乙個技巧技巧就是定義乙個const double eps=1e-8;如果小於eps就當做0,否則就當做常數。

還有求解的過程,比如ax=b

如果a==0,b!=0,那就是無解,此時可以當做x=inf。只需開乙個陣列記錄一下即可。

如果a==b==0,那解就是0。

否則答案就是b/a。

然後所有跟inf關聯的量都是inf(跟無解的關聯就是無解)。

輸出時特判輸出就好了。

**#include#define maxn 110

using namespace std;

const double eps=1e-8;

typedef double mat[maxn][maxn];

void gsyd(mat a,int n)

}int n;

vectorpre[maxn];

int od[maxn];

int inf[maxn];

int kase;

int main()

printf("case #%d:\n",++kase);

int q;

scanf("%d",&q);

while(q--)

{int x;

scanf("%d",&x);

x--;

if(inf[x]) puts("infinity");

else printf("%.3lf\n",abs(a[x][x])

高斯 約當(Gauss Jordan)消元法

選主元的高斯 約當 gauss jordan 消元法在很多地方都會用到,例如求乙個矩陣的逆矩陣 解線性方程組 插一句 lm演算法求解的乙個步驟 等等。它的速度不是最快的,但是它非常穩定 來自網上的定義 乙個計算方法,如果在使用此方法的計算過程中,捨入誤差得到控制,對計算結果影響較小,稱此方法為數值穩...

高斯消元法(n 3)順序,主元,約當

模板題目 順序高斯消元 拿列主元隨便改的 int n double a 111 111 ans 111 signed main rpp i,n cout cout for int i n i 1 i rpp i,n printf 2f n ans i cout return0 列主元消除法 加減消元...

高斯消元法c語言程式 演算法趣談 高斯消元

最近的數學課上,我們學習了高斯消元 gauss elimination 也就是解多元一次方程的一種通用解法。在講解計算機實現解多元一次方程前,我們先用人類的思維來解以下三元一次方程組 如果要解出這個方程x y z未知數的值,我們需要通過消元的方法減少未知數,從而得到乙個未知數的解,再將此未知數往原先...