高斯消元part2
今天整一整高斯消元的模板,正经的
高斯消元主要用于解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的更多相关文章
- 【BZOJ-3143】游走 高斯消元 + 概率期望
3143: [Hnoi2013]游走 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2264 Solved: 987[Submit][Status] ...
- 【BZOJ-3270】博物馆 高斯消元 + 概率期望
3270: 博物馆 Time Limit: 30 Sec Memory Limit: 128 MBSubmit: 292 Solved: 158[Submit][Status][Discuss] ...
- *POJ 1222 高斯消元
EXTENDED LIGHTS OUT Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9612 Accepted: 62 ...
- [bzoj1013][JSOI2008][球形空间产生器sphere] (高斯消元)
Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面上n+1个点的坐标,你需要以最快的速度确定这个n维球体的球心坐标,以便于摧 ...
- hihoCoder 1196 高斯消元·二
Description 一个黑白网格,点一次会改变这个以及与其连通的其他方格的颜色,求最少点击次数使得所有全部变成黑色. Sol 高斯消元解异或方程组. 先建立一个方程组. \(x_i\) 表示这个点 ...
- BZOJ 2844 albus就是要第一个出场 ——高斯消元 线性基
[题目分析] 高斯消元求线性基. 题目本身不难,但是两种维护线性基的方法引起了我的思考. void gauss(){ k=n; F(i,1,n){ F(j,i+1,n) if (a[j]>a[i ...
- SPOJ HIGH Highways ——Matrix-Tree定理 高斯消元
[题目分析] Matrix-Tree定理+高斯消元 求矩阵行列式的值,就可以得到生成树的个数. 至于证明,可以去看Vflea King(炸树狂魔)的博客 [代码] #include <cmath ...
- 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 ...
- [高斯消元] POJ 2345 Central heating
Central heating Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 614 Accepted: 286 Des ...
随机推荐
- 深入理解Linux内核 学习笔记(3)
第三章 进程 可以看到很多熟悉的结构体 进程状态: 可运行状态(TASK_ RUNNING) 进程要么在CPU上执行,要么准备执行. 可巾断的等待状态(TASK_ INTERRUPTIBLE) 进程被 ...
- 【转载】Mysql创建表时报错error150
从mysql数据库中导出正常数据库的脚本语句,而后使用脚本语句创建数据库的过程中,执行语句提示Can't Create Table 'XXX' erro150的错误,语句执行中断,创建table失败, ...
- Excel自动换行、Export2Excel 自动换行
1需求:导出excel后自动换行显示. 2插件:Export2Excel 3.测试 listToExcel() { import('@/vendor/Export2Excel').then(excel ...
- netty的好处
netty作为一个高性能的异步通信框架,它到底有哪些好处了,又用到哪些基础技术呢? 1.使用ServerBootstrap 作为netty服务端的启动辅助类,并且在创建ServerBootstrap时 ...
- Java设计模式---ChainOfResponsibility责任链模式
参考于 : 大话设计模式 马士兵设计模式视频 代码参考于马士兵设计模式视频 写在开头:职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系 图来自大话设计模式,下面我的代 ...
- 学习day03
1.结构标记 ***** 做布局 1.<header>元素 <header></header> ==> <div id=&quo ...
- Python查找指定文件
在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径: import os testfiles = [] testfilepaths = [] L = len(os.p ...
- Android Interpolator解析
本文部分图片转自:https://blog.csdn.net/lgaojiantong/article/details/39451243 目录 自定义插值器 系统插值器 1. 自定义插值器 要自定义插 ...
- Android远程桌面助手(B1185)for Android P开发者预览版
Android P的开发者预览版已出,其中App compatibility changes部分特别强调“The platform restricts the use of some non-SDK ...
- AndroidStudio使用问题记录
问题: Gradle sync failed: Connection timed out: connect Consult IDE log for more details (Help | Show ...