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

2023华为杯数学建模研赛思路分享——最全版本A题深度解析

问题回顾:

WLAN网络信道接入机制建模

1. 背景

无线局域网(WLAN, wireless local area network)也即Wi-Fi广泛使用,提供低成本、高吞吐和便利的无线通信服务。基本服务集(BSS, basic service set)是WLAN的基本组成部分。处于某一特定覆盖区域内的站点(STA, station)与一个专职管理BSS的无线接入点(AP, access point)组成一个BSS,称STA关联到AP。常见的AP有无线路由器、WiFi热点等,手机、笔记本、物联设备等是STA。AP给STA发送数据叫作下行方向,反之是上行方向,本文将AP和STA统称为节点,每个节点的发送和接收不能同时发生。各节点共享信道,通过载波侦听多址接入/退避(CSMA/CA, carrier sense multi-access and collision avoidance)的机制避免冲突,称为分布式协调功能(DCF, distributed coordination function)。

图1.1 WLAN网络

1.1 分布式信道接入和二进制指数退避

DCF机制提供了一种分布式、基于竞争的信道接入功能。可将每个节点接入信道进行数据传输的过程分为3个阶段,信道可用评估(CCA,clear channel assessment)、随机回退、数据传输。

(1)CCA:当一个节点打算发送时,首先进行一个固定时长的载波侦听,这个固定时长被称为DCF帧间距(DIFS,DCF inter-frame space),43μs。如果DIFS时段内接收到的信号能量强度(RSSI,received signal strength indication)低于CCA门限(-82dBm),判断信道为空闲,否则,判断信道为繁忙。

(2)随机回退:信道空闲时,可能有多个节点准备好了数据,为避免碰撞,节点从[0, CW-1]的均匀分布选取一个随机数作为回退数,等待该回退数个时隙长度slotTime(9μs),随机回退时段时长为回退数乘以slotTime。CW被称为竞争窗口(contention window)。如果信道在随机回退时段保持空闲,则节点开始一次数据传输。在随机回退时段节点持续监听信道,如果期间信道变繁忙,则节点将回退暂停,直到信道在一个DIFS时长重新变为空闲,再继续前面没有回退完的时间。

(3)数据传输:回退到0的节点发送一个数据帧,接收节点成功接收到数据之后等待短帧帧间距(SIFS, Short inter-frame space)16μs后,回复ACK确认帧(32μs)。如果发送节点收到ACK,则数据发送成功。如果发送数据帧没有被接收节点成功接收,或者ACK发送失败,或者ACK没有被发送节点收到,则数据传输失败,发送节点需要在等待超时后重传数据。等待超时时间ACKTimeout为65μs。

随机回退采用二进制指数退避算法确定回退时间。CW的初始值为CWmin,每次数据传输失败后重传数据帧时,CW翻倍。如果CW达到了CWmax,则保持此值,直到被重置为止。每次数据传输成功时CW重置,开始下一个数据帧的回退。若传输连续失败,重传次数达到r后,数据帧被丢弃,CW重置传输下一个数据帧。可见,重传r次时,无论成功还是失败,CW都会重置。

1.2 基于Markov chain的DCF机制建模和系统性能分析

对于单BSS,N个STA给AP发送上行数据,Bianchi(1998)最早基于Markov chain建模。Bianchi模型假设理想信道,不因信道质量差而丢包。当2个及以上节点同时回退到0发送数据时,由于碰撞而丢包。那么信道可能处于三种状态:空闲、成功传输、碰撞,如图1.2所示。将每个状态看作一个虚拟时隙,那么信道在三种虚拟时隙中转化。将退避器所处的阶数和随机回退数用二维Markov chain表示,推导节点在每个虚拟时隙的发送概率τ和发生碰撞的条件概率p,从而评估BSS的吞吐[1]。

图1.2 信道状态

