相控阵雷达
相控阵雷达
- **1. 基本概念与数学模型**
- (1) **阵列信号模型**
- (2) **波束形成原理**
- **2. 经典波束形成算法**
- **(1) 常规波束形成(Conventional Beamforming, CBF)**
- **(2) 自适应波束形成(Adaptive Beamforming)**
- **2.1 最小方差无失真响应(MVDR)**
- **2.2 线性约束最小方差(LCMV)**
- **(3) 基于子空间的算法(MUSIC, ESPRIT)**
- **3. MATLAB仿真步骤**
- **3.1 生成阵列信号**
- **3.2 MVDR波束形成器实现**
- **3.3 可视化结果**
- **4. 关键技术与挑战**
- **5. 应用场景**
- **总结**
相控阵雷达(Phased Array Radar)通过调整阵列天线中各个阵元的相位和幅度,实现波束的快速扫描、形状控制及干扰抑制。其核心波束形成算法(Beamforming Algorithm)是关键技术之一,涉及信号处理、优化理论及电磁学。以下从原理、数学公式到MATLAB仿真进行系统介绍:
1. 基本概念与数学模型
(1) 阵列信号模型
假设相控阵雷达有 ( N ) 个阵元,接收的窄带信号波长为 ( \lambda ),远场信号入射方位角为 ( θ ):
- 阵元间距:通常为半波长(( d = \lambda/2 ))以避免栅瓣(Grating Lobes)。
- 接收信号向量:每个阵元接收的信号存在相位差:
a ( θ ) = [ 1 , e − j 2 π d sin θ / λ , … , e − j 2 π ( N − 1 ) d sin θ / λ ] T \mathbf{a}(\theta) = [1, e^{-j2\pi d \sin\theta / \lambda}, \dots, e^{-j2\pi (N-1)d \sin\theta / \lambda}]^T a(θ)=[1,e−j2πdsinθ/λ,…,e−j2π(N−1)dsinθ/λ]T
其中 ( \mathbf{a}(\theta) ) 称为导向矢量(Steering Vector)。
(2) 波束形成原理
波束形成通过加权求和调整波束方向:
y ( t ) = w H x ( t ) y(t) = \mathbf{w}^H \mathbf{x}(t) y(t)=wHx(t)
- ( \mathbf{w} = [w_1, w_2, \dots, w_N]^T ): 加权向量(权重包含幅度和相位信息)。
- 目标:设计 ( \mathbf{w} ) 使波束主瓣指向期望方向,旁瓣尽可能低。
2. 经典波束形成算法
(1) 常规波束形成(Conventional Beamforming, CBF)
- 原理:保持期望方向无失真,最大化输出信噪比(SNR)。
- 权重设计:
w CBF = a ( θ d ) \mathbf{w}_{\text{CBF}} = \mathbf{a}(\theta_d) wCBF=a(θd)
即每个阵元相位补偿以对齐目标方向的入射信号。 - 方向图公式:
P ( θ ) = ∣ w H a ( θ ) ∣ 2 P(\theta) = |\mathbf{w}^H \mathbf{a}(\theta)|^2 P(θ)=∣wHa(θ)∣2
(2) 自适应波束形成(Adaptive Beamforming)
2.1 最小方差无失真响应(MVDR)
- 目标:在干扰方向形成零点,同时保持主瓣方向增益。
- 优化问题:
min w w H R x w s.t. w H a ( θ d ) = 1 \min_{\mathbf{w}} \mathbf{w}^H \mathbf{R}_x \mathbf{w} \quad \text{s.t.} \quad \mathbf{w}^H \mathbf{a}(\theta_d) = 1 wminwHRxws.t.wHa(θd)=1
其中 ( \mathbf{R}_x = \mathbb{E}[\mathbf{x}(t)\mathbf{x}^H(t)] ) 是接收信号的协方差矩阵。 - 闭式解:
w MVDR = R x − 1 a ( θ d ) a H ( θ d ) R x − 1 a ( θ d ) \mathbf{w}_{\text{MVDR}} = \frac{\mathbf{R}_x^{-1} \mathbf{a}(\theta_d)}{\mathbf{a}^H(\theta_d) \mathbf{R}_x^{-1} \mathbf{a}(\theta_d)} wMVDR=aH(θd)Rx−1a(θd)Rx−1a(θd)
2.2 线性约束最小方差(LCMV)
- 扩展目标:添加多个约束(如多波束或多零点方向)。
- 优化问题:
min w w H R x w s.t. C H w = f \min_{\mathbf{w}} \mathbf{w}^H \mathbf{R}_x \mathbf{w} \quad \text{s.t.} \quad \mathbf{C}^H \mathbf{w} = \mathbf{f} wminwHRxws.t.CHw=f
其中 ( \mathbf{C} ) 是约束矩阵,( \mathbf{f} ) 为约束响应向量。
(3) 基于子空间的算法(MUSIC, ESPRIT)
- 核心思想:利用信号与噪声子空间的正交性。
- MUSIC算法:
- 对协方差矩阵 ( \mathbf{R}_x ) 进行特征分解:
R x = U s Λ s U s H + U n Λ n U n H \mathbf{R}_x = \mathbf{U}_s \mathbf{\Lambda}_s \mathbf{U}_s^H + \mathbf{U}_n \mathbf{\Lambda}_n \mathbf{U}_n^H Rx=UsΛsUsH+UnΛnUnH - 方向谱估计:
P MUSIC ( θ ) = 1 ∥ U n H a ( θ ) ∥ 2 P_{\text{MUSIC}}(\theta) = \frac{1}{\|\mathbf{U}_n^H \mathbf{a}(\theta)\|^2} PMUSIC(θ)=∥UnHa(θ)∥21
- 对协方差矩阵 ( \mathbf{R}_x ) 进行特征分解:
3. MATLAB仿真步骤
3.1 生成阵列信号
N = 16; % 阵元数
d = 0.5; % 阵元间距(单位波长)
theta_d = 30; % 期望方向(度)
theta_j = [-20, 50]; % 干扰方向(度)% 生成导向矢量
a_d = exp(-1j * 2*pi * d * (0:N-1)' * sind(theta_d));
a_j1 = exp(-1j * 2*pi * d * (0:N-1)' * sind(theta_j(1)));
a_j2 = exp(-1j * 2*pi * d * (0:N-1)' * sind(theta_j(2)));% 合成接收信号(含噪声)
s = 1; % 目标信号
j1 = 10^(0.5) * randn; % 干扰强度(10 dB)
j2 = 10^(0.5) * randn;
noise = 0.1*(randn(N,1) + 1j*randn(N,1));
x = s*a_d + j1*a_j1 + j2*a_j2 + noise;
3.2 MVDR波束形成器实现
% 估计协方差矩阵(L个快拍)
L = 100;
X = s*a_d*(randn(1,L) + 1j*randn(1,L)) + ... % 目标信号j1*a_j1*(randn(1,L) + 1j*randn(1,L)) + ... j2*a_j2*(randn(1,L) + 1j*randn(1,L));
R_x = (X*X') / L; % 样本协方差矩阵% 计算MVDR权重
w_mvdr = inv(R_x) * a_d / (a_d' * inv(R_x) * a_d);% 计算方向图
theta_scan = -90:0.1:90;
P_mvdr = zeros(size(theta_scan));
for i = 1:length(theta_scan)a_theta = exp(-1j * 2*pi*d*(0:N-1)'*sind(theta_scan(i)));P_mvdr(i) = abs(w_mvdr' * a_theta)^2;
end
3.3 可视化结果
figure;
plot(theta_scan, 10*log10(P_mvdr/max(P_mvdr)), 'LineWidth', 1.5);
hold on;
xline(theta_d, '--r', 'Desired');
xline(theta_j(1), '--k', 'Interference 1');
xline(theta_j(2), '--k', 'Interference 2');
xlabel('Angle (degree)'); ylabel('Normalized Power (dB)');
title('MVDR Beam Pattern');
grid on;
4. 关键技术与挑战
技术点 | 挑战 | 解决方案 |
---|---|---|
协方差矩阵估计 | 有限快拍导致矩阵奇异或误差 | 对角加载(Diagonal Loading) |
计算复杂度 | ( O(N^3) ) 矩阵求逆 | 递归更新(如RLS算法) |
宽带信号处理 | 频率敏感导致波束偏移 | 子带分解或时延补偿结构 |
干扰动态变化 | 非平稳干扰环境 | 自适应算法(如LMS、QRD-SMI) |
5. 应用场景
- 雷达系统:目标跟踪、抗干扰(如军事雷达抑制敌方干扰)。
- 5G/6G通信:大规模MIMO波束赋形提升通信容量。
- 声呐与医学成像:超声波成像中的焦点控制。
总结
相控阵雷达波束形成算法的核心是通过数学优化调整权重向量,其技术演进从CBF到MVDR、再到子空间方法,逐步提升分辨率与抗干扰能力。MATLAB仿真需注意协方差矩阵估计误差对性能的影响,实际工程中常结合FPGA/GPU硬件加速实时处理。
相关文章:
相控阵雷达
相控阵雷达 **1. 基本概念与数学模型**(1) **阵列信号模型**(2) **波束形成原理** **2. 经典波束形成算法****(1) 常规波束形成(Conventional Beamforming, CBF)****(2) 自适应波束形成(Adaptive Beamforming)****2.1 最小方差无失…...
Java 大视界 -- 基于 Java 的大数据分布式缓存一致性维护策略解析(109)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
AI: Cursor是否已奠定AI开发环境的龙头地位?
近年来,人工智能(AI)在软件开发领域的应用迅速升温,而Cursor作为一款AI驱动的代码编辑器,凭借其创新功能和市场表现,引发了广泛讨论。许多人认为,Cursor已经奠定了AI开发环境的龙头地位。然而&a…...
PHP:IDEA开发工具配置XDebug,断点调试
文章目录 一、php.ini配置二、IDEA配置 一、php.ini配置 [xdebug] zend_extension"F:\wamp64\bin\php\php7.4.0\ext\php_xdebug-2.8.0-7.4-vc15-x86_64.dll" xdebug.remote_enable on xdebug.remote_host 127.0.0.1 xdebug.remote_port 9001 xdebug.idekey"…...
回忆Redis的持久化机制
Redis的持久化机制 前言RDB触发方式配置方式手动触发bgsave的执行流程 缺点 AOF重写机制触发方式手动触发自动触发 MP-AOF RDB和AOF混合模式 前言 大家都知道,Redis是内存数据库,也就是说client与Redis交互的过程,无论是读key还是写key都是直…...
partner‘127.0.0.1:3200‘ not reached
在SAP虚拟机中,如果LRPSAP 0显示黄色,通常表示服务启动异常或存在配置问题。以下是一些可能的处理方法: 检查主机文件配置 确保主机文件(hosts)中已正确配置SAP服务的域名解析。例如,添加以下内容到hosts文…...
网络配置的基本信息
目录 一、网络接口信息 1、关闭虚拟化服务 2、配置临时IP 3、配置静态IP 4、常见网络命令 5、安装Wireshark 一、网络接口信息 输入 ip address,会出现下面的内容 网卡名称及其含义: 网卡名称说明lo 表示本地回环地址。 ens32 有线网卡,…...
SpringBoot集成Mybatis(包括Mybatis-Plus)和日志
一、使用Mybatis 1.添加依赖 <!--Mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.2.0</version> <!-- 选择与Java 8兼容的版本 --&g…...
如何在 IntelliJ IDEA 中集成 DeepSeek
如何在 IntelliJ IDEA 中集成 DeepSeek 在本教程中,我们将带您一步步完成将 DeepSeek 集成到 IntelliJ IDEA 中的过程。通过此集成,您可以在IDE中利用DeepSeek强大的功能,提高开发工作效率。 步骤 1:安装 Proxy AI 插件 首先&a…...
【自学笔记】大数据基础知识点总览-持续更新
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 大数据基础知识点总览1. 大数据概述2. 大数据处理技术3. 数据仓库与数据挖掘4. 大数据分析与可视化5. 大数据平台与架构6. 大数据安全与隐私 总结 大数据基础知识点…...
AWS ALB 实现灰度验证指南:灵活流量分配与渐进式发布
AWS Application Load Balancer (ALB) 作为七层负载均衡器,支持基于权重或内容的路由策略,是实施灰度验证(金丝雀发布)的核心工具。通过将部分流量导向新版本后端,可以安全验证功能稳定性。以下是使用 ALB 实现灰度发布的详细方案。 © ivwdcwso (ID: u012172506) 一…...
专线物流公共服务平台:全面提升专线物流效率
专线物流公共服务平台:全面提升专线物流效率 在物流行业高速发展的今天,专线物流作为物流供应链的重要环节,面临着效率低下、成本高企、信息孤岛等痛点。临沂呆马区块链网络科技有限公司(简称“呆马科技”)凭借其在大…...
行为型模式 - 观察者模式 (Publish/Subscribe)
行为型模式 - 观察者模式 (Publish/Subscribe) 又称作为订阅发布模式(Publish-Subscribe Pattern)是一种消息传递模式,在该模式中,发送者(发布者)不会直接将消息发送给特定的接收者(订阅者&…...
HTTP/2 服务器端推送:FastAPI实现与前端集成指南
HTTP/2 服务器端推送:FastAPI实现与前端集成指南 注意:本文末尾附有完整示例代码,文中仅展示核心关键代码。完整代码可在GitHub仓库获取。 本文将会讲解HTTP2协议和相关配置实践。但是不要混淆,SSE的实现完全基于HTTP/1.1的持久连…...
C++ 变量的输入输出教程
一、变量的基本概念 在 C 中,变量是用于存储数据的命名内存位置。在使用变量之前,需要先声明它的类型和名称,这样编译器才能为其分配适当大小的内存空间。例如: int age; // 声明一个整型变量 age double salary; // 声明一个…...
java作业
java作业 一. package shiyanbaogao; import java.util.Scanner; //给20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐。请设计相应的Java程序。 public class BaoGaoDemo02 {public static void …...
LeeCode题库第四十题
40.组合总和II 项目场景: 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示…...
list的模拟实现
目录 一、构造和扩容机制 二、普通迭代器 三、const迭代器 四、tip 有了前面vetcor的基础呢,我们在学习和使用list上就更加的方便快捷,浅显易懂了,所以相似的部分我就不做过多的言语阐述了,在使用方面呢,大家可以学…...
pandas DataFrame 数据筛选与排序
数据筛选: df[df[列标签] > xxx] 使用 &(与) |(或) 拼接多个条件代码应用: &(与)应用 # 引用 pandas import pandas as pd # 定义数据 data {"产品":["男装","女装","男鞋","女鞋"…...
elpis全栈课程学习之elpis-core学习总结
elpis全栈课程学习之elpis-core学习总结 核心原理 elpis-core是全栈框架elpis的服务端内核,主要应用于服务端接口的开发以及页面的SSR渲染,elpis-core基于约定优于配置的原理,通过一系列的loader来加载对应的文件,大大节约用户的…...
零基础deep seek+剪映,如何制作高品质的视频短片
以下是专为零基础学习者设计的 剪映专业版详细教程+Deep seek配合制 ,包含从入门到精通的系统化教学,配合具体操作步骤与实用技巧: 基于DeepSeek与剪映协同制作高品质视频短片的专业流程指南(2025年最新实践版&#x…...
解决单元测试 mock final类报错
文章目录 前言解决单元测试 mock final类报错1. 报错原因2. 解决方案3. 示例demo4. 扩展 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。 而且听说点赞的人每天的运气都不会太差࿰…...
Git基本命令索引
GIT基本命令索引 创建代码库修改和提交代码日志管理远程操作操作分支 创建代码库 操作指令初始化仓库git init克隆远程仓库git clone 修改和提交代码 操作指令查看文件状态git status文件暂存git add文件比较git diff文件提交git commit回滚版本git reset重命名或者移动工作…...
非平稳时间序列分析(二)——ARIMA(p, d, q)模型
此前篇章(平稳序列): 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 时间序列分析(三)——白噪声检验 时间序列分析(四)—…...
[代码规范]接口设计规范
一个优雅的接口要如何设计?有哪些设计规范可以遵循? 下面抛砖引玉,分享一些规范。 目录 1、RESTful API 设计最佳实践 2、Shneiderman 的 8 条黄金法则 3、Nielsen 的 10 条启发式规则 1、RESTful API 设计最佳实践 一共18条,参考…...
4-3自定义加载器,并添加功能
一、自定义类加载器的实现步骤 继承ClassLoader类 自定义类加载器需继承java.lang.ClassLoader,并选择性地重写以下方法: findClass(String name):核心方法,用于根据类名查找并加载类的字节码。需从自定义路径(…...
北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)
近年来,大模型技术飞速发展,但许多用户发现:即使使用同一款 AI 工具,效果也可能天差地别——有人能用 AI 快速生成精准方案,有人却只能得到笼统回答。这背后的关键差异,在于提示词工程的应用能力。 北京大…...
SSH密码更改
Windows User目录下的.ssh/config,全部删除 linux 在主用户文件夹,ctrlh显示隐藏文件。删除.shh文件夹内所有文件。...
蓝桥备赛(四)- 数组(下)
一 、 字符数组 1.1 介绍 数组的元素如果是字符类型 , 这种数组就是字符数组 , 字符数组可以是一维数组 , 可以是二维数组 (多维数组)。 接下来主要讨论一维的字符数组 : char arr1[5] //一维数组 char arr2[3][5] // 二维数组 C语言 中…...
基金 word-->pdf图片模糊的解决方法
1. 首先需要Adobe或福昕等pdf阅读器。 2. word中 [文件]--[打印],其中打印机选择pdf阅读器,例如此处我选择福昕阅读器。 3. 选择 [打印机属性]--[编辑]--[图像],将所有的采样、压缩均设置为 关闭。点击[另存为],保存为 基金报告…...
身为小兵,如何提升不可替代性?
之前聊过,研发、PIE、PE、可靠性等岗位,主要是对物的工作, 这类岗位,如何提升不可替代性? 我的经验是,学会识别创造性工作or重复性工作。 尽可能地做创造性工作,推重复性工作。 销售、采购、HR等岗位,主要是对人的工作, 这类岗位,如何提升不可替代性? 我的思考…...
easyExcel使用案例有代码
easyExcel 入门,完成web的excel文件创建和导出 easyExcel官网 EasyExcel 的主要特点如下: 1、高性能:EasyExcel 采用了异步导入导出的方式,并且底层使用 NIO 技术实现,使得其在导入导出大数据量时的性能非常高效。 2、易于使…...
linux服务器更新jar包脚本
【需求】Java每次发布新的版本都需要先kill掉原来的服务,然后再启动新的包 有了这个脚本只需要把包替换掉,服务会自动kill 以8184 为例 完整的脚本如下 #!/bin/bash# 检查端口 8184 是否被占用 PORT8184 PID$(lsof -t -i:$PORT)if [ -n "$PID…...
Tomcat 乱码问题彻底解决
1. 终端乱码问题 找到 tomcat 安装目录下的 conf —> logging.properties .修改ConsoleHandler.endcoding GBK (如果在idea中设置了UTF-8字符集,这里就不需要修改) 2. CMD命令窗口设置编码 参考:WIN10的cmd查看编码方式&…...
dify绑定飞书多维表格
dify 绑定飞书和绑定 notion 有差不多的过程,都需要套一层应用的壳子,而没有直接可以访问飞书文档的 API。本文记录如何在dify工具中使用新增多条记录工具。 创建飞书应用 在飞书开放平台创建一个应用,个人用户创建企业自建应用。 自定义应…...
深入浅出:插入排序算法完全解析
1. 什么是插入排序? 插入排序(Insertion Sort)是一种简单的排序算法,其基本思想与我们整理扑克牌的方式非常相似。我们将扑克牌从第二张开始依次与前面已排序的牌进行比较,将其插入到合适的位置,直到所有牌…...
MySQL--DQL、DML、DDL、DCL概念与区别
在SQL中,根据功能和操作对象的不同,通常将语文分为四大类:DQL(数据查询语言)、DML(数据操作语言)、DDL(数据定义语言)、DCL(数据控制语言) 一、D…...
【设计原则】里氏替换原则(LSP):构建稳健继承体系的黄金法则
深入理解里氏替换原则(LSP)及其在C#中的实践 一、什么是里氏替换原则?二、为什么需要LSP?三、经典违反案例:矩形与正方形问题四、正确的设计实践方案1:通过接口分离方案2:使用抽象类 五、LSP的关…...
SQL的select语句完整的执行顺序
SQL的SELECT语句的执行顺序可以用"做菜流程"来类比理解。虽然我们写SQL时按SELECT…FROM…WHERE…顺序写,但数据库执行顺序完全不同。以下是通俗易懂的讲解(附流程图和示例): 🔧 执行顺序流程图:…...
【Vue3】浅谈setup语法糖
Vue3 的 setup 语法糖是通过 <script setup> 标签启用的特性,它是对 Composition API 的进一步封装,旨在简化组件的声明式写法,同时保留 Composition API 的逻辑组织能力。以下是其核心概念和原理分析: 一、<script setu…...
算法-二叉树篇27-把二叉搜索树转换为累加树
把二叉搜索树转换为累加树 力扣题目链接 题目描述 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提…...
FPGA开发,使用Deepseek V3还是R1(3):系统级与RTL级
以下都是Deepseek生成的答案 FPGA开发,使用Deepseek V3还是R1(1):应用场景 FPGA开发,使用Deepseek V3还是R1(2):V3和R1的区别 FPGA开发,使用Deepseek V3还是R1&#x…...
《国密算法开发实战:从合规落地到性能优化》
前言 随着信息技术的飞速发展,信息安全已成为全球关注的焦点。在数字化时代,数据的保密性、完整性和可用性直接关系到国家、企业和个人的利益。为了保障信息安全,密码技术作为核心支撑,发挥着至关重要的作用。国密算法,即国家密码算法,是我国自主设计和推广的一系列密码…...
DeepSeek开源周Day5压轴登场:3FS与Smallpond,能否终结AI数据瓶颈之争?
2025年2月28日,DeepSeek开源周迎来了第五天,也是本次活动的收官之日。自2月24日启动以来,DeepSeek团队以每天一个开源项目的节奏,陆续向全球开发者展示了他们在人工智能基础设施领域的最新成果。今天,他们发布了Fire-F…...
Linux:进程替换
目录 进程程序替换 替换原理 进程替换相关函数 环境变量与进程替换函数 命令行解释器(my_xshell) 进程程序替换 上一篇进程控制讲到,父进程创建子进程就是为了让子进程去做一些另外的事情,但是不管怎么说,子进程的部分代码也还是父进程…...
CSS 日常开发常用属性总结
文章目录 CSS 日常开发常用属性总结一、 常用 CSS 属性1、布局相关(1)display:(2)position:(3)float:(4)clear: 2、尺寸与溢出&#x…...
Python 绘制迷宫游戏,自带最优解路线
1、需要安装pygame 2、上下左右移动,空格实现物体所在位置到终点的路线,会有虚线绘制。 import pygame import random import math# 迷宫单元格类 class Cell:def __init__(self, x, y):self.x xself.y yself.walls {top: True, right: True, botto…...
了解Java集合的概念和体系:Collection<T>、Collections与Stream的使用
学习目标 本文知识是对集合层级的介绍,应用开发中实际使用的是他们的子级,感兴趣的小伙伴或者想深入了解有关Java集合知识的朋友可以选择阅读! Stream的方法使用使用部分代码块内大多有两种实现方式,是为了更好的理解方法底层的代…...
扫描局域网可用端口
site: https://mengplus.top #SiliconFlow : 在Linux系统,你可以使用一个简单的Bash脚本来扫描局域网中可用的端口。这个脚本可以使用nmap工具来实现。nmap是一个强大的网络扫描工具,可以用来探测网络中的主机和端口。 以下是一个简单的Bash脚本&#…...
算法分析 —— 《栈》
文章目录 删除字符串中的所有相邻重复项题目描述:代码实现:代码解析: 比较含退格的字符串题目描述:代码实现:代码解析: [基本计算器 II](https://leetcode.cn/problems/remove-all-adjacent-duplicates-in-…...