鸡兔同笼,但是线性代数
灵感来自:bilibili,巨佬!
我们有 14 14 14 个头, 32 32 32 只脚,所有鸡和兔都没有变异,头和脚都完整,没有数错。还有什么 Bug 吗
小学奥数
假设全是鸡,则有 14 × 2 = 28 14 \times 2 = 28 14×2=28 只脚。
但是少了 4 4 4 只脚,因为我们看到一只兔子就施展膜法将其变成了鸡,导致所有兔子都变成了鸡。
每只兔子变成鸡,头数不变,少了两只脚,所以有 4 ÷ 2 = 2 4 \div 2 = 2 4÷2=2 只兔子,有 14 − 2 = 12 14 - 2 = 12 14−2=12 只鸡。
初中
鸡爷解:设有 x x x 只鸡, y y y 只兔。
则有:
{ x + y = 14 2 x + 4 y = 32 \begin{cases} x+y=14 \\ 2x+4y=32 \end{cases} {x+y=142x+4y=32
解得(过程太简单不写了 ,自行高斯消元):
{ x = 12 y = 2 \begin{cases} x=12 \\ y=2 \end{cases} {x=12y=2
进入正题!(已经完全了解矩阵的神犇跳到最后)
线性变换(线性映射)是什么:一个函数,输入输出都是向量,满足如下性质:
f ( k x ⃗ ) = k f ( x ⃗ ) f ( x ⃗ + y ⃗ ) = f ( x ⃗ ) + f ( y ⃗ ) \begin{aligned} f(k\vec x)&=kf(\vec x) \\ f(\vec x + \vec y) &= f(\vec x) + f(\vec y) \end{aligned} f(kx)f(x+y)=kf(x)=f(x)+f(y)
这个 f f f 就是一个线性映射,通常记为 A A A。
向量是什么:一个 vector
,还不懂吗。哦读者可能不是 C艹 党,所以说一下:向量就是一系列数,类似我们幼儿园就学过的数对。
向量也可以用来表示一个点,学习时通常是 2 2 2 维或 3 3 3 维的:
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+--+--+--+--+--+--+--O--+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+==+==+==+==+==+==+==+==+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
(-
和 |
是坐标轴,=
是 x x x 轴,H
是 y y y 轴,每条小线段长度为 1 1 1)
我们要表示图中的 O
点,就可以用数对,注意到 O
点在第 3 3 3 列,第 2 2 2 行,所以可以表示为 ( 3 , 2 ) (3, 2) (3,2)。
如果我们想换种方法呢?
[ 3 2 ] \begin{bmatrix} 3 \\ 2 \end{bmatrix} [32]
记为 O ⃗ \vec{O} O 怎么样? O O O 是名字,上面的箭头 ⃗ \vec{} 表示它是一个向量。
实际上,向量可以理解为一个点,也可以理解为一条从原点指向某个点的箭头。
向量的数乘(就是一个数字乘上一个向量)就是把这个向量的长度乘上这个数,也就是把 x x x 和 y y y 坐标分别乘上这个数。
向量的加法(两个向量之和)就是把两个向量头尾拼起来,然后记录它们最终指向的点,它们的和就是这个点。
是不是感觉和复数有点像?没错,复数可以表示向量,但是仅限二维,然而向量可以是三维,四维,一维,零维,甚至 114514 114514 114514 维(我乱说的)和 12288 12288 12288 维(据说 GPT 内部的向量就是这个)。
现在我们有一个神奇的线性映射 A A A,作用是把向量的长度乘 2 2 2。容易验证它满足线性映射的条件。
则对 O ⃗ \vec{O} O 进行 A A A 映射会怎么样?原本要记作 A ( O ⃗ ) A(\vec{O}) A(O) 的,但是我们可以省略括号(真的吗,函数也可以吗),记作 A O ⃗ A\vec{O} AO(不管你是怎么想的,反正目前数学界就是这么写的),也可以记作 A A A 和 O ⃗ \vec{O} O 的积,也就是它们相乘的结果。
其实,一个线性映射就是一个矩阵,它的具体含义暂且不谈,这里只需要知道两个矩阵相乘就是两个矩阵相继作用的结果,比如 A A A 和 B B B 相乘,就是 A B AB AB,表示先进行 B B B 变换再进行 A A A 变换,很奇怪,但是函数不就是这样的吗? A ( B ( u ⃗ ) ) A(B(\vec{u})) A(B(u)) 嘛,省略掉括号。
我们来看看这种运算是否满足交换律,结合律(显然满足分配律,因为就是定义):
f ( g ( x ) ) ≠ g ( f ( x ) ) f(g(x)) \not = g(f(x)) f(g(x))=g(f(x)),不满足交换律 😦
f ( g ( h ( x ) ) ) = f ( g ( h ( x ) ) ) f(g(h(x))) = f(g(h(x))) f(g(h(x)))=f(g(h(x))),满足结合律 😃
不过好像有点不太好?我们来详细地说一下。
( A B ) C = A ( B C ) (AB)C = A(BC) (AB)C=A(BC)
对于前者:依次进行 C C C, B B B, A A A 变换。
对于后者:依次进行 C C C, B B B, A A A 变换。
有什么可以证明的?
接下来讲讲矩阵里面具体是什么。
对于一个二维空间,所有点都可以由两个向量 u ⃗ \vec{u} u 和 v ⃗ \vec{v} v 分别乘上两个数 a a a 和 b b b 的和得到,具体来讲是 x ⃗ = a u ⃗ + b v ⃗ \vec{x}=a\vec{u}+b\vec{v} x=au+bv。
通常,这个 u ⃗ \vec{u} u 就是 [ 1 0 ] \begin{bmatrix} 1\\0\end{bmatrix} [10],一条指向正右方的长度为 1 1 1 的向量, v ⃗ \vec{v} v 就是 [ 0 1 ] \begin{bmatrix} 0 \\ 1 \end{bmatrix} [01],而你会惊喜地发现 a a a 和 b b b 就分别是 x x x 坐标和 y y y 坐标,而这个向量就记作 [ a b ] \begin{bmatrix} a \\ b \end{bmatrix} [ab]。
而这里的 u ⃗ \vec{u} u 和 v ⃗ \vec{v} v 就称作二维空间中的两个基向量,两个二维的基向量可以张成一个二维空间(就是可以控制 a a a 和 b b b 到达二维空间上的每一个点),这个二维空间记作 s p a n ( u ⃗ , v ⃗ ) \mathrm{span}(\vec{u},\vec{v}) span(u,v),不过超纲了(大小写我也不大记得了)。
但如果 u ⃗ \vec{u} u 或者 v ⃗ \vec{v} v 不是这两个向量,那么还可不可以这样呢?绝大多数(无法这样的情况存在,但是是一个零测集)情况下,可以。但是就不会是 x x x 坐标和 y y y 坐标了。
比如加入 u ⃗ = [ 3 0 ] \vec{u} = \begin{bmatrix} 3 \\ 0 \end{bmatrix} u=[30], v ⃗ = [ 0 2 ] \vec{v} = \begin{bmatrix} 0 \\ 2 \end{bmatrix} v=[02],那么这里 a a a 和 b b b 就都是 1 1 1,可以记作由我们的新的基向量张成的空间上的点 [ 1 1 ] \begin{bmatrix} 1 \\ 1 \end{bmatrix} [11],此时 a = b = 1 a=b=1 a=b=1。
而一个矩阵就是两个基向量拼起来,输入的向量在表达上不变。
具体来讲,设原来的(通常是由上面提到的最经典的使得 a = x , b = y a=x,b=y a=x,b=y 的两个基向量)空间上有一个向量 u ⃗ \vec{u} u,然后这个矩阵所含有的两个向量张成的空间上找到一个向量 v ⃗ \vec{v} v,使得两个向量字面上一样。
比如原本的空间是这样的,两个基向量分别是 [ 1 0 ] \begin{bmatrix} 1 \\ 0 \end{bmatrix} [10] 和 [ 0 1 ] \begin{bmatrix} 0 \\ 1 \end{bmatrix} [01]:
+--+--+--+--+--+--+--A--+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+--+--+--+--+--+--+--O--+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+==+==+==+==+==+==+==+==+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
+--+--+--+--+--+--+--+--+
矩阵的两个向量张成的空间是这样的,两个基向量分别是 [ 1 0 ] \begin{bmatrix} 1 \\ 0 \end{bmatrix} [10] 和 [ 0 2 ] \begin{bmatrix} 0 \\ \color{red}2 \end{bmatrix} [02]:
+--+--+--+--+--+--+--+--+
| | | | H | | | |
| | | | H | | | |
+--+--+--+--+--+--+--P--+
| | | | H | | | |
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
| | | | H | | | |
+==+==+==+==+==+==+==+==+
| | | | H | | | |
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
| | | | H | | | |
+--+--+--+--+--+--+--+--+
| | | | H | | | |
| | | | H | | | |
+--+--+--+--+--+--+--+--+
其中 O
点和 P
点在字面上都是 [ 3 2 ] \begin{bmatrix} 3 \\ 2 \end{bmatrix} [32],但是它们的位置却完全不一样。
而实际上,如果把第二个空间直接平移到第一个空间上面,使得原点重合(线性映射的性质保证了原点必然不变),那么 P P P 点会移动到 A A A 点的位置(实际上不会,因为我画的坐标轴的线是有宽度的,实际上不应该有宽度),而这个 A A A 点就是这个结果,也就是 [ 3 4 ] \begin{bmatrix} 3 \\ 4 \end{bmatrix} [34]。
那么,如何计算呢?每算一个都画两个网格完全没必要吧?没事,我们来跟踪一下 x x x 和 y y y,设两个基向量为 [ a b ] \begin{bmatrix} a \\ b \end{bmatrix} [ab] 和 [ c d ] \begin{bmatrix} c \\ d \end{bmatrix} [cd]。
那么先看 x x x 坐标,原本的基向量的 x x x 分别是 1 1 1 和 0 0 0,显然因为右边是 0 0 0,所以第一个基向量的系数(如果你记忆力还不错的话, a a a)就是原本的 x x x,而现在变成了 a x ax ax。而第二个基向量的系数为 y y y,所以 x x x 又增加了 c y cy cy,最终的 x x x 坐标为 a x + c y ax+cy ax+cy。
再看 y y y 坐标,同理,是 b x + d y bx+dy bx+dy。
而一个矩阵到底如何表示呢?很简单,把两个基向量拼到一起即可。
所以我们就得到了公式(注意,我把各个数的位置调换了一下,原本是 [ a c b d ] \begin{bmatrix} a & c \\ b & d \end{bmatrix} [abcd]):
[ a b c d ] [ e f ] = [ a e + b f c e + d f ] \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} e \\ f \end{bmatrix} = \begin{bmatrix} ae+bf \\ ce+df \end{bmatrix} [acbd][ef]=[ae+bfce+df]
鼓掌!
那么我们如何计算两个矩阵相继作用的结果,也就是它们的积呢?
[ a b c d ] [ e f g h ] = what? \begin{bmatrix} a & b \\ c & d \end{bmatrix} \begin{bmatrix} e & f \\ g & h \end{bmatrix} = \text{what?} [acbd][egfh]=what?
我们可以看看两个基向量的去向。
首先,原本的基向量为 [ e g ] \begin{bmatrix} e \\ g \end{bmatrix} [eg] 和 [ f g ] \begin{bmatrix} f \\ g \end{bmatrix} [fg]。
第一个基向量变换后为 [ a e + b g c e + d g ] \begin{bmatrix} ae+bg \\ ce + dg\end{bmatrix} [ae+bgce+dg]。
第二个基向量变换后为 $\begin{bmatrix} af+bh \ cf+dh \end{bmatrix} $。
所以最终的矩阵为 [ a e + b g a f + b h c e + d g c f + d h ] \begin{bmatrix} ae+bg & af+bh \\ ce+dg & cf+dh\end{bmatrix} [ae+bgce+dgaf+bhcf+dh]。
当然,多次用矩阵乘法也可以证明结合律,试试看!(会逝世的,最好别试)
矩阵除法咋办? A B = A ⋅ 1 B = A B − 1 \dfrac{A}{B}=A \cdot \dfrac{1}{B} = AB^{-1} BA=A⋅B1=AB−1
矩阵求逆如何求? A − 1 = ? A^{-1}=? A−1=?。
先介绍一个单位矩阵的概念,其实就是多个最纯粹的基向量拼起来。比如二阶单位矩阵为 [ 1 0 0 1 ] \begin{bmatrix} 1& 0 \\ 0 & 1 \end{bmatrix} [1001],三阶单位矩阵为 [ 1 0 0 0 1 0 0 0 1 ] \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix} 100010001 。
介绍一种方法:先把这个矩阵和单位矩阵拼起来,类似这样:$ \left[\begin{array}{c c|c c} a&b&1&0 \ c&d&0&1 \end{array}\right] $(我擦这 KaTeX \KaTeX KATEX 好难打),然后进行初等行变换直到左边为单位矩阵,类似这样:$ \left[\begin{array}{c c|c c} 1&0&e&f \ 0&1&g&h \end{array}\right] $,右边的就是 A A A 的逆。
初等行变换是什么?
- 交换两行,记作 r a ↔ r b r_a \leftrightarrow r_b ra↔rb。
- 把一行所有元素同时变成原来的某一倍,记作 k r a kr_a kra。
- 把两行元素相加,存到这两行中的某一行中,记作 r a + r b r_a+r_b ra+rb。
其实第三种和第二种结合可以变成一种更厉害的,一般用这种:
- 把两行元素同时扩倍不同的(相同也可以)倍数后相加,结果存到这两行中的某一行中,记作 k 1 r a + k 2 r b k_1r_a+k_2r_b k1ra+k2rb。
于是我们就可以这样干:
将鸡兔同笼的矩阵记为 [ 1 1 2 4 ] \begin{bmatrix} 1 & 1 \\ 2 & 4 \end{bmatrix} [1214]。
将题目记为 [ 14 32 ] \begin{bmatrix}14 \\ 32 \end{bmatrix} [1432]。
我们对矩阵求个逆:
[ 1 1 1 0 2 4 0 1 ] → r 2 − 2 r 1 [ 1 1 1 0 0 2 − 2 1 ] → r 1 − 1 2 r 2 [ 1 0 2 − 1 2 0 2 − 2 1 ] → 1 2 r 2 [ 1 0 2 − 1 2 0 1 − 1 1 2 ] \begin{aligned} & \left[\begin{array}{c c|c c} 1&1&1&0 \\ 2&4&0&1 \end{array}\right] \\ \xrightarrow{r_2-2r_1} & \left[\begin{array}{c c|c c} 1&1&1&0 \\ 0&2&-2&1 \end{array}\right] \\ \xrightarrow{r_1-{1 \over 2} r_2} & \left[\begin{array}{c c|c c} 1&0&2&-{1\over 2} \\ 0&2&-2&1 \end{array}\right] \\ \xrightarrow{{1 \over 2}r_2} & \left[\begin{array}{c c|c c} 1&0&2&-{1\over 2} \\ 0&1&-1&1 \over 2 \end{array}\right] \end{aligned} r2−2r1r1−21r221r2[12141001][10121−201][10022−2−211][10012−1−2121]
故逆矩阵为 [ 2 − 1 2 − 1 1 2 ] \begin{bmatrix} 2 & -{1 \over 2} \\ -1 & 1 \over 2 \end{bmatrix} [2−1−2121]。
将逆矩阵乘上 [ 14 32 ] \begin{bmatrix}14 \\ 32 \end{bmatrix} [1432]:
[ 2 − 1 2 − 1 1 2 ] [ 14 32 ] = [ 28 − 16 16 − 14 ] = [ 12 2 ] \begin{bmatrix} 2 & -{1 \over 2} \\ -1 & 1 \over 2 \end{bmatrix}\begin{bmatrix}14 \\ 32 \end{bmatrix}=\begin{bmatrix}28-16 \\ 16-14 \end{bmatrix}=\begin{bmatrix}12 \\ 2 \end{bmatrix} [2−1−2121][1432]=[28−1616−14]=[122]
我们成功地用 229 229 229 行 Markdown 代码解出了超级难的鸡兔同笼问题!鼓掌!
相关文章:
鸡兔同笼,但是线性代数
灵感来自:bilibili,巨佬! 我们有 14 14 14 个头, 32 32 32 只脚,所有鸡和兔都没有变异,头和脚都完整,没有数错。还有什么 Bug 吗 小学奥数 假设全是鸡,则有 14 2 28 14 \time…...
01---java面试八股文——springboot---10题
01-你是怎么理解Spring Boot 的约定优于配置 约定优于配置是一种软件设计的范式,它的核心思想是减少软件开发人员对于配置项的维护,从而让开发人员更加聚焦在业务逻辑上。Spring Boot 就是约定优于配置这一理念下的产物,它类似于 Spring 框架…...

计算机毕业设计 二手图书交易系统的设计与实现 Java实战项目 附源码+文档+视频讲解
博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…...

【进阶OpenCV】 (3)--SIFT特征提取
文章目录 sift特征提取一、基本原理二、特点三、代码实现1. 函数方法2. 检测图像中的关键点3. 绘制关键点4. 计算关键点描述符5. 输出特征坐标点 总结 sift特征提取 SIFT(Scale-Invariant Feature Transform,尺度不变特征变换)特征检测是一种…...

HarmonyOS/OpenHarmony Audio 实现音频录制及播放功能
关键词:audio、音频录制、音频播放、权限申请、文件管理 在app的开发过程中时常会遇见一些需要播放一段音频或进行语音录制的场景,那么本期将介绍如何利用鸿蒙 audio 模块实现音频写入和播放的功能。本次依赖的是 ohos.multimedia.audio 音频管理模块&am…...

css 中 ~ 符号、text-indent、ellipsis、ellipsis-2、text-overflow: ellipsis、::before的使用
1、~的使用直接看代码 <script setup> </script><template><div class"container"><p><a href"javascript:;">纪检委</a><a href"javascript:;">中介为</a><a href"javascript:…...

Activiti 工作流大致了解
一、什么是 Activiti 简而言之,就是系统的流程图,如:请假审批流程、账单审批流程等。 二、mysql与pom配置 mysql要使用jdbc:mysql://localhost:3306/activiti?autoReconnecttrue pom文件要添加关键依赖 <!--activiti核心依赖--> &…...
速盾:高防 CDN,网站安全的有力保障
在当今数字化时代,网站安全已成为企业和个人关注的焦点。随着网络攻击手段的不断升级,传统的安全防护措施已经难以满足需求。而高防 CDN(Content Delivery Network,内容分发网络)的出现,为网站安全提供了有…...

宝塔搭建nextcould 30docker搭建onlyoffic8.0
宝塔搭建nextcould 宝塔搭建nextcould可以参考这两个博文 我搭建的是30版本的nextcould,服务组件用的是下面这些,步骤是一样的,只是版本不一样而已 nginx 1.24.0 建议选择nginx,apache没成功。 MySQL 8.0以上都可以 php 8.2.…...

【源码+文档+调试讲解】交通信息管理系统
摘 要 智能交通信息管理系统是一种基于计算机技术的软件系统,旨在提高交通管理的效率和服务质量。通过该系统可以实现智能交通管理的全面管理和优化。智能交通信息管理系统具备集成管理功能。它能够整合智能交通管理的各个业务环节,包括个人中心、用户管…...
小阿轩yx-案例:Ansible剧本文件实践
小阿轩yx-案例:Ansible剧本文件实践 Playbook 介绍 什么是 playbook playbook 顾名思义,即剧本,现实生活中演员按照剧本表演在 ansible 中,由被控计算机表演,进行安装,部署应用,提供对外的服…...
【ShuQiHere】深入理解微架构(Microarchitecture):LC-3 的底层实现 ️
【ShuQiHere】🖥️ 微架构(Microarchitecture) 是计算机体系结构中的重要概念,它定义了如何将 指令集架构(Instruction Set Architecture, ISA) 转化为实际硬件。通过微架构,我们可以理解计算机…...
Ubuntu24.04.1系统下VideoMamba环境配置
文章目录 前言第一步:基本的环境创建第二步:causal-conv1d和mamba_ssm库的安装第三步:安装requirements.txt 前言 VideoMamba环境的配置折磨了我三天,由于Mamba对Cuda的版本有要求,因此配置环境的时候Cuda版本以及各种…...

c++第十二章续(队列结构类模拟)
队列类 设计类,需要开发公有接口和私有实现 Queue类接口 公有接口: 默认初始化,和可以用显式初始化覆盖默认值 Queue类的实现 如何表示队列数据: 一种方法是使用new动态分配一个数组,它包含所需的元素数。不过&…...

数据集-目标检测系列-豹子 猎豹 检测数据集 leopard>> DataBall
数据集-目标检测系列-豹子 猎豹 检测数据集 leopard>> DataBall 数据集-目标检测系列-豹子 猎豹 检测数据集 leopard 数据量:5k 想要进一步了解,请联系。 DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集&#x…...

基于ESP8266—AT指令连接阿里云+MQTT透传数据(3)
MQTT_RX设备为接收(订阅)数据的Topic,使用ESP8266通过AT指令实现。 首先需要串口通信软件,如 SSCOM、PuTTY、SecureCRT 等串口调试工具,功能丰富,支持常见的串口调试功能,用于发送AT指令。 以下是ESP8266通过AT指令连接阿里云MQTT服务的步骤: 1、初始化WiFi 发送下面…...

redis的数据结构,内存处理,缓存问题
redisObject redis任意数据的key和value都会被封装为一个RedisObject,也叫redis对象: 这就redis的头信息,占有16个字节 redis中有两个热门数据结构 1.SkipList,跳表,首先是链表,和普通链表有以下差异&am…...
机器学习模型评估与选择
前言 承接上篇讲述了机器学习有哪些常见的模型算法,以及使用的场景,本篇将继续讲述如何选择模型和评估模型。几个概念了解一下: 经验误差:模型在训练集上的误差称之为经验误差;过拟合:模型在训练集上表现…...

Web认识 -- 第一课
文章目录 前言一、HTML是什么?二、了解Web1. 基本概念2.Web标准3. Web构成1.前端1. HTML2.CSS3. javaScript4.常见浏览器介绍 2.Web标签构成1.结构标准2.表现标准 -- css3. 行为标准 -- javaScript 总结 前言 这里是我们进入前端学习的开端,在本次更新之后我会陆续…...

Recaptcha2 图像识别 API 对接说明
Recaptcha2 图像识别 API 对接说明 本文将介绍一种 Recaptcha2 图像识别2 API 对接说明,它可以通过用户输入识别的内容和 Recaptcha2验证码图像,最后返回需要点击的小图像的坐标,完成验证。 接下来介绍下 Recaptcha2 图像识别 API 的对接说…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

mac:大模型系列测试
0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何,是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试,是可以跑通文章里面的代码。训练速度也是很快的。 注意…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...
嵌入式面试常问问题
以下内容面向嵌入式/系统方向的初学者与面试备考者,全面梳理了以下几大板块,并在每个板块末尾列出常见的面试问答思路,帮助你既能夯实基础,又能应对面试挑战。 一、TCP/IP 协议 1.1 TCP/IP 五层模型概述 链路层(Link Layer) 包括网卡驱动、以太网、Wi‑Fi、PPP 等。负责…...