线性代数相关笔记

线性基

导入

线性基,顾名思义,就是一个包含数字最少的集合,使得原集合中的任何数都能用线性基中的元素表示。

集合中的元素满足一些性质:

  • 原集合中的任意元素都可以用线性基中的若干元素的异或和表示
  • 线性基中任意数异或和不为 0 0 0,否则不满足集合大小最小
  • 以任意顺序枚举原集合中元素,所得集合大小相同
  • 大小为 n n n 的线性基可以表示 2 n 2^n 2n 个数;若线性基中存在二进制第 i i i 位为 1 1 1 的数,则可以表示 2 n − 1 2^{n-1} 2n1 个二进制下第 i i i 位为 1 1 1 的数。

操作

插入

我们用数组 p 表示线性基,假设要插入 x x x,从高到低枚举 x x x 的二进制的每一位数字,如果 x x x 的第 i i i 位为 1 1 1 p i = 0 p_i=0 pi=0,那么令 p i = x p_i=x pi=x 并结束插入;否则,令 x^=p[i],继续枚举下一位。

void insert(int x)
{for(int i=50;i>=0;--i)if(x>>i&1){if(!p[i]) {p[i]=x;break;}else x^=p[i];}
}

求异或最大值

求原集合的子集的异或最大值,利用贪心思想。若 ans^p[i]>ans,则 ans^=p[i]

int pmax()
{int ans=0;for(int i=50;i>=0;--i)if((ans^p[i])>ans) ans^=p[i];return ans;
}

求异或最小值

分两种情况考虑:

  • 线性基大小 < < < 原集合大小:原集合中一定存在异或和为 0 0 0 的一些数,所以异或最小值为 0 0 0
  • 线性基大小 = = = 原集合大小:在线性基内求异或最小值,线性基内的最小元素与其他元素异或得到的值一定更大,所以异或最小值为线性基中最小元素。

剩的异或 k k k 小值先咕了 QwQ 本来学线性基是想过 YbtOJ 的最大异或对的,结果发现线性基是任意数的最大异或和,这一道题是一对,只能用 trie 树


练手板子题

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define int long longint p[55];void insert(int x)
{for(int i=50;i>=0;--i)if(x>>i&1){if(!p[i]) {p[i]=x;break;}else x^=p[i];}
}int pmax()
{int ans=0;for(int i=50;i>=0;--i)if((ans^p[i])>ans) ans^=p[i];return ans;
}signed main()
{int n,x;cin>>n;for(int i=1;i<=n;i++) cin>>x,insert(x);cout<<pmax();return 0;
}

行列式

行列式,是一种对于矩阵的特殊形式——方阵的表示形式。所谓方阵,就是 n × n n\times n n×n的矩阵。

一个 n × n n\times n n×n 的方阵 A A A 的行列式记为 det ⁡ ( A ) \det(A) det(A) 或者 ∣ A ∣ |A| A,一个 2 × 2 2\times2 2×2 矩阵的行列式可表示如下:
det ⁡ ( a b c d ) = a d − b c \det \begin{pmatrix} a&b\\ c&d \end{pmatrix}=ad-bc det(acbd)=adbc
把一个 n n n 阶行列式中的元素 a i j a_{ij} aij 所在的第 i i i行和第 j j j列划去后,留下来的 n − 1 n-1 n1 阶行列式叫做元素 a i j a_{ij} aij 的余子式,记作 M i j M_{ij} Mij。记 A i j = ( − 1 ) i + j M i j A_{ij}=(-1)^{i+j}M_{ij} Aij=(1)i+jMij,叫做元素 a i j a_{ij} aij 的代数余子式。

一个 n × n n\times n n×n 矩阵的行列式等于其任意行(或列)的元素与对应的代数余子式乘积之和,即:
det ⁡ ( A ) = a i 1 A i 1 + ⋯ + a i n + A i n = ∑ j = 1 n a i j ( − 1 ) i + j det ⁡ ( A i j ) \det(A)=a_{i1}A_{i1}+\cdots+a_{in}+A_{in}=\sum_{j=1}^na_{ij}(-1)^{i+j}\det(A_{ij}) det(A)=ai1Ai1++ain+Ain=j=1naij(1)i+jdet(Aij)
代码实现:

int dett(int a[maxn][maxn],int n)//n为阶数
{int dett=0,k=0,h=0;if(n==1) return a[0][0];else if(n==2) return a[0][0]*a[1][1]-a[0][1]*a[1][0];else{for(int p=0;p<n;p++){for(int i=0;i<n;i++)for(int j=0;j<n;j++){if(j==p) continue;tmp[h][k]=a[i][j],k++;if(k==n-1) h++,k=0;}dett=dett+a[0][p]*pow(-1,p)*det(tmp,n-1)}return dett;}
}

高斯消元

前置芝士

三角矩阵