Bianchi模型获得了很高的精确度,很多工作在此基础上扩展,Chatzimisios(2002)研究了有最大重传次数限制的媒体接入控制(MAC,medium access control)层性能情况[2]。Huang和Ivan Marsic(2010)介绍了隐藏节点下网络模型和性能分析[3]。Chen(2007)分析了多速率MAC协议的性能[4]。基于Markov链求解τp的推导见附录和参考文献。吞吐是单位时间内发送数据有效载荷的比特数,单位bps。吞吐S可以由信道的利用率与物理层速率(单位bps)的乘积表示,

H为数据帧头,包括MAC层头和物理(PHY,physical)层头,E[P]为数据帧的有效载荷传输时长,E*[P]为发生冲突时较长数据帧的有效载荷传输时长,假设所有节点的数据帧长度一样,则E[P]与E*[P]相等。PHY头时长固定,MAC头和有效载荷的发送时长由其字节长度除以物理层速率得到。

2. WLAN组网中的多BSS建模问题

节点发送数据后,电磁波信号在自由空间中传播,随着距离的增加,能量衰减越严重。周围节点收到该信号后,根据RSSI是否高于CCA门限,判断信道为忙或闲。一个节点发出信号的RSSI高于CCA门限的区域叫作通信区域,位于该通信区域内的节点与该发送节点互听。随着设备数量、应用类型、网络流量的飞速增长,AP部署日趋高密,如企业办公、工厂、教育场景。如图2.2(a)所示,将信道号为36、44、52、60、149、157的六个信道分配给区域内12个BSS,由于可用信道数有限,不同的BSS复用同一个信道。同频AP(使用相同信道号的AP)之间通信区域存在重叠时,存在相互干扰问题,叫作同频干扰。同频干扰是WLAN组网最显著的干扰问题,本题不考虑异频干扰的情况。家庭或宿舍等单BSS场景中,STA距离AP较近,RSSI较强,互听,假设理想信道,不会因信道质量差而丢包,只有在2个及以上STA同时发送数据时导致碰撞而丢包。而在教学区等场景,同频多BSS场景的情况更复杂。

图2.2 (a) AP密集部署

(b)两同频BSS场景

(c)三同频BSS场景

首先,并不是所有的节点之间都能互听。假定AP和STA的发射功率相同,由于节点间距离不同,信号衰减不同,因此RSSI不同。节点在DIFS时长侦听信号的RSSI > CCA门限时,节点才认为信道繁忙,否则认为信道空闲,启动随机回退,发送数据。其次,当有多个BSS的节点同时发送数据(叫作并发传输)时,其成功与否与信干比(SIR, signal to interference ratio)有关,若SIR足够高,则信号能被成功解调,若SIR很低,则信号解调失败。信干比是信号强度与干扰强度的比值,单位是dB,RSSI的单位是dBm,则SIR可以用信号RSSI与干扰信号RSSI的差值表示,本文中不考虑环境噪声。

发送节点间能否互听,并发传输时是否成功,是进行系统建模需要考虑的两个先决条件,前者决定了退避计数器能否回退,后者决定了一次并发传输是成功还是失败,从而直接影响成功、失败和空闲三种状态之间的转换。

2.1 两BSS互听

考虑2个BSS互听的场景,仅下行,即两个AP分别向各自关联的STA发送数据,如图2.2(b)所示。以AP1->STA1方向的数据传输为例,其会受到相邻BSS2的干扰,对于STA1来说,AP1->STA1是信号,AP2->STA1是干扰。对于AP2->STA2情况类似。假设ACK一定能发送成功。根据节点之间的RSSI估算两个AP并发时的SIR,考虑不同的情景进行建模。

问题1:

