算法题 高斯消元解线性方程组(Python)
题目
输入一个包含n个方程n个未知数的线性方程组。
方程组中的系数为实数。
求解这个方程组。
下图为一个包含m个方程n个未知数的线性方程组示例:
输入格式
第一行包含整数n。
接下来n行,每行包含n+1个实数,表示一个方程的n个系数以及等号右侧的常数。
输出格式
如果给定线性方程组存在唯一解,则输出共n行,其中第i行输出第i个未知数的解,结果保留两位小数。
如果给定线性方程组存在无数解,则输出“Infinite group solutions”。
如果给定线性方程组无解,则输出“No solution”。
数据范围
1≤n≤100
所有输入系数以及常数均保留两位小数,绝对值均不超过100。
输入样例:
3
1.00 2.00 -1.00 -6.00
2.00 1.00 -3.00 -9.00
-1.00 -1.00 2.00 7.00
输出样例:
1.00
-2.00
3.00
代码
zero = float(1e-6)def gauss():global n, zeror = 0for c in range(n):t = r# 首先找到当前这一列上最大绝对值的数所在的列for i in range(r, n):if abs(a[i][c]) > abs(a[t][c]): t = iif abs(a[t][c]) < zero: continue # 如果列都是0则跳到下一列# 将它移到第r行a[r], a[t] = a[t], a[r]# 将第r行归一化for i in range(n, c-1, -1): a[r][i] /= a[r][c]# 将第r行与其他的行进行相减,使得该列都为0for i in range(r+1, n):if abs(a[i][c]) > zero:for j in range(n, c-1, -1):a[i][j] -= a[r][j] * a[i][c]r += 1 # 行++# 如果存在后面的行都为0if r < n:for i in range(r, n):if abs(a[i][n]) > zero: return 2 # 无解return 1 # 无线解# 计算解for i in range(n-1, -1, -1): # 当前行for j in range(i): # 当前行上面的所有行a[j][n] -= a[j][i] * a[i][n]return 0n = int(input())
a = []
for _ in range(n):a.append(list(map(float, input().split())))t = gauss()
if t == 0 :for i in range(n):print('%.2f' % a[i][n])
elif t == 1: print('Infinite group solutions')
else: print("No solution")
算法题 高斯消元解线性方程组(Python)相关推荐
- [AcWing]883. 高斯消元解线性方程组(C++实现)高斯消元解线性方程组模板题
[AcWing]883. 高斯消元解线性方程组(C++实现)高斯消元解线性方程组模板题 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算 ...
- 高斯消元 AcWing 883. 高斯消元解线性方程组
高斯消元 AcWing 883. 高斯消元解线性方程组 原题链接 AcWing 883. 高斯消元解线性方程组 算法标签 线性代数 高斯消元 思路 代码 #include<bits/stdc++ ...
- 第三十四章 数论——高斯消元解线性方程组
第三十四章 数论--高斯消元解线性方程组 一.高斯消元 1.线性方程组 2.高斯消元步骤 (1)数学知识铺垫 增广矩阵和阶梯矩阵 初等变换 (2)高斯消元步骤 二.代码模板 1.问题: 2.代码 一. ...
- 高斯消元——解线性方程组+球形空间产生器+开关问题
传送门:https://www.acwing.com/activity/content/11/ 思路: 把原矩阵变成阶梯型矩阵解题步骤: 1.找到绝对值最大的一行. 2.将该行和最上面未处理好的一行交 ...
- AcWing 883. 高斯消元解线性方程组(高斯消元模板)
先出裸的模板: #include<bits/stdc++.h>using namespace std; const int N = 110; typedef double db; db a ...
- AcWing 883. 高斯消元解线性方程组 (高斯消元)
题目链接 : 点击查看 题目描述 : 输入一个包含 n 个方程 n 个未知数的线性方程组. 方程组中的系数为实数. 求解这个方程组. 下图为一个包含 m 个方程 n 个未知数的线性方程组示例: 输入输 ...
- 高斯消元解线性方程组(浮点高斯消元模板)
题目连接 https://www.acwing.com/problem/content/885/ 思路 高斯消元的思路如下: 1.我们从上到下,从左到右开始消元,对于每一行我们只保留当前[i,i]行的 ...
- AcWing - 高斯消元解线性方程组(高斯消元)
题目链接:https://www.acwing.com/problem/content/885/ 时/空限制:1s / 64MB 题目描述 输入一个包含n个方程n个未知数的线性方程组. 方程组中的系数 ...
- 【BZOJ1923】外星千足虫,高斯消元解xor方程组
Time:2016.08.29 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 原本以为是高斯消元解取模方程,后来发现这题意不就和异或方程一样吗 [异或(XOR)运算由于与" ...
- HDU 4305 Lightning (高斯消元解kirchhoff矩阵+逆元)
题意是:给一些坐标点,如果两点之间的距离小于R,并且两点之间没有其他点,则这两个点保持连通,这样构成了一个图.问这个图中生成树的个数. 因为数据量并不大,O(N^3)的建图没有问题. 建好图以后就可以 ...
最新文章
- 如何用python实现自动化办公_python自动化办公操作PPT的实现
- 全排列(含递归和非递归的解法)
- cuDNN error: CUDNN_STATUS_EXECUTION_FAILED
- 欧几里德算法求最大公约数
- Spring Boot2 集成 jasypt 3.0.4 配置文件敏感信息加密
- 华为手机怎么看图片属性_华为手机怎么才能息屏显示时间?操作方法很简单,看完涨知识了...
- 分布式SOA基础架构崭露头角
- 怎么看笔记本电脑的配置参数_电脑参数怎么看?教你看懂电脑各种配置
- redis 命令行 操作
- 蓝桥杯2016年第七届C/C++省赛B组第九题-交换瓶子
- kong自定义插件(修改官方插件)
- 如何清理驱动人生的新闻弹窗
- imagesc和pcolor区别
- 【React自制全家桶】九、Redux入手
- 用了亿恩的空间,总有上当的感觉
- CentOS安装Docker CE
- 超微服务器性能,读取性能强劲 超微2U机架F228服务器评测
- 解决Antimalware Service Executable(windows defender)占用过高CPU和内存的方法
- mysql索引与md5_谈Mysql索引
- 安装包UI美化之路-nsNiuniuSkin界面在线设计引擎
热门文章
- 装完金蝶电脑无限重启_电脑一直自动重启的原因与解决方法
- 怎么查询显卡hdmi接口版本_HDMI接口基础知识大扫盲
- python简单小游戏代码教程-python简单小游戏代码 怎么用Python制作简单小游戏
- 3次根号计算机在线应用,根号计算器,三次根号计算器
- es 安装拼音分词器 以及使用
- Vue - 选择器拼音快速检索目标(pinyin-match)
- 如何批量导入文件夹,批量重命名
- 【STC15系列】STC15软串口输出打印示例程序
- python写Bicubic方法,跑数据集Set5和Set14,保存PSNR和SSIM的值
- torchdiffeq中odeint函数的输入输出参数分析