当前位置: 首页 > news >正文

西电-算法分析-研究生课程复习笔记

  • 24年秋的应该是张老师最后一次用卷面考试,他说以后这节课的期末考试都是在OJ上刷题了
  • 张老师上课还挺有意思的,上完之后能学会独立地思考算法设计问题了。整节课都在强调规模压缩这个概念,考试也是考个人对这些的理解,还挺好玩的哈哈

时间复杂度

T ( n ) T(n) T(n) 表示算法在输入规模为 n n n 时的实际运行时间

在实际算法设计中常用以下三种:

  • O O O 即“小于等于”,描述 T ( n ) T(n) T(n)的上界。
    1 、 n 、 2 n 、 2 n 2 ∈ O ( n 2 ) 1、n、2n、2n^2 \in O(n^2) 1n2n2n2O(n2)
  • Ω Ω Ω 即“大于等于”,描述 T ( n ) T(n) T(n)的下界。
    n 2 、 n 3 、 n 10 ∈ Ω ( n 2 ) n^2、n^3、n^{10} \in Ω(n^2) n2n3n10Ω(n2)
  • Θ Θ Θ 表示“等于”,表示 T ( n ) T(n) T(n)的上下界一致。
    n 2 , 3 n 2 ∈ Θ ( n 2 ) n^2,3n^2 \in Θ(n^2) n2,3n2Θ(n2)

在这里插入图片描述

主定理求递推式的时间复杂度
T ( n ) = a T ( n b ) + f ( n ) T(n)=aT(\frac{n}{b})+f(n) T(n)=aT(bn)+f(n)

其中 a a a 为归约后的子问题个数, n / b n/b n/b 为归约后子问题的规模, f ( n ) f(n) f(n)为 split 和 merge 子问题的解的工作量。

在这里插入图片描述
在这里插入图片描述

直接上例题:

  1. T ( n ) = 9 T ( n 3 ) + n T(n)=9T(\frac{n}{3})+n T(n)=9T(3n)+n
    a = 9 , b = 3 , f ( n ) = n , n l o g b a = n 2 a=9,b=3,f(n)=n,n^{log_ba}=n^2 a=9b=3f(n)=nnlogba=n2
    因为 f ( n ) = n < n 2 f(n) = n < n^2 f(n)=n<n2,即case 1, T ( n ) = Θ ( n 2 ) T(n)=Θ(n^2) T(n)=Θ(n2)

  2. T ( n ) = T ( 2 n 3 ) + 1 T(n)=T(\frac{2n}{3})+1 T(n)=T(32n)+1
    a = 1 , b = 2 3 , f ( n ) = 1 , n l o g b a = 1 a=1,b=\frac{2}{3}, f(n)=1, n^{log_ba}=1 a=1b=32,f(n)=1,nlogba=1
    因为 f ( n ) = = n l o g b a f(n) == n^{log_ba} f(n)==nlogba,即case 2,此时k为0,即 T ( n ) = Θ ( l o g n ) T(n)=Θ(logn) T(n)=Θ(logn)

  3. T ( n ) = 2 T ( n 4 ) + n 2 T(n)=2T(\frac{n}{4})+n^2 T(n)=2T(4n)+n2
    a = 2 , b = 4 , f ( n ) = n 2 , n l o g b a = n 0.5 a=2,b=4,f(n)=n^2, n^{log_ba}=n^{0.5} a=2b=4f(n)=n2,nlogba=n0.5
    因为 f ( n ) > n l o g b a f(n)>nlog_ba f(n)>nlogba,所以是第三种, T ( n ) = Θ ( n 2 ) T(n)=Θ(n^2) T(n)=Θ(n2)

排序

分-治-合并。

老师说的砍规模好像就包括了分和治。

砍规模干活多,则合并时候干活少。反之同理。
二分应用于排序:对于quicksort和mergesort,快排在砍规模时先要让两边各自大于或小于pivot,较麻烦;而合并不需要显式操作,较简单。归并排序在砍规模时直接将数组分成两半,较简单;合并时要进行两个数组的排序和合并,较麻烦。