上三角矩阵的对角线左下方的系数全部为 0 0 0,下三角矩阵的对角线右上方的系数全部为 0 0 0。三角矩阵可以看作是一般方阵的一种简化情形。由于带三角矩阵的矩阵方程容易求解,在解多元线性方程组时,总是将其系数矩阵通过初等变换化为三角矩阵来求解。

举个栗子,下面的矩阵 U U U 就是一个上三角矩阵。
U = [ u 1 , 1 u 1 , 2 u 1 , 3 ⋯ u 1 , n 0 u 2 , 2 u 2 , 3 ⋯ u 2 , n 0 0 ⋱ ⋱ ⋮ ⋮ ⋮ 0 ⋱ u n − 1 , n 0 0 ⋯ 0 u n , n ] U= \begin{bmatrix} u_{1,1}&u_{1,2}&u_{1,3}&\cdots&u_{1,n}\\ 0&u_{2,2}&u_{2,3}&\cdots&u_{2,n}\\ 0&0&\ddots&\ddots&\vdots\\ \vdots&\vdots&0&\ddots&u_{n-1,n}\\ 0&0&\cdots&0&u_{n,n} \end{bmatrix} U= u1,1000u1,2u2,200u1,3u2,300u1,nu2,nun1,nun,n

增广矩阵

又称扩增矩阵,就是在系数矩阵的右边添上一列,这一列是线性方程组的等号右边的值。

高斯消元

基本思想

通过一系列的加减消元运算,将方程组化为上三角矩阵。然后再逐一回代求出 x x x

实现过程

解方程:
{ 3 x 1 + 2 x 2 + x 3 = 6 2 x 1 + 2 x 2 + 2 x 3 = 4 4 x 1 − 2 x 2 − 2 x 3 = 2 \begin{cases} 3x_1+2x_2+x_3=6\\ 2x_1+2x_2+2x_3=4\\ 4x_1-2x_2-2x_3=2 \end{cases} 3x1+2x2+x3=62x1+2x2+2x3=44x12x22x3=2
我们把这个方程组写成增广矩阵的形式:

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

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

相关文章

扩散模型学习——代码学习

文章目录 引言正文UNet网络结构训练方法DDPM采样方法讲解Context上下文信息添加DDIM的方法详解 总结参考 引言 这是第一次接触扩散模型&#xff0c;为了学习&#xff0c;这里好好分析一下他的代码 正文 UNet网络结构 这部分主要是定义一下网络结构&#xff0c;以及相关的网…

递归方法实现字符串反转函数

递归函数是一种在函数内部调用自身的函数。它通过将复杂的问题分解成更小的子问题来解决。递归函数通常包含两部分&#xff1a;基本情况和递归调用。请使用递归方法实现字符串反转的C语言函数。 #include <stdio.h>void reverseString(char* str) {///Begin///// 递归基…

极智嘉(Geek+)柔性货箱到人拣选方案,助力Starlinks实现高效运营

近些年&#xff0c;电商业务席卷全球&#xff0c;一众企业蓬勃发展。比如沙特阿拉伯先进的物流与供应链解决方案供应商Starlinks的电子商务的销售额从6%增长到了23%。为满足日益增长的国际电商业务需求&#xff0c;以及订单交付时效性更高的要求&#xff0c;Starlinks与全球仓储…

DNS入门学习:什么是TTL值?如何设置合适的TTL值?

TTL值是域名解析中的一个重要参数&#xff0c;TTL值设置的合理与否对于域名解析的效率和准确性有着非常重要的影响&#xff0c;因此对于网站管理者而言&#xff0c;了解什么是TTL值以及如何设置合理的TTL值对于做好域名解析管理&#xff0c;确保网站的安全稳定运行至关重要。 …

领先一步,效率翻倍:PieCloudDB Database 预聚集特性让查询速度飞起来!

在大数据时代&#xff0c;如何有效地管理和处理海量数据成为了企业面临的核心挑战。为此&#xff0c;拓数派推出了首款数据计算引擎 PieCloudDB Database&#xff0c;作为一款全新的云原生虚拟数仓&#xff0c;旨在提供更高效、更灵活的数据处理解决方案。 PieCloudDB 的设计理…

Linux入门攻坚——4、shell编程初步、grep及正则表达式

bash的基础特性&#xff08;续&#xff09;&#xff1a; 1、提供了编程环境&#xff1a; 编程风格&#xff1a;过程式&#xff1a;以指令为中心&#xff0c;数据服务于执行&#xff1b;对象式&#xff1a;以数据为中心&#xff0c;指令服务于数据 shell编程&#xff0c;编译执…

智能井盖传感器详细使用效果是什么?

随着每一个城市基础设施在不断完善&#xff0c;城市建设过程之中&#xff0c;井盖的数量也在处于不断增加阶段&#xff0c;在大街小巷之中随处可见形式各类&#xff0c;大小不一的井盖。看似结实牢固的井盖&#xff0c;但是可能由于时间问题&#xff0c;导致年久失修&#xff0…

Spring Boot集成SpringFox 3.0与Pageable参数处理

Springfox 3.0有多个模块&#xff0c;提供了spring boot starter&#xff0c;与Spring Boot集成时仅需引入springfox-boot-starter&#xff0c;如下&#xff1a; <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter<…

经典卷积神经网络 - LeNet

该模型用于手写的数字识别。 LeNet模型包含了多个卷积层和池化层&#xff0c;以及最后的全连接层用于分类。其中&#xff0c;每个卷积层都包含了一个卷积操作和一个非线性激活函数&#xff0c;用于提取输入图像的特征。池化层则用于缩小特征图的尺寸&#xff0c;减少模型参数和…

免费领取!TikTok Shop “全托管”黑五大促官方备战指南来啦!

黑五网一大促即将来袭&#xff0c;自“全托管”模式上线以来&#xff0c;TikTok for Business在沙特阿拉伯和英国市场开展了古尔邦节大促、夏季大促、返校季大促等活动&#xff0c;今年更是会借着黑五网一大促之际&#xff0c;首次覆盖美国市场&#xff0c;为全托管商家带来全球…

如何在Potplayer中使用公网访问群晖WebDav?

文章目录 1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav4 内网穿透&#xff0c;映射至公网5 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内容让人一言难尽&#xff0c;就算是购买了国外的优秀作品&#xff0c;也总是在关键剧情上删删…

系统性认知网络安全

前言&#xff1a;本文旨在介绍网络安全相关基础知识体系和框架 目录 一.信息安全概述 信息安全研究内容及关系 信息安全的基本要求 保密性Confidentiality&#xff1a; 完整性Integrity&#xff1a; 可用性Availability&#xff1a; 二.信息安全的发展 20世纪60年代&…

学生成绩管理神器

老师们是否还在为繁琐的成绩查询而烦恼&#xff1f;是否希望有一个简便易用的成绩查询系统&#xff0c;让同学们可以自助查询成绩&#xff1f;那么&#xff0c;这篇文章就是你的救星&#xff01; 让我们一起来认识一下这个成绩查询系统。它是一个基于网页或微信小程序的应用程序…

数据结构实验1约瑟夫环

刚开始m值为20 循环链表 #include<iostream>using namespace std;typedef struct LNode {int data; int num;struct LNode *next;}LNode ,*LinkList; int m 20; int n;void Init(LinkList &L) {cin>>n;LinkList p L;p ->data n;for(int i 0 ; i < n…

Spring底层原理(一)

Spring底层原理&#xff08;一&#xff09; ApplitionContext与BeanFactory BeanFactory是ApplicationContext的父接口BeanFactory才是Spring的核心容器,ApplicationContext对其功能进行了组合 类图 内部方法调用 BeanFactory的功能 获取bean检查是否包含bean获取bean别名 …

220V降压5V用什么方案比较好?

对于将220V降压到5V的方案&#xff0c;根据输出电流大小&#xff0c;有两种选择&#xff1a;AH8652和AH8699B。 AH8652是一个sot23-3封装的芯片&#xff0c;固定输出5V&#xff0c;峰值电流为200mA&#xff0c;并内置了MOS管。这个芯片适合需要固定输出电压的应用场景&#xf…

设计模式:模板模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)