假设AP发送包的载荷长度为1500Bytes(1Bytes = 8bits),PHY头时长为13.6μs,MAC头为30Bytes,MAC头和有效载荷采用物理层速率455.8Mbps发送。AP之间的RSSI为-70dBm。大部分时候只有一个AP能够接入信道,数据传输一定成功。当两个AP同时回退到0而同时发送数据时,存在同频干扰。假设并发时的SIR较低,导致两个AP的数据传输都失败。请对该2 BSS系统进行建模,用数值分析方法求解,评估系统的吞吐。(参数参考附录4,可编写仿真器验证模型精确度)

问题2

假设两个AP采用物理层速率275.3Mbps发送数据,并发时两个终端接收到数据的SIR较高,两个AP的数据传输都能成功。其他条件同问题1。请对该2 BSS系统进行建模,用数值分析方法求解,评估系统的吞吐。(参数参考附录4,可编写仿真器验证模型精确度)

2.2 两BSS不互听

在AP密集部署时,同频AP之间的距离远,AP间RSSI低于CCA门限,不互听。AP认为信道空闲,因此总是在退避和发送数据。这是Wi-Fi里常见的隐藏节点问题,详见附录。可以预见的是,有很大概率出现二者同时或先后开始发送数据的情况。接收机解调信号时,PHY头的前面部分码元用于Wi-Fi信号识别、频率纠错、定时等功能,叫作前导(Preamble)。如图2.3所示,当信号包先到时,接收机先解信号包的Preamble并锁定,干扰包被视为干扰,信号包是否接收成功由SIR决定;当干扰包先到时,接收机先锁定到干扰包的Preamble,错过信号包的Preamble,导致信号包无法解调。小信号屏蔽算法能有效解决这个问题,因为信号包RSSI一般大于邻小区的干扰包,接收机在信号包到达时转为锁定RSSI更大的信号包,此时信号包能否接收成功同样也由SIR决定。由此可以得知,在SIR比较小的情况下,如果信号包和干扰包在时间上有如图2.3的交叠时,一定会导致本次传输的失败。

图2.3 并发传输交叠示意图

问题3

假设AP间RSSI为-90dBm,AP发送包的载荷长度为1500Bytes,PHY头时长为13.6μs,MAC头为30Bytes,MAC头和载荷采用物理层速率455.8Mbps发送。Bianchi模型假设理想信道,实际上,无线传输环境是复杂多变的,当有遮挡物或者人走动时,无线信道都可能会快速发生比较大的变化。实测发现,当仅有一个AP发送数据时,即便不存在邻BSS干扰,也会有10%以内不同程度的丢包。假设因信道质量导致的丢包率 。当两个AP发包在时间上有交叠时,假设SIR比较小,会导致两个AP的发包均失败。请对该2 BSS系统进行建模,尽量用数值分析方法求解,评估系统的吞吐。(参数参考附录4和6,可编写仿真器验证模型精确度)

2.3 三BSS

问题4

考虑3BSS场景,如图2.2(c)所示,其中AP1与AP2之间,AP2与AP3之间RSSI均为-70dBm,AP1与AP3之间RSSI为-96dBm。该场景中,AP1与AP3不互听,AP2与两者都互听,可以预见的是,AP2的发送机会被AP1和AP3挤占。AP1与AP3由于不互听可能同时或先后发送数据。假设三个AP发送包的载荷长度为1500Bytes,PHY头时长为13.6μs,MAC头为30Bytes,MAC头和载荷采用物理层速率455.8Mbps发送。假设AP1和AP3发包时间交叠时,SIR较大,两者发送均成功。请对该3BSS系统进行建模,尽量用数值分析方法求解,评估系统的吞吐。(参数参考附录4和6,可编写仿真器验证模型精确度)

缩略语