规模 n 推到规模 n-1应用于排序:选择排序、冒泡排序、插入排序,每次只减少一个问题数量,是较慢的。而这三个排序中,选择排序和冒泡排序每次少一个未排序部分的最值元素,即砍规模时多干活。而插入排序每次少一个当前游标的元素(不一定是最值),而需要在合并时将游标元素在已排序部分插到合适的位置,即合并时多干活。

快排可能会退化,采用随机策略可以避免最坏复杂度为 O ( n 2 ) O(n^2) O(n2)

特殊线性排序不考。

建堆

按照树的形态去砍规模。

砍规模干活多:比如大顶堆,先选一个最大的放在堆顶,然后递归地处理两个子树。相当于规模直接砍半,无显式合并。
T ( n ) = 2 T ( n 2 ) + O ( n ) T(n)=2T(\frac{n}{2})+O(n) T(n)=2T(2n)+O(n),得 T ( n ) = Θ ( n l o g n ) T(n)=Θ(nlogn) T(n)=Θ(nlogn)

砍规模干活少:从最后一个节点开始一下一下砍,直接找最后一个没用的非叶节点即可。合并是将当前子树的根节点向下调整,耗时较长。 T ( n ) = 2 T ( n 2 ) + l o g n T(n)=2T(\frac{n}{2})+logn T(n)=2T(2n)+logn,得 T ( n ) = Θ ( n ) T(n)=Θ(n) T(n)=Θ(n)

Insert:把元素插入到最后一项,再向上调整。(堆排序同理)

如果要动态挑最值,可以用优先队列辅助。

Select

找数组中第k小的元素。

类似快排的partition,数组二分后看topk在哪边。

有种优化策略,将数组先分为多组(每组中奇数个元素),再在每组找个中位数,使用中位数的中位数作为pivot做partition。避免 O ( n 2 ) O(n^2) O(n2)的最坏时间复杂度。

矩阵相乘的二分方法

不考

最大子数组

找和最大的非空连续子数组。

方法1:二分,将数组分为两半,从左半部分、右半部分和跨中间这三部分的子数组中找个最大的。跨中间就是从中点往前面找个最大的后缀、往后边找个最大的前缀,相加就是跨中间的最大子数组。

方法2:DP,每次减少一个问题的规模。用一个全局变量保存历史最大子数组,并保存当前位置之前的子数组情况。如果之前的子数组之和已经为负数,则从当前位置另起一个新子数组。否则扩展之前的子数组到当前为止,即使当前元素为负数,全局变量保存的仍是之前的全局最大子数组。

DP

优化问题用到规模压缩,即DP。

  • 刻画最优子结构。列递推式/状态转移方程,能用中文解释。
  • 递归定义最优解的值。
  • 自下而上计算。原因:需要利用子问题,而多个父问题共享某些子问题,即子问题会被重复的求解。自下而上可以避免重复求解。如果改成自上而下,则需要使用备忘录做记忆化。

有些问题不能用子问题求最优解,比如最长简单路径问题,可能两个最长简单子路径拼起来不是简单路径。

相关问题(计算题):

1. 01背包

思路:穷举是每个物品要么放入要么不放入, O ( 2 n ) O(2^n) O(2n)。如果当前剩余容量为 k,在考虑第 i 个物品是否拿,拿不拿的两种情况,都可以利用 d p [ i − 1 ] [ k ] dp[i-1][k] dp[i1][k]这个子问题。由于不知道 k 是多少,每次都需要扫描一遍整个容量。

2. 最大子数组

上面写了。

3. LCS最长公共子序列

思路:穷举是 O ( 2 m + n ) O(2^{m+n}) O(2m+n)。如果已知当前游标 i i i j j j 前面的LCS,继而可以得到当前的LCS。即满足最优子结构。 d p dp dp数组起到备忘录的作用。

d p [ i ] [ j ] dp[i][j] dp[i][j] 表示序列 X X X 的前 i i i个字符和序列 Y Y Y 的前 j j j 个字符的 LCS 长度。

