算法--数论二

这里写目录标题

  • 高斯消元
    • 高斯消元求线性方程组
      • 用途
      • 高斯消元的数学思想
      • 例题+代码
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录
  • 一级目录
    • 二级目录
    • 二级目录
    • 二级目录

高斯消元

高斯消元求线性方程组

用途

在这里插入图片描述
这个算法可以以n的三次方的时间复杂度来求一个线性方程组的解(即x1,x2,x3,…,xn)
但是同时要注意,方程组的解有三种情况,上图

例子:
在这里插入图片描述
输入n*(n+1)个数,其中每一行包含n个系数以及一个等式右边的答案,一共有n行
最后输出x1到xn

高斯消元的数学思想

将系数抽出来,组成一个矩阵,之后对矩阵做初等行列变化,化为最简阶梯型矩阵,最后化为上三角,如下图所示
在这里插入图片描述
在这里插入图片描述

关于解的情况,有三种:
在推上三角的过程中
如果最后能化成完美三角形,那就是有唯一解
如果最后出现0=非零,那么就是有矛盾,就是无解
如果最后出现了恒等方程,也就是能消去一个方程,或者说n个未知数,但是只有小于n个解,那么就是无穷解
在这里插入图片描述

具体的步骤以及最后的结果:
在这里插入图片描述
具体高斯消元的数学思想可以看视频《数学知识(三)》的20-36分钟

例题+代码

在这里插入图片描述

在这里插入图片描述
最后的数据都存放在了a[i][n]种,即最后一列的所有行,也就是等式右边的那些值,tips:保留两位小数,%.2lf,在%lf之前加一个.2
在这里插入图片描述
数据分析:
定义一个n,表示有几行,也就是有几个解
之后a数组用来存储输入数据,即所有的系数和等式右边的数
eps=1e-6,因为浮点数数据有误差,他的0不是真正的0,而是0.000000…1,所以需要用小于一个特别小的数来表示是0

在gauss函数里:
c代表当前列,r代表当前行
之后,for循环中初始化c和r都是0,然后遍历c,(初始化r为0,是用来动态设置当前的“顶行位置”,只有当前这个大的for循环快要结束时,r才会++)
在每一步遍历中,都是在c行下进行的
进行第一步:
先定义一个t,初始化为r,用来存当前列的绝对值最大值数的行号
之后一个for循环,用来找到当前列的绝对值最大的行:i从r开始遍历下面的所有行,如果fabs(a[i][c])>fabs(a[t][c]),那么i就是目前来说最大的行号,将t更新为i。tip:fabs(x),返回x的绝对值,并且是浮点类型,包含头文件cmath
之后拿到 t 之后,特判一下,如果fabs(a[t][c] < eps) 那么就是0,continue一下,因为是0的话就不用其他操作了
进行第二步:(将该行换到最上面)
定义i从c循环到小于等于n,交换a[t][i],a[r][i]
进行第三步:(将该行第一个数变成1)
注意这一步要倒着进行循环,因为每一次操作都要用到a[r][c],所以要在最后一次循环之前保证a[r][c]是不变的,同时注意此时不再是t行,而是r行,因为第二步时已经换到第一行了
定义i从n到大于等于c,i–,a[r][i] /= a[r][c]
进行第四步:(将下面所有的行的数变成0)
for循环定义i从r+1开始,循环到小于n,因为当前是在r,所以从r+1开始
判断如果a[i][c] >eps,即a[i][c]不是0,再进行后续操作
后续操作:(开始变为0,与第三步思想相同,等式左右同时进行数学变换,使得第c列下面的数都是0)
for循环定义 j 从n到大于等于c,j–
(此时i代表行号,j代表i行目前的列号)
a[i][j] -= a[r][j]*a[i][c]
当前行遍历列的所有的数,都更新为自己减去第一行当前列的数 乘以 当前行第一个数
最后r++;for循环结束