APaccess point无线接入点
ACKAcknowledgement确认
ACKTimeout确认超时
BSSbasic service set基本服务集
CCAclear channel assessment信道可用评估
CSMA/CAcarrier sense multi-access and
collision avoidance
载波监听多址接入/退避
CWcontention window竞争窗口
DCFdistributed coordination
function
分布式协调功能
DIFSDCF inter-frame spaceDCF帧间距
MACmedium access control媒体控制
PHYphysical物理层
RSSIreceived signal strength
indication
接收信号能量强度
SIFSshort inter-frame space短帧间距
SIRsignal to interference ratio信干比
STAstation站点
WLANwireless local area network无线局域网

附录

1 随机回退

随机回退采用二进制指数退避算法确定回退时间。CW的初始值为CWmin,每次数据传输失败后进行重传时,CW翻倍。如果CW达到了CWmax,则保持此值,直到被重置为止。每次数据传输成功时CW重置,开始下一个数据帧的回退。若传输连续失败,重传次数达到r后,数据帧被丢弃,CW重置传输下一个数据帧。可见,重传r次时,无论成功还是失败,CW都会重置。

图3.1以三个节点为例说明。图中CW表示当前阶竞争窗口大小,BO表示随机回退过程时退避计数器从[0, CW-1]随机选取的初始值。三个节点的CWmin分别是8、16、32。开始时,Station c在发送数据,信道繁忙,数据发送完成后,退避计数器重置。Station a、b和c持续侦听信道DIFS时长,信道被检测为空闲,三者分别开始随机回退,都处于第0阶,竞争窗为[0, CWmin - 1]。Station a从[0,7]选择了一个随机数7,需要回退7个slotTime;Station b则从[0, 15]选择了随机数12回退;Station c从[0,31]选择了随机数16回退;显然,Station a最先回退到0,抢占到信道,开始一次数据发送,此时,Station b和c在其回退过程中由于侦听到信道繁忙,随机回退暂停。当Station a发送成功后,其竞争窗口重置,信道持续DIFS时长空闲后,Station a重新从[0,7]选择随机数5回退,Station b和c接着暂停前的回退数继续回退。本次Station a和b同时回退到0,同时发送数据,由于冲突导致发送失败,接收节点将不会回复ACK,Station a和b在等待ACKTimeout后判断数据发送失败,进行重传,将竞争窗翻倍,再次侦听信道DIFS时长判断信道空闲后,Station a从[0,15]选择随机数11回退,Station b则从[0,31]选择随机数9回退。需要注意的是,图3.1中的一次传输(Tx,transmission)包含了发送一个数据包和接收一个ACK,一次collision包含了发送一个数据包和等待ACKTimeout时长。帧序列如图3.2所示,一个数据帧包括PHY头、MAC头和有效载荷payload。

图3.1 二进制指数退避过程

图3.2 帧序列:(a)成功发送 (b)冲突

2 Bianchi模型

b(t)s(t)代表t时刻一个节点退避随机过程的退避计数和退避阶数,这里的t是一个离散的虚拟时隙的开始时刻。用i表示一个数据的发送次数,也叫作阶数,r为最大重传次数,m是最大退避阶数,则CW可用下式表示:

二维{b(t)s(t)}随机过程可以用二维Markov chain表示,如图3.3所示。 代表二维Markov chain的稳态解,i∈[0, m], k∈[0, Wi-1]

图 3.3 DCF的Markov链模型

p为某个时隙发生碰撞的概率,Markov chain一步状态转移概率为:

式(4)中每个式子分别代表一定的物理含义。第一个等式代表,未达到重传上限时,退避计数器在每个空闲时隙的开始时刻减1的概率是1。第二个等式代表,未达到重传上限时,当一个数据成功传输后,新到达的数据在[0, W0-1]中等概率选一个随机数进行回退。第三个等式代表,未达到重传上限时,当一个数据第i-1次传输过程发生碰撞,节点进入第i阶回退过程,并在[0, Wi-1]中等概率选一个随机数进行回退。最后一个等式代表,当节点到达最大的传输次数以后,无论成功还是失败,CW都会重置。