m, n = len(X), len(Y)
dp = [[0] * (n + 1) for _ in range(m + 1)]
for i in range(1, m + 1):for j in range(1, n + 1):if X[i - 1] == Y[j - 1]:dp[i][j] = dp[i - 1][j - 1] + 1else:dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])

4. 矩阵链乘

对于矩阵数组 [ A 1 , A 2 , A 3 ] [A1,A2,A3] [A1,A2,A3]的链乘最小代价,可以通过 [ A 1 , A 2 ] ∗ [ A 3 ] [A1,A2]*[A3] [A1,A2][A3] [ A 1 ] ∗ [ A 2 , A 3 ] [A1]*[A2,A3] [A1][A2,A3]的代价得到,利用了 [ A 1 , A 2 ] [A1,A2] [A1,A2] [ A 2 , A 3 ] [A2,A3] [A2,A3]这两个子问题。扩展即可知道子问题就是在各个分割点分割之后的子数组,利用子问题的方式就是从子问题中选一个最值。满足最优子结构。

会重复利用较短的子数组,所以自下而上,用个dp数组做备忘录。

5. ALS装配线调度

就是给了两条装配线的进入耗时、出去耗时。然后两条装配线在功能上是相同的,有多个装配站,两条线上同一个下标的装配站是功能相同,但用时可能不同。所以有个切换操作,可以把物品从一条线搬到另一条线,试图加速。所以要求一个物品完成装配花费的最短时间。长的像最短路径,其实因为方向是固定的,所以不是图而是树,问题稍微简单一点。

在这里插入图片描述

dp方法见下图。
在这里插入图片描述

贪心

如果可以直接知道用哪个子问题也能得到最优解,不用比较各个子问题的结果,就可以贪心、即贪心 ∈ \in DP。
相关问题如:

  • 分数背包:优先选单价高的。

  • 哈夫曼树:权重越高的字符,编码长度越短。权重越高,越会被后挑选,即越接近根节点。
    在这里插入图片描述

  • 活动选择:多个活动有起止时间,只能选互不冲突的,使活动数量最大化。DP是在当前活动处,找前面最后一个兼容本活动的活动,然后选或者不选,dp[i]是到前i个活动的最多兼容活动数。贪心策略是优先选结束时间早的,为后续活动留下更多时间。

最短路径

重点是确定通过计算次序。

之前的问题都是可以转化为一棵树,子问题向上扩展,最终得解。

而b->c、c->b都有可能,即c可以利用b之前的最短路径、b也可以利用c之前的最短路径。所以不能是一棵向上的树。所以需要确定一个计算次序,即谁是子问题。

Dijkstra

在无负权环的时候,这个计算次序是有的。他是子问题找父问题,即找一个最近的节点。如果有负权环,则有些很远节点的距离反而越来越近,计算次序就出现问题了。通过计算次序理解为什么是dp。

Bellman-ford

允许负权环,所以没有计算次序,所以迭代多轮来补偿。单源。个人感觉就是Floyd的单源形式。

SPFA就是如果有些点被更新后,才加入队列进行后续的松弛更新。

如果第V次还能松弛,说明有负权环。

Floyd

多源。 d p [ i ] [ j ] [ k ] dp[i][j][k] dp[i][j][k],已知未使用 k 时,i 到 j 的最短路径,看用 k 是否能继续缩短。

时间复杂度

floyd是 O ( V 3 ) O(V^3) O(V3)

迪杰斯特拉是每次找一个最近的点,然后基于这个中转点更新源点到中转点的邻点。所以对于邻接矩阵的实现,是V的循环里套个找邻点的V, O ( V 2 ) O(V^2) O(V2)
Bellman-ford是重复V-1次,然后松弛所有边,所以是 O ( V ∗ E ) O(V*E) O(VE)

搜索

无法用规模压缩,只能蛮力穷举。

设定边界减少不必要的搜索。

限界函数:杀死更多的节点、效率。

NP问题

P可以在多项式时间内求解,NP只能在多项式问题内验证解。

