重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

C++实现线性代数矩阵行简化

本文实例为大家分享了C++实现线性代数矩阵行简化的具体代码,供大家参考,具体内容如下

成都创新互联公司是一家专注于网站设计、成都网站制作与策划设计,镇安网站建设哪家好?成都创新互联公司做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:镇安等地区。镇安做网站价格咨询:18982081108

输入一个矩阵,可分别输出该矩阵的阶梯型和最简型。

输入仅支持整数,支持分数形式输出。

妈妈再也不用担心俺的线性代数作业~

使用实例:

C++实现线性代数矩阵行简化

(实现格式化输出部分写的极为丑陋......)

#include
#include
#include
#include
#include
#include
#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-6
using 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<>n>>m;
  cout<<"输入矩阵元素:"<>a[i][j].x;
    }
  }
  gause_1();
  cout<<"阶梯型为:"<

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


网页标题:C++实现线性代数矩阵行简化
标题路径:http://cqcxhl.cn/article/gechge.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP