今天整一整高斯消元的模板,正经的

高斯消元主要用于解n元一次线性方程组与判断是否有解

主要思想? 就是高斯消元啊

主要思想是理想状态下消为每行除最后一项外只有一个1,并且每行位置互异,具体看下面。

这里代码的目的主要是求方程的解

代码:

#include<bits/stdc++.h>
using namespace std;
int n;
double a[][];
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
for(int j=;j<=n+;j++) scanf("%lf",&a[i][j]);
}
for(int i=;i<=n;i++){
int t=i;
while(a[t][i]==&&t<=n) t++; //判断是否有解,如果每行对于某项系数全为0,则视为无解(无唯一解)
if(t==n+){
cout<<"No Solution";
return ;
}
for(int j=;j<=n+;j++) swap(a[t][j],a[i][j]); //(通行列式)如果首项为0,则挑一行不为零的换下
double x=a[i][i]; //保存系数,以便下面用
for(int j=;j<=n+;j++) a[i][j]/=x;
for(int j=;j<=n;j++){
if(j==i) continue; //这里主要思想放在下面注释point
x=a[j][i];
for(int k=;k<=n+;k++){
a[j][k]-=x*a[i][k];
}
}
}
for(int i=;i<=n;i++) printf("%0.2lf\n",a[i][n+]); //因系数消为1,顾每行最后即为解
return ;
}

point:

对于计算每行“i”,i即表示行数,即对于每行进行消元,理想状态下需把第n行的第n项系数消为1,其余消掉(消为0),所以当j==i时,跳过不做消元处理,只在之前那一步把系数化为1,其他位置的系数留给下面的式子来消,故当j!=i时,用这一行把其他同位置的系数消为0,并且如果有解,则数据保证能消为理想状态(好像证明的一部分已经给出了。。。)

高斯消元part2的更多相关文章

  1. 【BZOJ-3143】游走 高斯消元 + 概率期望

    3143: [Hnoi2013]游走 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 2264  Solved: 987[Submit][Status] ...

  2. 【BZOJ-3270】博物馆 高斯消元 + 概率期望

    3270: 博物馆 Time Limit: 30 Sec  Memory Limit: 128 MBSubmit: 292  Solved: 158[Submit][Status][Discuss] ...

  3. *POJ 1222 高斯消元

    EXTENDED LIGHTS OUT Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9612   Accepted: 62 ...

  4. [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)

    Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...

  5. hihoCoder 1196 高斯消元·二

    Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...

  6. BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基

    [题目分析] 高斯消元求线性基. 题目本身不难,但是两种维护线性基的方法引起了我的思考. void gauss(){ k=n; F(i,1,n){ F(j,i+1,n) if (a[j]>a[i ...

  7. SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元

    [题目分析] Matrix-Tree定理+高斯消元 求矩阵行列式的值,就可以得到生成树的个数. 至于证明,可以去看Vflea King(炸树狂魔)的博客 [代码] #include <cmath ...

  8. UVALive 7138 The Matrix Revolutions(Matrix-Tree + 高斯消元)(2014 Asia Shanghai Regional Contest)

    题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=6 ...

  9. [高斯消元] POJ 2345 Central heating

    Central heating Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 614   Accepted: 286 Des ...

随机推荐

  1. Spring加载流程源码分析03【refresh】

      前面两篇文章分析了super(this)和setConfigLocations(configLocations)的源代码,本文来分析下refresh的源码, Spring加载流程源码分析01[su ...

  2. 权限管理系统之SpringBoot集成LayUI实现后台管理首页

    万事开头难,昨天一直在构思用户权限管理系统怎么实现,实现哪些需求,采用什么技术等,也在网上百度了好多,计划使用SpringBoot + Mybatis + thymeleaf  + LayUI + S ...

  3. C# 委托基础1.0

    在C# 1.0中提出了一种新特性叫作:委托.委托本质上一种类型.是对特定方法的抽象,定义委托后,可以将方法封装,把方法当参数,传递 using System; using System.Collect ...

  4. 简单多播委托Demo

    namespace ConsoleApp4 { class Program { static void Main(string[] args) { Mum mum = new Mum(); Dad d ...

  5. 简述ADO.NET的连接层

    前面曾提到过ADO.NET的连接层允许通过数据提供程序的连接.命令.数据读取器对象与数据库进行交互.当想连接数据库并且使用一个数据读取器对象来读取数据时.需要实现下面的几个步骤 * 创建.配置.打开连 ...

  6. Linux网络相关概念和修改IP地址的方法

    2.1.1  网卡的命名规则 CENTOS6的网卡命名方式:它会根据情况有所改变而非唯一且固定,在CENTOS6之前,网络接口使用连续号码命名: eth0. eth1等,当增加或删除网卡时,名称可能会 ...

  7. 六大设计原则(四)ISP接口隔离原则(上)

    ISP的定义 首先明确接口定义 实例接口 我们在Java中,一个类用New关键字来创建一个实例.抛开Java语言我们其实也可以称为接口.假设Person zhangsan = new Person() ...

  8. nginx系列14:对HTTP协议的反向代理proxy模块

    proxy_pass指令 URL参数规则 需要注意的是,url中携带和不携带URI时发往上游请求的行为不同!

  9. Android为TV端助力 Linux命令查看包名类名

    先运行apk 再输入logcat | grep START 查看当前启动apk的包名和类名 adb shell "pm list packages -f | grep com.yulong. ...

  10. rocketmq有序消息

    RocketMQ提供的顺序消费消息实现是使用的FIFO 先进先出算法 Producer消息发送 public class Producer { public static void main(Stri ...