简介&#xff1a; 模板模式&#xff0c;它是一种行为型设计模式&#xff0c;它定义了一个操作中的算法的框架&#xff0c;将一些步骤延迟到子类中实现&#xff0c;使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 通俗地说&#xff0c;模板模式就是将某一行…

✔ ★【备战实习(面经+项目+算法)】 10.22学习时间表(算法刷题:4道)

✔ ★【备战实习&#xff08;面经项目算法&#xff09;】 坚持完成每天必做如何找到好工作1. 科学的学习方法&#xff08;专注&#xff01;效率&#xff01;记忆&#xff01;心流&#xff01;&#xff09;2. 每天认真完成必做项&#xff0c;踏实学习技术 认真完成每天必做&…

简单易用的操作界面,让你轻松制作电子期刊

随着互联网的发展&#xff0c;电子期刊已经成为了越来越多人的选择。FLBOOK在线制作电子杂志平台作为一款简单易用的操作界面&#xff0c;为用户提供了制作电子期刊的便利。 但是你知道如何使用FLBOOK在线制作电子杂志平台制作一本电子期刊吗&#xff1f; 1.点击开始创作&#…

Spring boot 集成 xxl-job

文章目录 xxl-job 简介引入xxl-job依赖配置xxl-job config添加properties文件配置BEAN模式&#xff08;方法形式&#xff09;步骤一&#xff1a;执行器项目中&#xff0c;开发Job方法&#xff1a;步骤二&#xff1a;调度中心&#xff0c;新建调度任务 xxl-job 简介 官网:https:…