在这里插入图片描述

NPC(理论上可解,穷举):circuit-sat(电路可满足)、TSP(旅行商)、3-color三色(平面图染三色,使得相邻区域颜色不同)、哈密尔顿路径。

不可判定:Hilbert’s Tenth Problem(希尔伯特第十问题)、Halting Problen(停机问题)、Post Correspondence Problem(PCP)、Program Equivalence Problem(程序等价性问题)、Optimal Data Compression Problem(最优数据压缩问题)、Virus Identification Problem(病毒识别问题)、多元多项式整数根(费马大定理)、普斯特对应问题

相关文章:

西电-算法分析-研究生课程复习笔记

24年秋的应该是张老师最后一次用卷面考试&#xff0c;他说以后这节课的期末考试都是在OJ上刷题了张老师上课还挺有意思的&#xff0c;上完之后能学会独立地思考算法设计问题了。整节课都在强调规模压缩这个概念&#xff0c;考试也是考个人对这些的理解&#xff0c;还挺好玩的哈…...

音频数据增强:提升音频信号质量的多种技术

在音频处理和机器学习领域&#xff0c;音频数据增强是一种常用的技术&#xff0c;旨在通过对原始音频信号进行各种变换和处理&#xff0c;生成更多样化的训练数据。这不仅可以提高模型的鲁棒性&#xff0c;还能改善其在真实世界应用中的表现。本文将介绍几种常用的音频数据增强…...

如何在 Ubuntu 22.04 上安装 Caddy Web 服务器教程

简介 Caddy 是一个开源的 Web 服务器&#xff0c;它支持静态和现代 Web 应用程序&#xff0c;使用预定义的配置规则&#xff0c;并为所有链接的域名自动启用 HTTPS。Caddy 使用 GO 语言编写&#xff0c;提供了用户友好的配置指令&#xff0c;使你既可以将其用作 Web 服务器&am…...

python_excel列表单元格字符合并、填充、复制操作

读取指定sheet页&#xff0c;根据规则合并指定列&#xff0c;填充特定字符&#xff0c;删除多余的列&#xff0c;每行复制四次&#xff0c;最后写入新的文件中。 import pandas as pd""" 读取指定sheet页&#xff0c;根据规则合并指定列&#xff0c;填充特定字…...

基于GAN和RL的思想来训练对话生成

Paper https://arxiv.org/pdf/1701.06547.pdf 基于GAN和RL的思想来训练对话生成 Implementation https://github.com/jiweil/Neural-Dialogue-Generation/tree/master/Adversarial...

小米路由器IPv6 功能使用指南

本文不限于多层路由使用IPv6 的情况&#xff0c;提供解决IPv6 无法获取的更硬核的方法&#xff0c;需要有ssh 工具。&#xff08;无安卓设备&#xff0c;测试环境win、mac、ios&#xff09; 首先明确一点&#xff0c;就是如果想让你的设备得到GUA 地址&#xff0c;即访问 6.i…...

运放输入偏置电流详解

1 输入阻抗与输入偏置电路关系 在选择运放和仪表运放时&#xff0c;经常听到这样的说法&#xff1a;“需要非常高的输入阻抗”&#xff0c;事实上真实如此吗&#xff1f; 输入阻抗&#xff08;更确切的说是输入电阻&#xff09;很少会成为一个重要的问题&#xff08;输入电容也…...

C++指针类型的基本理论和使用方式-学习记录

一、指针简概 &#xff08;一&#xff09;指针定义 指针&#xff08;pointer&#xff09;是“指向&#xff08;point to&#xff09;”另外一种类型的复合类型。与引用类似&#xff0c;指针也实现了对其他对象的间接访问。然而指针与引用相比又有很多不同点。其一&#xff0c;…...

Elasticsearch:使用 Playground 与你的 PDF 聊天

LLMs作者&#xff1a;来自 Elastic Toms Mura 了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。 Elasticsearch 8.16 具有一项新功能&#xff0c;可让你将 PDF 文件直接上传到 Kibana 并使用 Pla…...

