免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

C++中怎么簡化線性代數(shù)矩陣行-創(chuàng)新互聯(lián)

這期內容當中小編將會給大家?guī)碛嘘PC++中怎么簡化線性代數(shù)矩陣行,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,白云企業(yè)網(wǎng)站建設,白云品牌網(wǎng)站建設,網(wǎng)站定制,白云網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,白云網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

具體內容如下

輸入一個矩陣,可分別輸出該矩陣的階梯型和最簡型。

輸入僅支持整數(shù),支持分數(shù)形式輸出。

媽媽再也不用擔心俺的線性代數(shù)作業(yè)~

使用實例:

(實現(xiàn)格式化輸出部分寫的極為丑陋......)

#include<iostream>#include<cmath>#include<algorithm>#include<iomanip>#include<cstdio>#include<string>#define f(i,l,r) for(i=(l);i<=(r);i++)#define ff(i,r,l) for(i=(r);i>=(l);i--)#define ll long long#define EPS 1e-6using namespace std;const int MAXN=105;int n,m;char output[MAXN];string s;struct frac{  int x,y=1;  bool operator < (const frac &tmp)const{    return 1.0*x/y<1.0*tmp.x/tmp.y;  }  frac operator - (const frac &tmp){    frac ans;    ans.x=x*tmp.y-y*tmp.x;    ans.y=y*tmp.y;    ans.sim();    return ans;  }  frac operator * (const frac &tmp){    frac ans;    ans.x=x*tmp.x;    ans.y=y*tmp.y;    ans.sim();    return ans;  }  frac operator / (const frac &tmp){    frac ans;    ans.x=x*tmp.y;    ans.y=y*tmp.x;    ans.sim();    return ans;  }  int gcd(int a,int b){    return b==0?a:gcd(b,a%b);  }  void sim(){    int d=gcd(x,y);    x/=d;    y/=d;    if(x<0&&y<0){      x=-x;      y=-y;    }  }  void write()  {    int i;    char tmp[MAXN];    int num=0;    int nx=x,ny=y;    s="";    if(!nx){      s+="0";    }    else{      if(nx<0||ny<0){        s+='-';        nx=abs(nx);        ny=abs(ny);      }      if(nx%ny==0){        nx/=ny;        while(nx){          tmp[++num]='0'+nx%10;          nx/=10;        }        ff(i,num,1){          s+=tmp[i];        }      }      else{        while(nx){          tmp[++num]='0'+nx%10;          nx/=10;        }        ff(i,num,1){          s+=tmp[i];        }        s+='/';        num=0;        while(ny){          tmp[++num]='0'+ny%10;          ny/=10;        }        ff(i,num,1){          s+=tmp[i];        }      }    }    f(i,s.length(),7){      cout<<" ";    }    cout<<s;  }}a[MAXN][MAXN];void out_f(){  int i,j;  f(i,1,n){    f(j,1,m){      cout<<1.0*a[i][j].x/a[i][j].y<<" ";    }    cout<<endl;  }}void out(){  int i,j;  f(i,1,n){    f(j,1,m){      a[i][j].write();      cout<<" ";    }    cout<<endl;  }}int find(int r,int c){  int i,t=-1;  f(i,r,n){    if(t==-1||a[t][c]<a[i][c]) t=i;  }  return t;}void interchange(int r1,int r2){  int j;  f(j,1,m){    swap(a[r1][j],a[r2][j]);  }  return;}void scale(int r,int c){  int j;  ff(j,m,c){    a[r][j]=a[r][j]/a[r][c];  }  return;}void muilt(int r,int c){  int i,j;  f(i,r+1,n){    if(!a[i][c].x) continue;    ff(j,m,c){      a[i][j]=a[i][j]-(a[i][c]*a[r][j]);    }  }  return;}void gause_1(){  int c,r=1;  f(c,1,n){    int pos=find(r,c);    if(!a[pos][c].x) continue;    interchange(r,pos);    scale(r,c);    muilt(r,c);    r++;  }}void gause_2(){  int i,j;  ff(i,n,1){    f(j,i+1,n){      a[i][n+1]=a[i][n+1]-(a[i][j]*a[j][n+1]);      a[i][j].x=0;    }  }  return;}int main(){  int i,j;  cout<<"輸入矩陣的行數(shù)和列數(shù):"<<endl;  cin>>n>>m;  cout<<"輸入矩陣元素:"<<endl;  f(i,1,n){    f(j,1,m){      cin>>a[i][j].x;    }  }  gause_1();  cout<<"階梯型為:"<<endl;  out();  gause_2();  cout<<"最簡型為:"<<endl;  out();  return 0;}

上述就是小編為大家分享的C++中怎么簡化線性代數(shù)矩陣行了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:C++中怎么簡化線性代數(shù)矩陣行-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://m.newbst.com/article40/cejdeo.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊軟件開發(fā)移動網(wǎng)站建設用戶體驗網(wǎng)頁設計公司網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)