该Markov chain的任意状态之间可达,是不可约的。任意状态到另一状态的步长不存在周期。从任何状态出发,都能到达另一状态,具有常返性。因此该二进制退避过程的非周期不可约Markov chain具有稳态解,且所有稳态的概率之和为1。

3 隐藏节点问题

隐藏节点是指在目的接收节点的通信区域内,而在其他发送节点的通信区域外的节点,这样由于和其他的发送节点互相听不到,会导致意外的同时传输而冲突的情况。如图3.4(a)所示,单BSS场景中,STA1和STA2分别能够与AP互听,而STA1和STA2相距较远。STA1给AP发送上行数据时,随着距离的增加,信号衰减严重,STA2接收到该信号的RSSI低于信道监听CCA门限,STA2不在STA 1的通信范围内,STA2将无法感知到对方在给AP发送数据,判断信道为闲,因此,二者可能会同时或相继给AP发送数据,在接收节点AP处,来自STA1和STA2的电磁波信号混叠,AP无法正确解码,导致数据发送失败。隐藏节点问题是由CSMA/CA机制所引起的。图3.4(b)是两BSS场景,同理,由于AP1和AP2相距较远,分别不在对方的通信区域,因此可能会同时或相继给各自关联的STA发送数据。与单BSS不同的是,接收节点有两个,接收成功与否,与SIR有关。因为,当信号包先到时,接收机锁定Preamble,干扰包被视为干扰,SIR高则接收成功,否则失败;当干扰包先到时,接收机先锁定干扰包的Preamble,导致错过信号包的Preamble,则一定接收失败。

图3.4 隐藏节点问题:(a)单BSS上行,(b)两BSS下行

4 通用参数列表

参数名称
ACK时长32μs
SIFS时长16μs
DIFS时长43μs
SLOT时长9μs
ACKTimeout时长65μs
CW min16
CW max1024
最大重传次数32

5 发包时长计算公式

6 问题3和4参数

改变竞争窗口和最大重传次数

CW_min163216163216
CW_max102410241024102410241024
最大重传次数65326532
物理层速率286.8Mbps286.8Mbps286.8Mbps158.4Mbps158.4Mbps158.4Mbps

参考文献

[1] Bianchi Giuseppe. IEEE 802.11-Saturation Throughput Analysis [J]. IEEE Communications Letters, 1998, 2(12):318-320.

[2] P. Chatzimisios, V. Vitsas and A. C. Boucouvalas, "Throughput and delay analysis of IEEE 802.11 protocol," Proceedings 3rd IEEE International Workshop on System-on-Chip for Real-Time Applications, 2002, pp. 168-174, doi: 10.1109/IWNA.2002.1241355.

[3] Hung, Fu-Yi, and Ivan Marsic. "Performance analysis of the IEEE 802.11 DCF in the presence of the hidden stations." Computer Networks 54.15 (2010): 2674-2687.

[4] D. R. Chen and Y. J. Zhang, "Is Dynamic Backoff Effective for Multi-Rate WLANs?" in IEEE Communications Letters, vol. 11, no. 8, pp. 647-649, August 2007


思路解析

更多经验分享交流加入云顶数模交流群~

正在跳转icon-default.png?t=N7T8https://qm.qq.com/q/g3gCFkPsfC关注微信公众号【云顶数模】,获取更多最新思路~

相关文章:

2023华为杯数学建模研赛思路分享——最全版本A题深度解析

问题回顾: WLAN网络信道接入机制建模 1. 背景 无线局域网(WLAN, wireless local area network)也即Wi-Fi广泛使用,提供低成本、高吞吐和便利的无线通信服务。基本服务集(BSS, basic service set)是WLAN的…...

【校招VIP】测试方案之测试需求分析

考点介绍: 需求分析就是要弄清楚用户需要的是什么功能,用户会怎样使用系统。这样我们测试的时候才能更加清楚的知道系统该怎么样运行,才能更好的设计测试用例,才能更好的测试。 测试方案之测试需求分析-相关题目及解析内容可点击…...

