算法--数论二

news2025/1/10 2:09:52

这里写目录标题

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

高斯消元

高斯消元求线性方程组

用途

在这里插入图片描述
这个算法可以以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.coloradmin.cn/o/1451614.html

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

相关文章

【机器学习案例5】语言建模 - 最常见的预训练任务一览表

自监督学习 (SSL) 是基于 Transformer 的预训练语言模型的支柱,该范例涉及解决有助于建模自然语言的预训练任务 (PT)。本文将所有流行的预训练任务放在一起,以便我们一目了然地评估它们。 SSL 中的损失函数 这里的损失函数只是模型训练的各个预训练任务损失的加权和。 以BE…

CSP-201909-1-小明种苹果

CSP-201909-1-小明种苹果 #include <iostream> using namespace std; int main() {long long sumApple 0, maxNum 0, maxAppleNum 0, n, m;cin >> n >> m;for (long long i 0; i < n; i){long long appleNum, delta 0;cin >> appleNum;for (l…

Kibana:如何嵌入 Kibana 仪表板

作者&#xff1a;Carly Richmond 像我这样的前端工程师经常提出的要求是将 Kibana 等来源的现有仪表板嵌入到 JavaScript Web 应用程序中。 这是我必须多次执行的任务&#xff0c;因为我们希望快速部署用户生成的视图或允许用户控制给定的视图。 从我们从精彩的开发者社区收到的…

模拟电子技术——分压式偏置放大电路、多级放大电路、差动放大电路、互补输出级

文章目录 前言基本放大电路链接&#xff0c;上一篇 [基本放大电路](https://blog.csdn.net/weixin_47541751/article/details/136112075?spm1001.2014.3001.5502) 一、分压式偏置放大电路什么是分压式偏置电路分压式电路组成电路分析估算静态工作点 二、多级放大电路什么是多级…

【方法】如何打开带密码的RAR分卷压缩文件?

RAR分卷文件是一种特殊的RAR压缩文件格式&#xff0c;也就是将文件压缩成多个相同大小的压缩包&#xff0c;可以更方便传输。那如果收到了带有密码的RAR分卷压缩文件&#xff0c;要如何打开呢&#xff1f; 无论RAR分卷压缩文件是否设置了密码保护&#xff0c;在打开或者解压分…

【题解】数的范围(二分模板)

笔记 if (check(mid)) L mid &#xff0c;则 mid L R 1 >> 1 if (check(mid)) R mid &#xff0c;则 mid L R >> 1 题目 #include<bits/stdc.h> using namespace std;int n, q; int a[100010]; int b[10010]; typedef pair<int, int> PII;v…

html的列表标签

列表标签 列表在html里面经常会用到的&#xff0c;主要使用来布局的&#xff0c;使其整齐好看. 无序列表 无序列表[重要]&#xff1a; ul &#xff0c;li 示例代码1&#xff1a; 对应的效果&#xff1a; 无序列表的属性 属性值描述typedisc&#xff0c;square&#xff0c;…

java-8组合式异步编程

11.1 Future 接口 Future接口在Java5中被引人&#xff0c;设计初衷是对将来某个时刻会发生的结果进行建模。它建模了一种异步计算&#xff0c;返回一个执行运算结果的引用&#xff0c;当运算结束后&#xff0c;这个引用被返回给调用方。在Future中触发那些潜在耗时的操作把调用…

LEETCODE 164. 破解闯关密码