然后判断如果r<n,也就是最后方程数小于解的个数,那么有两种解的情况,
for循环,i 从 r 到 小于n,表示要判断那些没有用到的方程,(i表示行)
之后每次循环判断是否有a[i][n] > eps,即a[i][n]不是0,如果有,就是无解,返回2
for循环结束,返回1,表示有无穷个解
最后如果没有r<n,整个gauss函数返回0即表示有唯一解
但是返回0之前,要对答案进行化简求解,就是上图中的最后一个for循环

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

一级目录

二级目录

二级目录

二级目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/685400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VScode写LaTeX配置,实测有效

环境配置请看LaTeX环境配置-TexLive&#xff0c;实测有效http://t.csdnimg.cn/0txlL VScode写LaTeX配置 0.smatra pdf下载 如果使用外部pdf查看器&#xff0c;比如我用的sumatra pdf,官网是Sumatra PDF reader download page 下载对应版本&#xff0c;比如64位&#xff0c;下…

Pandas:DataFrame的完整指南【第82篇—DataFrame】

Pandas&#xff1a;DataFrame的完整指南 Pandas是Python中最流行的数据处理库之一&#xff0c;而其中的DataFrame对象是数据处理的核心。DataFrame为我们提供了一个强大而灵活的数据结构&#xff0c;使得数据的清洗、分析和可视化变得更加简便。在本文中&#xff0c;我们将深入…

leetcode hot100爬楼梯

在本题目中&#xff0c;要求爬第n阶有多少种爬法&#xff0c;并且每次只能爬1个或者2个&#xff0c;这明显是动态规划的问题&#xff0c;我们需要用动态规划的解决方式去处理问题。动态规划就是按照正常的顺序由前向后依次推导。而递归则是从结果往前去寻找&#xff08;个人理解…

Android 9.0 禁用adb shell input输入功能

1.前言 在9.0的系统rom产品开发中,在进行一些定制开发中,对于一些adb shell功能需要通过属性来控制禁止使用input 等输入功能,比如adb shell input keyevent 响应输入事件等,所以就需要 熟悉adb shell input的输入事件流程,然后来禁用adb shell input的输入事件功能,接…

光芒绽放:妙用“GLAD原则”打造标准的数据可视化图表

光芒绽放&#xff1a;妙用“GLAD原则”打造标准的数据可视化图表 文章目录 光芒绽放&#xff1a;妙用“GLAD原则”打造标准的数据可视化图表前言一、可视化工具有哪些&#xff1f;二、那如何做出正确可视化图表 &#xff1f;GLAD原则1.G原则2.L原则3.A原则4.D原则 三、总结最后…

《VulnStack》ATTCK-1

title: 《VulnStack》ATT&CK-1 date: 2024-01-29 14:53:49 updated: 2024-02-14 18:55:49 categories: WriteUp&#xff1a;Cyber-Range excerpt: 主机发现、端口扫描&#xff0c;服务探测&#xff0c;操作系统探测、nmap 漏洞库扫描、网站首页信息泄露、msf 渗透与信息收集…

云计算基础-云计算概念

云计算定义 云计算是一种基于互联网的计算方式&#xff0c;通过这种计算方式&#xff0c;共享的软硬件资源和信息可以按需提供给计算机和其他设备。云计算依赖资源共享以达成规模经济&#xff0c;类似基础设置(如电力网)。 云计算最基本的概念就是云加端&#xff0c;我们有一个…

SW100TSN-百兆车载以太网交换机

更多资讯可以进入官网查看或者联系我们http://www.hdn-vdo.com

基于BP算法的SAR成像matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 BP算法的基本原理 4.2 BP算法的优点与局限性 5.完整工程文件 1.课题概述 基于BP算法的SAR成像。合成孔径雷达&#xff08;SAR&#xff09;是一种高分辨率的雷达系统&#xff0c;能够在各种天气和光…

Kafka King 推荐一款漂亮、现代、实用的kafka客户端

Kafka King 一个漂亮、现代、实用的kafka客户端&#xff0c;使用python flet、flutter构建。 Github主页&#xff1a;https://github.com/Bronya0/Kafka-King 下载&#xff1a;https://github.com/Bronya0/Kafka-King/releases 功能清单 查看集群节点列表创建主题&#xf…