滚珠螺母的清洁方式

滚珠螺母是一种通过滚珠与螺杆进行螺旋运动转换的机械零件,主要用于控制螺杆的运动轨迹和方向,把原来的滑动摩擦利用滚珠的滚动变成滚动摩擦,因此滚珠螺母的摩擦系数大大降低,从而提高了传动效率,要想滚珠螺母达到预期…...

leetcode做题笔记148. 排序链表

给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 思路一:归并排序 c语言解法 struct ListNode* merge(struct ListNode* head1, struct ListNode* head2) {struct ListNode* dummyHead malloc(sizeof(struct ListNode));dummyHead…...

多线程学习

并发:交替运行 并行:一起运行 多线程实现方式 继承Thread类 ①自己定义一个类继承Thread public class MyThread extends Thread{public void run(){}} ②重写run方法 public class MyThread extends Thread{public void run(){"重写的内容&…...

软件测试/测试开发丨ChatGPT在测试计划中的应用策略

点此获取更多相关资料 简介 测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、测试任务和风险控制等。 所以在使用ChatGPT输出结果之前,我们需要先将文档的内容框架梳理好,以及将内容范围划定好&…...

链表oj3(Leetcode)——相交链表;环形链表

一,相交链表 相交链表(Leetcode) 1.1分析 看到这个我们首先想到的就是一个一个比较他们的值有相等的就是交点,但是如果a1和b2的值就相等呢?所以这个思路不行,第二种就是依次比较链表,但是这…...

nginx反向代理

nginx反向代理8.反向代理8.1 实现http反向代理8.1.1 反向代理配置参数8.1.2 反向代理单台web服务器8.1.2.1 端口号后加"/"8.1.2.2 端口号后不加"/" 8.1.3指定location 实现反向代理,动静分离8.1.4 反向代理实例:缓存功能8.1.4.1 举例 8.1.5 实现…...

基于eBPF的安卓逆向辅助工具——stackplz

前言 stackplz是一款基于eBPF技术实现的追踪工具,目的是辅助安卓native逆向,仅支持64位进程,主要功能如下: hardware breakpoint 基于pref_event实现的硬件断点功能,在断点处可读取寄存器信息,不会被用户…...

十大排序——4.堆排序

前面我们讲了堆,现在我们来看一下队排序。 堆排序的步骤: 首先将一个无序数组建立成一个大顶堆然后,将堆顶的元素和堆低的元素进行交换(即将最大的元素交换的到堆底),缩小并下潜调整堆重复上一步&#xf…...

独辟蹊径”之动态切换进程代理IP

前言 项目中遇到这样一个需求,需要动态切换指定进程Sockets5代理IP,目前了解到可通过编写驱动拦截或者劫持LSP实现,LSP劫持不太稳定,驱动无疑是相对较好的解决方案,奈何水平不足便有了这"蹊径"。 初步尝试…...

redis漏洞修复:(CNVD-2019-21763)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、漏洞内容二、镜像准备1.确认镜像版本2.下载镜像 三、配置文件准备1.获取配置文件2.修改配置文件 四、启动redis容器五、修改iptables文件总结 前言 漏扫发…...

手刻 Deep Learning -第壹章-PyTorch入门教学-基础概念与再探线性回归

一、前言 本章会需要 微分、线性回归与矩阵的基本观念 这次我们要来做 PyTorch 的简单教学,我们先从简单的计算与自动导数( auto grad / 微分 )开始,使用优化器与误差计算,然后使用 PyTorch 做线性回归,还有…...

深入学习 Redis - 如何使用 Redis 作缓存?缓存更新策略?使用需要注意哪些问题(工作/重点)

目录 一、Redis 作为缓存 1.1、缓存的基本概念 1.1.1、理解 1.1.2、缓存存什么样的数据?二八定律 1.2、如何使用 redis 作为缓存 1.3、缓存更新策略(redis 内存淘汰机制 / 重点) 1.3.1、定期生成 1.3.2、实时生成 内存淘汰策略&#…...

好用的软件测试框架有哪些?测试框架的作用是什么?

软件测试框架是现代软件开发过程中至关重要的工具,它可以帮助开发团队更加高效地进行测试和验证工作,从而大大提高软件质量和用户体验。 一、好用的软件测试框架 1. Selenium:作为一种开源的自动化测试框架,Selenium具有功能强大…...

PAT 1035 插入与归并

PAT 1035 插入与归并 题目描述思路讲解代码展示 题目描述 思路讲解 分析:先将i指向中间序列中满足从左到右是从小到大顺序的最后一个下标,再将j指向从i1开始,第一个不满足a[j] b[j]的下标,如果j顺利到达了下标n,说明…...

K-means 聚类算法学习笔记

K-means 聚类算法 是一种无监督学习算法,用来将 n n n 个样本点分成 k k k 类,使得整个数据集的误差平方和 S S E SSE SSE 最小。在本例中,样本点是指平面直角坐标系上的点,聚类中心也是平面直角坐标系上的点,而每个…...

API文档搜索引擎

导航小助手 一、认识搜索引擎 二、项目目标 三、模块划分 四、创建项目 五、关于分词 六、实现索引模块 6.1 实现 Parser类 6.2 实现 Index类 6.2.1 创建 Index类 6.2.2 创建DocInfo类 6.2.3 创建 Weight类 6.2.4 实现 getDocInfo 和 getInverted方法 6.2.5 实现 …...

文案内容千篇一律,软文推广如何加深用户印象

随着互联网技术的发展,企业营销的方式逐渐转向软文推广,但是现在软文推广的内容同质化越来越严重,企业应该如何让自己的软文推广保持差异性,在用户心中留下独特的印象呢?下面就让媒介盒子告诉你。 一、 找出产品独特卖…...

十二、流程控制-循环

流程控制-循环 1.while循环语句★2.do...while语句★3.for循环语句 —————————————————————————————————————————————————— 1.while循环语句★ while语句也称条件判断语句,它的循环方式是利用一个条件来控制是否…...

五、回溯(trackback)

文章目录 一、算法定义二、经典例题(一)排列1.[46.全排列](https://leetcode.cn/problems/permutations/description/)(1)思路(2)代码(3)复杂度分析 2.[LCR 083. 全排列](https://le…...

什么是分布式锁?他解决了什么样的问题?

相信对于朋友们来说,锁这个东西已经非常熟悉了,在说分布式锁之前,我们来聊聊单体应用时候的本地锁,这个锁很多小伙伴都会用 ✔本地锁 我们在开发单体应用的时候,为了保证多个线程并发访问公共资源的时候,…...

Ubuntu 12.04增加右键命令:在终端中打开增加打开文件

Ubuntu 12.04增加右键命令:在终端中打开 软件中心:搜索nautilus-open-terminal安装 用快捷键CtrlT打开命令行输入: sudo apt-get install nautilus-open-terminal 重新加载文件管理器 nautilus -q 或注销再登录即要使用...

Centos 7 访问局域网windows共享文件夹

Refer: centos7 访问windows系统的共享文件夹_centos访问windows共享_三希的博客-CSDN博客 一、在CentOS中配置CIFS网络存储服务 CIFS(Common Internet File System)是一种在网络上共享文件的协议,也称为SMB(Server Message Blo…...

GDB的TUI模式(文本界面)

2023年9月22日,周五晚上 今晚在看GDB的官方文档时,发现GDB居然有文本界面模式 TUI (Debugging with GDB) (sourceware.org) GDB开启TUI的条件 GDB的文本界面的开启条件是:操作系统有适当版本的curses库 The TUI mode is supported only on…...

深入了解Python和OpenCV:图像的卡通风格化

前言 当今数字时代,图像处理和美化已经变得非常普遍。从社交媒体到个人博客,人们都渴望分享独特且引人注目的图片。本文将介绍如何使用Python编程语言和OpenCV库创建令人印象深刻的卡通风格图像。卡通风格的图像具有艺术性和创意,它们可以用…...

【算法挨揍日记】day06——1004. 最大连续1的个数 III、1658. 将 x 减到 0 的最小操作数

1004. 最大连续1的个数 III 1004. 最大连续1的个数 III 题目描述: 给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数 。 解题思路: 首先题目要我们求出的最多翻转k个0后&#x…...

华为云HECS安装docker

1、运行安装指令 yum install docker都选择y,直到安装成功 2、查看是否安装成功 运行版本查看指令,显示docker版本,证明安装成功 docker --version 或者 docker -v 3、启用并运行docker 3.1启用docker 指令 systemctl enable docker …...

力扣669 补9.16

最近大三上四天有早八,真的是受不了了啊,欧嗨呦,早上困如狗,然后,下午困如狗,然后晚上困如狗,尤其我最近在晚上7点到10点这个时间段看力扣,看得我昏昏欲睡,不自觉就睡了1…...

2023-9-22 没有上司的舞会

题目链接&#xff1a;没有上司的舞会 #include <cstring> #include <iostream> #include <algorithm>using namespace std;const int N 6010;int n; int happy[N]; int h[N], e[N], ne[N], idx; bool has_father[N];// 两个状态&#xff0c;选该节点或不选该…...

梅州网站制作/网站设计报价方案

“云”概念在今年被炒得很热。不管什么会&#xff0c;如果没有“云”&#xff0c;都不好意思跟人打招呼&#xff1b;在IT圈子里&#xff0c;如果一个没有“云”的会议&#xff0c;那不叫“会”议&#xff0c;至少不是一个够档次的会。广告词不是说&#xff0c;“高度决定视野,角…...

网站建设类公/网络推广赚钱

谷歌地图位置偏移You’re meeting a friend downtown in a new city, and he asks you where you are. Be honest: you have no clue. Luckily, Google Maps can help you both out. 您在一个新城市的市区遇到一个朋友&#xff0c;他问您现在在哪里。 老实说&#xff1a;您没有…...

怎样做网站开发/网站搭建平台

开源前夕先给大家赞赏一下我用C语言开发的移动、手机、PC自己主动兼容云贴吧 - 涨知识属马超懒散,属虎太倔强.十二生肖全了!-转自云寻觅贴吧 转: 涨知识属马超懒散,属虎太倔强.十二生肖全了! -转自云寻觅贴吧 转自:http://tieba.yunxunmi.com/tieba-%25E9%25A9%25AC%25E8%25B6…...

wordpress导出出错/html网页制作网站

最近在研究nginx&#xff0c;接下来会把每天学习的知识点整理好之后&#xff0c;慢慢发上来。今天先对nginx做个大概的介绍&#xff0c;由于我是刚刚涉及这个领域&#xff0c;或许有很多东西都没能掌握的很好&#xff0c;有不足或者错漏的欢迎大家积极指出。我想通过nginx是什么…...

汽车音响网站建设/2022网站快速收录技术

————— 第二天 —————————————————首先&#xff0c;我们来定义一个Product类&#xff1a;public class Product {ArrayList<String> parts new ArrayList<String>();public void add(String part) {parts.add(part);}public void show() {S…...

五莲网站建设公司/山东免费网络推广工具

2019独角兽企业重金招聘Python工程师标准>>> 1、在index.php添加调试的配置为true&#xff0c;否则配置修改后不能立即生效 define (APP_DEBUG, true ); 2、通用的配置文件放在 Application/Common/Conf下面 3、修改config.php,配置数据库类型&#xff0c;否则报错:…...