当前位置: 首页 > news >正文

洛谷题单指南-基础线性代数-P2455 [SDOI2006] 线性方程组

原题链接:https://www.luogu.com.cn/problem/P2455

题意解读:求解n元线性一次方程组。

解题思路:

高斯消元是求解n元线性一次方程组的经典算法,主要过程如下:

1、增广矩阵

首先,将方程组的所有系数和值提取出来,构成一个n * (n + 1)的增广矩阵。

image

2、行列变换

对矩阵进行如下行列变换,可以保证对应的方程组的解不变。

  • 交换两行:比如把第 1 行和第 3 行交换,只是调整方程顺序;相当于交换1/3两行方程。
  • 某一行乘以非零常数:比如第 1 行全乘 1/2,方程等价;相当于第一行方程乘以1/2。
  • 某一行的 k 倍加到另一行:比如第 1 行 ×3 加到第 2 行,消去第 2 行的 x 项;相当于将第1行方程×3 加到第 2 行方程。

3、消元过程

高斯消元的目标是要通过行列变换,将矩阵变成对角线矩阵,也就是除了对角线和第n+1列,其余都是0。

image

实现过程如下:

从第1行开始,设开始行row

遍历每列,设当前列col

  找到该列值最大的行,与开始行交换(如果最大列植是0,则直接跳过,处理下一个列)

  将row行col列变成1,也就是该行都除以a[row][col]

  将除row行以外的行col列变成0,也就是都减去row行乘以a[其余行][col] 

  row行处理完毕,row++

4、解的判断

如果在三角系数中

所有系数都不为0,则有唯一解。

如果系数都是0,值也是0,即0=0的情况,有无穷多解。

如果系数都是0,值不为0,即0=非0的情况,无解。

100分代码:

#include <bits/stdc++.h>
using namespace std;const int N = 55;
const double EPS = 1e-6;
double a[N][N];
int n;int gauss()
{int row = 1; //当前行for(int col = 1; col <= n; col++) //枚举当前列{int t = row;for(int i = row + 1; i <= n; i++) //找到当前列绝对值最大的行,目的是为了避免溢出,因为将最大的数变为1后,再做乘法溢出的风险会大大降低if(fabs(a[i][col]) > fabs(a[t][col]))t = i;if(fabs(a[t][col]) < EPS) continue; //如果当前列绝对值最大的行是0,则继续枚举下一列for(int i = col; i <= n + 1; i++) swap(a[t][i], a[row][i]); //将当前列绝对值最大的行与当前行交换for(int i = n + 1; i >= col; i--) a[row][i] /= a[row][col]; //将当前行当前列的元素变为1for(int i = 1; i <= n; i++) //将当前列的其它行消成0{if(i == row) continue; for(int j = n + 1; j >= col; j--) a[i][j] -= a[row][j] * a[i][col];}row++; //继续下一行}if(row <= n){for(int i = row; i <= n; i++)if(fabs(a[i][n + 1]) > EPS) //无解return -1;return 0; //无穷多解}return 1; //唯一解
}int main()
{cin >> n;for(int i = 1; i <= n; i++)for(int j = 1; j <= n + 1; j++)cin >> a[i][j];int res = gauss();if(res == 1){for(int i = 1; i <= n; i++){printf("x%d=%.2lf\n", i, a[i][n + 1]);}}else cout << res;return 0;
}

 

http://www.jsqmd.com/news/408294/

相关文章:

  • 2026年最新地质矿山设计企业 TOP 排名:技术与服务并重的选择指南 - 深度智识库
  • ai scientist:MOSS孙天祥新公司要让AI自己写100篇论文,还要全网直播一个月
  • 2026冲刺用!继续教育论文神器 —— 千笔ai写作
  • 浅谈测试需求分析
  • 2026乐山油炸串串优质推荐榜新鲜口碑双优 - 优质品牌商家
  • 大学生狂喜!护网行动 0 基础入门,1 个月就能参与,3 个低门槛角色任选!
  • 实力甄选|2026 西安输送带 工业铝型材厂家 TOP3,陕隆自动化领衔全链服务 - 朴素的承诺
  • 2026年畅享优品深度解析:高端宠粮国货标杆的立身之本与未来展望 - 品牌推荐
  • 深度解析:一张图拆解OpenClaw的Agent核心设计
  • 2026年电子科技大学申请机构推荐选择全攻略:五大机构推荐深度解析 - 深度智识库
  • 2026年北京隔音室厂家电话推荐:从筛选到沟通全流程 - 品牌推荐
  • 西北工业配套优选|2026 西安输送带 工业铝型材厂家 TOP3,陕隆自动化实力领衔 - 朴素的承诺
  • 2026年低分上统招本科申请机构推荐:成都海学云帆全周期升学专家 - 深度智识库
  • 户外微型水质监测站:为城市管理、科研教学提供水质保障
  • 不写 Prompt 也能干活?Claude Skills 真把“技能装进大脑”了
  • 别人都在做“更重”,这个开源项目却把 LLM 框架砍到 100 行
  • 2026年2月遂宁石膏/腻子粉/装饰线条/防水材料/乳胶漆厂家推荐:行业变革下的选型逻辑与标杆企业解析 - 2026年企业推荐榜
  • ubuntu中文乱码
  • 2026年聚氨酯发泡保温厂家联系电话推荐:保温防腐工程联系名录 - 品牌推荐
  • RAG 终于不只会查文档了:基于 LightRAG,这个开源项目把知识图谱真正用起来了!
  • 2026年北京隔音室厂家电话推荐:精选推荐和使用指南 - 品牌推荐
  • 计算机毕业设计之基于Android的健身信息管理系统
  • 不想上班?让“国版OpenClaw”替你干活!开工首日LobsterAI下载量翻倍
  • 计算机毕业设计之jsp志愿者管理系统
  • 2026年升学规划与成人学历提升机构权威推荐指南:全周期服务哪家更值得信赖? - 深度智识库
  • 英国数据中心用电需求或超国家峰值功耗
  • 计算机毕业设计之springboot中医药店管理系统
  • 2026年2月遂宁涂料/乳胶漆/石膏/腻子粉/装饰线条/厂家竞争格局深度分析报告:区域市场的分化与龙头崛起 - 2026年企业推荐榜
  • 2026年聚氨酯发泡保温厂家联系电话推荐:实力厂商汇总一览 - 品牌推荐
  • 2026最新婴儿面霜夏季推荐:成分党必看,拒绝夏日晒红脆皮肌 - 速递信息