波奇学Linux:文件系统打开文件

从文件系统来看打开文件 计算机系统和磁盘交互的大小是4kb 物理内存的4kb&#xff0c;磁盘的4kb文件叫做页帧 磁盘数据块的以4kb为单位。 减少IO的次数&#xff0c;减少访问外设的次数--硬件 基于局部性的原理&#xff0c;预加载机制--软件 操作系统管理内存 操作系统对…

MySQL数据库基础(五):SQL语言讲解

文章目录 SQL语言讲解 一、SQL概述 二、SQL语句分类 1、DDL 2、DML 3、DQL 4、DCL 三、SQL基本语法 1、SQL语句可以单行或多行书写&#xff0c;以分号结尾 2、可使用空格和缩进来增强语句的可读性 3、MySQL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写…

【OpenAI Sora】开启未来:视频生成模型作为终极世界模拟器的突破之旅

这份技术报告主要关注两个方面&#xff1a;&#xff08;1&#xff09;我们的方法将各种类型的视觉数据转化为统一的表示形式&#xff0c;从而实现了大规模生成模型的训练&#xff1b;&#xff08;2&#xff09;对Sora的能力和局限性进行了定性评估。报告中不包含模型和实现细节…

Python面向对象学习小记

python中的类可以分为经典类和新式类。 类的定义方法&#xff1a; class 类名&#xff1a; pass 类名后面没有小括号&#xff01;&#xff01;&#xff01; 【注意和函数的定义做区分。】 函数的定义&#xff1a; def 函数名(): pass

《A++ 敏捷开发》- 8 获取高层支持

我&#xff1a;对过程改进来说&#xff0c;最重要的成功要素是什么&#xff1f; 客户&#xff1a;最难的是如何得到高层的支持&#xff0c;这不仅仅是嘴巴说说而已&#xff0c;而是要切实地给人、给时间。高层往往不清楚什么是质量改进的重点&#xff0c;但他们对员工的人均收入…

AcWing 1235. 付账问题(贪心)

[题目概述] 几个人一起出去吃饭是常有的事。 但在结帐的时候&#xff0c;常常会出现一些争执。 现在有 n 个人出去吃饭&#xff0c;他们总共消费了 S 元。 其中第 i 个人带了 a i a_i ai​ 元。 幸运的是&#xff0c;所有人带的钱的总数是足够付账的&#xff0c;但现在问题来…

2.12日学习打卡----初学RocketMQ(三)

2.12日学习打卡 目录&#xff1a; 2.12日学习打卡一. RocketMQ高级特性&#xff08;续&#xff09;消息重试延迟消息消息查询 二.RocketMQ应用实战生产端发送同步消息发送异步消息单向发送消息顺序发送消息消费顺序消息全局顺序消息延迟消息事务消息消息查询 一. RocketMQ高级特…

分布式文件系统 SpringBoot+FastDFS+Vue.js【四】

分布式文件系统 SpringBootFastDFSVue.js【四】 八、文件的下载和删除功能8.1.FastDFSClient.java8.2.FileServerController.java8.3.Vue的fast.js8.4.fastdfsimg.vue8.5.效果 九、总结endl 八、文件的下载和删除功能 8.1.FastDFSClient.java Slf4j public class FastDFSClie…

无人机地面站技术,无人机地面站理论基础详解

地面站作为整个无人机系统的作战指挥中心&#xff0c;其控制内容包括:飞行器的飞行过程&#xff0c;飞行航迹&#xff0c; 有效载荷的任务功能&#xff0c;通讯链路的正常工作&#xff0c;以及 飞行器的发射和回收。 无人机地面站总述 地面站作为整个无人机系统的作战指挥中心…

(N-144)基于微信小程序在线订餐系统

开发工具&#xff1a;IDEA、微信小程序 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术&#xff1a;vue、ElementUI、 Vant Weapp 服务端技术&#xff1a;springbootmybatisredis 本系统分微信小程序和…