class Solution { public:string crackPassword(vector<int>& password) {vector<string> password_str;for(int i0;i<password.size();i){password_str.push_back(to_string(password[i]));}//希尔排序int gappassword.size()/2;while(gap>0){for(int i…

Netty Review - 底层零拷贝源码解析

文章目录 Pre概述源码解析入口索引AbstractNioByteChannel.NioByteUnsafe#readallocHandle.allocate(allocator) 小结传统的零拷贝 Pre Netty Review - 直接内存的应用及源码分析 概述 Netty 的零拷贝技术是通过优化数据传输过程中的数据复制操作&#xff0c;以降低系统的开销…

Kotlin基本语法 3 类

1.定义类 package classStudyclass Player {var name:String "jack"get() field.capitalize()set(value) {field value.trim()} }fun main() {val player Player()println(player.name)player.name " asdas "println(player.name)} 2.计算属性与防范…

Matlab|基于支持向量机的电力短期负荷预测【三种方法】

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序主要是对电力短期负荷进行预测&#xff0c;采用三种方法&#xff0c;分别是最小二乘支持向量机&#xff08;LSSVM&#xff09;、标准粒子群算法支持向量机和改进粒子群算法支持向量机三种方法对负荷进行…

Codeforces Round 925 (Div. 3) D. Divisible Pairs (Java)

Codes Round 925 (Div. 3) D. Divisible Pairs (Java) 比赛链接&#xff1a;Codeforces Round 925 (Div. 3) D题传送门&#xff1a;D.Divisible Pairs 题目&#xff1a;D.Divisible Pairs 题目描述 输出格式 For each test case, output a single integer — the number o…

【Windows】MacOS制作纯净版Windows10安装U盘

方法一、在window系统中更新win10&#xff08;不更新引导程序&#xff09; cp -rp /Volumes/Windows10专业版\ 64位/* /Volumes/WIN10/https://baijiahao.baidu.com/s?id1760695844372493842&wfrspider&forpc 方法二、在window系统中更新win10&#xff08;更新引导程…

C语言学习day15:数组强化训练

题目一&#xff1a; 称体重&#xff1a;分别给10个值&#xff0c;来获得最大值 思路&#xff1a; 定义数组&#xff0c;给数组内赋10个值第一个下标的值与第二个下标的值进行比较定义max&#xff0c;将比较得来的较大的值赋值给max一直比较直到比较到最后一个下标&#xff0…

JavaScript中null和undefined的区别

JavaScript中null和undefined是两个特殊的值&#xff0c;经常在编程中遇到。虽然它们经常被混淆&#xff0c;但它们有着不同的含义和用法。本文将详细介绍JavaScript中null和undefined的区别&#xff0c;帮助开发者更好地理解和使用它们。 首先&#xff0c;让我们来了解一下nu…

React入门到精通:掌握前端开发的必备技能!

介绍&#xff1a;React是一个由Facebook开发和维护的JavaScript库&#xff0c;用于构建用户界面&#xff0c;特别是用于构建单页应用程序和移动应用程序的用户界面。以下是对React的详细介绍&#xff1a; 虚拟DOM&#xff1a;React通过使用虚拟DOM&#xff08;Document Object …

蓝桥杯第九届电子类单片机组程序设计(模拟题)

目录 蓝桥杯大赛历届真题 一、第九届比赛题 二、代码实现 main.c iic.c iic.h 前言 蓝桥杯的真题可以再官网上查到&#xff0c;链接放下边了&#xff0c;点击即可跳转到官网&#xff1a; 蓝桥杯大赛历届真题 突然发现官网上的题也不全&#xff0c;而且还有一部分是模拟…

BUUCTF misc 专题(47)[SWPU2019]神奇的二维码

下载附件&#xff0c;得到一张二维码图片&#xff0c;并用工具扫描&#xff08;因为图片违规了&#xff0c;所以就不放了哈。工具的话&#xff0c;一般的二维码扫描都可以&#xff09; swpuctf{flag_is_not_here}&#xff0c;&#xff08;刚开始出了点小差错对不住各位师傅&am…

新时代异步 IO 框架:IO_URING 的原理、用法、业界示例分析

文章目录 IO_URING基本介绍常见 I/O 模型IO_URING 原理核心结构工作模式高级特性 用法APIliburing基本流程Demo 业界示例SeaStar / ScyllaDBCEPHRocksDBClickHouse IO_URING 基本介绍 常见 I/O 模型 当前 Linux 的几种 I/O 模型&#xff1a; I/O 模型 同步 I/O 是目前应用最…