计算机网络之---物理层设备

什么是物理层设备 物理层设备是指负责数据在物理媒介上传输的硬件设备&#xff0c;它们主要处理数据的转换、信号的传输与接收&#xff0c;而不涉及数据的内容或意义。常见的物理层设备包括网卡、集线器、光纤收发器、调制解调器等。 物理层设备有哪些 1、网卡&#xff08;N…...

【Duilib】 List控件支持多选和获取选择的多条数据

问题 使用Duilib库写的一个UI页面用到了List控件&#xff0c;功能变动想支持选择多行数据。 分析 1、List控件本身支持使用SetMultiSelect接口设置是否多选&#xff1a; void SetMultiSelect(bool bMultiSel);2、List控件本身支持使用GetNextSelItem接口获取选中的下一个索引…...

2025新春烟花代码(二)HTML5实现孔明灯和烟花效果

效果展示 源代码 <!DOCTYPE html> <html lang"en"> <script>var _hmt _hmt || [];(function () {var hm document.createElement("script");hm.src "https://hm.baidu.com/hm.js?45f95f1bfde85c7777c3d1157e8c2d34";var …...

如何在 Ubuntu 22.04 上集成 Collabora Online 教程

简介 在本教程中&#xff0c;我们将详细讲解如何在 Ubuntu 22.04 操作系统上安装 Collabora Online。 Collabora Online 是一个基于 LibreOffice 技术的开源办公套件。它提供了许多功能&#xff0c;其中最有用的一个功能是 Collabora 提供了 Word 文档、电子表格、演示文稿等…...

Linux系统启动jar包--Java8

启动命令及参数 1. 启动命令模板 nohup java \ -Xms512m \ -Xmx1024m \ -Xmn256m \ -XX:MetaspaceSize128m \ -XX:MaxMetaspaceSize256m \ -XX:UseG1GC \ -XX:InitiatingHeapOccupancyPercent45 \ -XX:PrintGCDetails \ -XX:PrintGCDateStamps \ -XX:PrintGCApplicationStopp…...

linux-定制化rpm(rpmbuild)

一. 引文&#xff1a; 为实现我们的快速安装&#xff0c;特定服务需求的服务部署需求&#xff0c; 我们选择了通过source编译后定制成rpm&#xff0c;存放至自定义yum仓库&#xff0c;通过yum工具规范化管理及部署服务。目前比较常用的rpm打包方式分别为rpmbuild和fpm(在rpmbui…...

面向对象分析与设计Python版 分析与设计概述

文章目录 一、软件工程概述二、分析与设计概述 一、软件工程概述 高质量软件系统的基本要求 架构性内聚可重用性可维护性可扩展性灵活性 软件开发过程模型&#xff1a;是指根据软件开发项目从开始到结束的一系列步骤和方法&#xff0c;建模为不同的模型。常见的有&#xff1…...

npm发布流程说明

一、进入要发布的项目根目录&#xff0c;初始化为npm包 npm initname&#xff1a;最重要的字段之一&#xff0c;项目名称&#xff08;少于214个字节&#xff09;。没有name和version不能进行安装&#xff1b; version&#xff1a;最重要的字段之一&#xff0c;项目版本。没有n…...

Nginx反向代理请求头有下划线_导致丢失问题处理

后端发来消息说前端已经发了但是后端没收到请求。 发现是下划线的都没收到&#xff0c;搜索之后发现nginx默认request的header中包含’_’时&#xff0c;会自动忽略掉。 解决方法是&#xff1a;在nginx里的nginx.conf配置文件中的http部分中添加如下配置&#xff1a; unders…...

计网C1C2C3答案自用

Chapter 1 Computer Network and the Internet Review Questions Solution R1. What is the difference between a host and end system? List several different types of end system. Is a Web server an end system? There is no difference between a host and an end …...

为什么要分为大端和小端

1.大端序 0x12345678 地址&#xff1a; 0x00 0x01 0x02 0x03 数据&#xff1a; 0x12 0x34 0x56 0x78 高位字节存储在低地址&#xff0c;常用语网络协议&#xff0c;便于人阅读、书写类似。 2.小端序 0x12345678 地址&#xff1a; 0x00 0x01 0x02 0x03 …...

通过可穿戴外骨骼,以更灵活的方式操作你的机器人。

今天&#xff0c;我们将介绍一款专为控制 Mercury X1 和 Mercury B1 机械臂而设计的创新外骨骼。这种外骨骼以人类手臂的结构为蓝本&#xff0c;可实现直观和精确的控制。 开发这种外骨骼的动机源于人们对深度学习和机器学习等领域日益增长的兴趣。这些技术使机器人能够自主学习…...

【大数据基础】大数据概述

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈大数据技术原理与应用 ⌋ ⌋ ⌋专栏系统介绍大数据的相关知识&#xff0c;分为大数据基础篇、大数据存储与管理篇、大数据处理与分析篇、大数据应用篇。内容包含大数据概述、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数…...

使用双向链表优化数组操作的性能

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 背景 双向链表的优势 实现方案 性能优化 …...

Lua语言的语法

Lua语言的探索与应用 引言 Lua是一种轻量级、高性能的脚本语言&#xff0c;广泛应用于游戏开发、嵌入式系统和很多应用程序中。它的灵活性和高效性使得Lua成为软件开发中不可或缺的一部分。本文将从Lua的历史、语法、特色、使用案例及其在实际开发中的应用进行深入探讨。 Lu…...

Linux随记(十四)

一、处理vsftpd漏洞 【vsftpd安全漏洞(CVE-2021-30047)】 #操作系统1&#xff1a;bclinux euler 21.10#操作系统2&#xff1a;kylin v10二、处理ntp漏洞 【NTPMode6检测漏洞【原理扫描】】 #操作系统1&#xff1a;bclinux euler 21.10 cp /etc/ntp.conf /etc/ntp.conf.bak202…...

【Linux网络编程】第二十二弹---深入理解 I/O 多路转接之 epoll:系统调用、工作原理、代码演示及应用场景

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、I/O 多路转接之 epoll 1.1、epoll 初识 1.2、epoll 的相关系统调用 1.2.1、epoll_create 1.2.2、epol…...

AI赋能服装零售:商品计划智能化,化危机为转机

在服装零售这片竞争激烈的战场上&#xff0c;每一个细微的决策都可能成为品牌兴衰的关键。当市场波动、消费者口味变化、供应链挑战接踵而至时&#xff0c;许多品牌往往将危机归咎于外部环境。然而&#xff0c;真相往往更为深刻——“危机不是外部的&#xff0c;而是你的商品计…...

课程预告|卓翼飞思多旋翼无人机集群实验课程即将上线,互动赢好礼

《多旋翼无人飞行器控制系统开发》实验课程自推出以来&#xff0c;吸引了众多高校的关注。目前&#xff0c;该课程已在多所学校成功实施&#xff0c;并广受好评。 点击链接查看飞控课程详情&#xff1a;课程上新| 卓翼飞思《多旋翼无人飞行器控制系统开发》实验课程正式发布 …...

AWS Glue从GCP的bigquery导入数据到AWS Redshift数据仓库

准备工作 创建账号与服务账号&#xff1a;拥有Google Cloud账号&#xff0c;创建有BigQuery权限的服务账号&#xff1b;拥有AWS账号&#xff0c;创建有相关权限的IAM用户。创建资源&#xff1a;创建Amazon Redshift集群或Redshift Serverless工作区&#xff0c;创建用于存储数…...

zookeeper shell操作和zookeeper 典型应用(配置中心、集群选举服务、分布式锁)

文章目录 引言I zookeeper客户端命令查看子节点 ls创建子节点 create获取节点信息 get更新节点数据 set删除节点 delete\ rmrII 监听机制node1:设置监听node3:修改监听节点node1:得到监听反馈III zookeeper 典型应用分布式锁集群选举服务数据发布/订阅(配置中心)引言 zk 的…...

如何解决HTML和CSS相关的问题,什么情况下会导致元素被遮挡?

在开发过程中&#xff0c;HTML 和 CSS 中的元素遮挡问题通常是由于布局、定位、层级等因素导致的。在使用 Vue.js 时&#xff0c;这些问题依然常见&#xff0c;尤其是涉及到动态渲染、条件渲染和组件嵌套的场景。以下是一些常见的导致元素被遮挡的原因&#xff0c;并通过 Vue.j…...

Java(3)封装、继承、多态

1.封装 封装可以被认为是一个保护屏障&#xff0c;防止该类的代码和数据被外部类定义的代码随机访问。 要访问该类的代码和数据&#xff0c;必须通过严格的接口控制。 封装最主要的功能在于我们能修改自己的实现代码&#xff0c;而不用修改那些调用我们代码的程序片段。 pu…...

【深度学习】多目标融合算法(二):底部共享多任务模型(Shared-Bottom Multi-task Model)

目录 一、引言 1.1 往期回顾 1.2 本期概要 二、Shared-Bottom Multi-task Model&#xff08;SBMM&#xff09; 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 三、总结 一、引言 在朴素的深度学习ctr预估模型中&#xff08;如DNN&#xff09;&#xff0c;通常以一个行…...

后端:Spring(IOC、AOP)

文章目录 1. Spring2. IOC 控制反转2-1. 通过配置文件定义Bean2-1-1. 通过set方法来注入Bean2-1-2. 通过构造方法来注入Bean2-1-3. 自动装配2-1-4. 集合注入2-1-5. 数据源对象管理(第三方Bean)2-1-6. 在xml配置文件中加载properties文件的数据(context命名空间)2-1-7. 加载容器…...

基于SpringBoot的诊所管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

基于GA遗传优化的最优阈值计算认知异构网络(CHN)能量检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a 3.部分核心程序 &#xff08;完整版代码包含详细中文注释和操作步骤视频&#xff09…...

【技术分享】如何利用rdesktop实现Linux远程Windows桌面高效办公

文章目录 前言1. Windows 开启远程桌面2. Linux安装rdesktop工具3. Win安装Cpolar工具4. 配置远程桌面地址5. 远程桌面连接测试6. 设置固定远程地址7. 固定地址连接测试 前言 随着技术的飞速发展&#xff0c;我们有了越来越多的方法来实现远程办公。今天我要给大家介绍一个特别…...

PDFelement 特别版

Wondershare PDFelement Pro 是一款非常强大的PDF编辑软件&#xff0c;它允许用户轻松地编辑、转换、创建和管理PDF文件。这个中文特别版的软件具有许多令人印象深刻的功能&#xff0c;PDFelement Pro 提供了丰富的编辑功能&#xff0c;可以帮助用户直接在PDF文件中添加、删除、…...

【江协STM32】10-2/3 MPU6050简介、软件I2C读写MPU6050

1. MPU6050简介 MPU6050是一个6轴姿态传感器&#xff0c;可以测量芯片自身X、Y、Z轴的加速度、角速度参数&#xff0c;通过数据融合&#xff0c;可进一步得到姿态角&#xff0c;常应用于平衡车、飞行器等需要检测自身姿态的场景3轴加速度计&#xff08;Accelerometer&#xff…...

【首发 1day】WordPress Crypto 插件存在前台任意用户登录漏洞(CVE-2024-9989)

漏洞描述 WordPress 的 Crypto 插件在 2.15 及以下版本(包括 2.15)中容易受到身份验证绕过攻击。这是由于对 ‘crypto_connect_ajax_process’ 函数中 ‘crypto_connect_ajax_process::log_in’ 函数的任意方法调用有限。这使得未经身份验证的攻击者可以以站点上的任何现有…...

c语言-----常识问题

1.VS的C4996错误 由于微软在VS2013中不建议再使用C的传统库函数scanf,strcpy,sprintf等&#xff0c;所以直接使用这些库函数会提示C4996错误&#xff1a; VS建议采用带_s的函数&#xff0c;如scanf_s、strcpy_s&#xff0c;但这些并不是标准C函数。 要想继续使用此函数&…...

MIUI显示/隐藏5G开关的方法,信号弱时开启手机Wifi通话方法

5G网速虽快&#xff0c;手机功耗也大。 1.取消MIUI强制的5G&#xff0c;手动设置4G的方法&#xff01; 【小米澎湃OS, Xiaomi HyperOS显示/隐藏5G开关的方法】 1.1.小米MIUI系统升级后&#xff0c;被强制连5G&#xff0c;手动设置开关被隐藏&#xff0c;如下图&#xff1a; 1…...

超简单,使用Kube-Vip实现K8s高可用VIP详细教程

具体步骤如下&#xff1a; 以下步骤在其中一个 master 上操作即可&#xff0c; 1、参数配置 export VIP192.168.0.110 export INTERFACEens33 export KVVERSIONv0.8.7VIP 是虚拟IP地址&#xff0c;和主机同一个网段&#xff0c;且未被占用。INTERFACE 是你当前主机的网络接口…...

中国数字化发展的问题与机会

橙蜂智能公司致力于提供先进的人工智能和物联网解决方案,帮助企业优化运营并实现技术潜能。公司主要服务包括AI数字人、AI翻译、埃域知识库、大模型服务等。其核心价值观为创新、客户至上、质量、合作和可持续发展。 橙蜂智农的智慧农业产品涵盖了多方面的功能,如智能化推荐、…...

为什么ip属地一会河南一会江苏

在使用互联网的过程中&#xff0c;许多用户可能会遇到这样一个问题&#xff1a;自己的IP属地一会儿显示为河南&#xff0c;一会儿又变成了江苏。这种现象可能会让人感到困惑&#xff0c;甚至产生疑虑&#xff0c;担心自己的网络活动是否受到了某种影响。为了解答这一疑问&#…...

【机器学习】神经网络(BP算法)含具体计算过程

目录 神经元的“激活函数” 多层前馈网络结构​编辑 BP(BackPropagation:误差逆传播算法) BP算法推导 手动计算BP神经网络的权值来实现学习 前向传播(正向运算)的过程 隐藏层输入&#xff1a; 隐藏层输出&#xff1a; 输出层输入&#xff1a; 输出层输出&#xff1a; …...

【HarmonyOS NEXT】鸿蒙应用点9图的处理(draw9patch)

【HarmonyOS NEXT】鸿蒙应用点9图的处理&#xff08;draw9patch&#xff09; 一、前言&#xff1a; 首先在鸿蒙中是不支持安卓 .9图的图片直接使用。只有类似拉伸的处理方案&#xff0c;鸿蒙提供的Image组件有与点九图相同功能的API设置。 可以通过设置resizable属性来设置R…...

Swift语言的网络编程

Swift语言的网络编程探秘 随着移动互联网的迅猛发展&#xff0c;网络编程已经成为开发者必备的核心技能之一。尤其在iOS开发领域&#xff0c;Swift语言作为Apple官方推荐的编程语言&#xff0c;以其简洁的语法和强大的功能受到了广泛的关注。本文将深入探讨Swift语言的网络编程…...

江科大STM32入门——UART通信笔记总结

wx&#xff1a;嵌入式工程师成长日记 1、简介 简单双向串口通信有两根通信线(发送端TX和接收端RX)TX与RX要交叉连接当只需单向的数据传输时&#xff0c;可以只接一根通信线当电平标准不一致时&#xff0c;需要加电平转换芯片 传输模式&#xff1a;全双工&#xff1b;时钟&…...

2. 使用springboot做一个音乐播放器软件项目【框架搭建与配置文件】

上一章文章 我们做了 音乐播放器这个项目的 前期规划 项目需求&#xff0c; 环境安装 和 springboot框架的 搭建与配置。如果有小伙伴没看过 第一章文章 可以去看一下 https://blog.csdn.net/Drug_/article/details/144994317 今天这篇文章 我们来 主要分享一些 我们在开发中…...