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

离散数学---随机漫步

本文根据 MIT 计算机科学离散数学课程整理(Lecture 25)。

赌徒破产问题(Gambler's Ruin)

问题描述

初始为 n 元,对于每一次独立的赌注,都有 p 的概率赢得 1 元,(1-p) 的概率输掉 1 元。当输完 n 元或赢得 m 元(总资产 m+n 元)结束赌注。当 0 < p \le \frac{1}{2},求玩家赢得 m 元的概率和玩家输掉 n 元期望赌注次数。

引理

解决问题之前先补充关于一般齐次线性递归式一般非齐次线性递归式的解法,离散的情况和连续的情况类似,可以类比高等数学中的常系数齐次线性微分方程

一般齐次线性递归

若函数 f(n) 满足递推式:f(n)=\sum_{i=1}^{d} a_if(n-i)

且有 d-1 个边界条件:  f(i)=b_i \,for \,\, 0 \le i < d

令 f(n)=\alpha^n ,代入得特征方程 \alpha^d-a_1\alpha ^{d-1}-...- a_d =0,解得 \alpha_1 ,\alpha_2 , ... , \alpha_d

如果结果没有重根,则有 f(n)=\sum_{i=1}^{d} c_i\alpha_i^n ,代入边界条件即可求得 c_i ;如果某一个 \alpha 解为 r 重根,则 \alpha^n ,n\alpha^n , n^2\alpha^n , ... , n^{r-1}\alpha^n 都是线性解,f(n) 需要写成这些解的线性和。

例如得到特征方程的解为:1,2,2,2,3,4,其中 2 为 3 重根,通解就是 f(n)=c_1\cdot 1^n+c_2\cdot 2^n+c_3\cdot n\cdot 2^n+c_4\cdot n^2\cdot 2^n+c_5\cdot 3^n+c_6\cdot4^n

一般非齐次线性递归

若函数 f(n) 满足递推式:f(n)-\sum_{i=1}^{d} a_if(n-i)=g(n)

先按照齐次线性递归式的方法求出 f(n)-\sum_{i=1}^{d} a_if(n-i)=0  时的通解,在求出满足非齐次方程的一个特解。非齐次方程的通解是齐次方程的通解加上特解。

Solution

用 W 表示事件:在 n 使用完之前赢得 m 。

D 表示初始美元的值。x_n 表示在初始为 n 的情况下最终赢得 m 的概率。

则有:  x_n=P(W|D=n)

可以求得 x_i 有如下递推式:

x_i=\left\{\begin{matrix} 0 & ,i=0 \\ 1 & ,i=n+m \\ p\cdot x_{i+1}+(1-p)\cdot x_{i-1} & , 0< i< n+m \end{matrix}\right.

类似于动态规划中划分状态的思路: x_i 可以分为第一次赌注成功的情况和失败的情况,成功的情况赢得 1 元,转换到状态 x_{i+1},失败就转换到状态 x_{i-1}

严格推理证明如下:

用事件 A 表示赢得第一次赌注。

x_i=P(W|D=i)=p(W\bigwedge A|D=i)+P(W\bigwedge \neg A|D=i) \\ =P(A|D=i) \cdot P(W|A\bigwedge D=i)+P(\neg A|D=i) \cdot P(W|\neg A\bigwedge D=i)\\ =p\cdot x_{i+1} + (1-p) \cdot x_{i-1}

用 S 表示玩家直到输掉 n 元的赌注次数,E_n 表示输掉 n 元期望赌注次数,即:E_n=E(S|D=n)

同理, E_n 可以分为第一次赌注成功的情况和失败的情况,成功的情况转换到状态 E_{i+1},失败就转换到状态 E_{i-1},则有下面递推式:

E_i=\left\{\begin{matrix} 0 & ,i=0 \bigvee i=n+m \\ 1+p\cdot E_{i+1}+(1-p)\cdot E_{i-1} & , 0< i< n+m \end{matrix}\right.

x_i 递推式满足一般齐次线性递归式,E_i  递推式满足一般非齐次线性递归式,均可以转换为先求齐次方程通解,特征方程为:r^2\cdot p-r+1-p=0

解得:r_1=\frac{1-p}{p},r2=1

公平游戏

先考虑 p=\frac{1}{2},即完全公平游戏的情况,此时解为 2 重根 r_1=r_2=1 。

先求齐次方程 x_n 通解为:x_n=(c_1\cdot n+c_2)\cdot 1^n,代入 x_0=0,x_{n+m}=1 解得,c_1=\frac{1}{n+m},c_2=0

故:  x_n=\frac{n}{m+n}

 齐次方程 E_n 表示为齐次方程通解加上特解:

E_n=c_1\cdot n+c_2+E^*_n

 令特解为: E^{*}_n=a\cdot n^2+b\cdot n +c,代入递推式得到 a=-1,b=c=0 

 E_n=c_1\cdot n+c_2-n^2

 代入边界条件求得结果为:

E_n=n\cdot m

从结果来看,公平游戏赢得游戏概率于 m 和 n 有关,对于在高赌注少收益的情况概率高,例如 n=1000,m=100 的情况赢得游戏概率高达 \frac{10}{11}。对于 m 很大的情况,虽然根据推理出的输掉的期望步数很大,然而可以证明如果一直玩下去,输掉 n 赌注的概率为 1。

从极限的角度考虑,m\to \infty , x_n \to 0

课程中给出关于公平游戏一定会输掉赌注的证明如下: 

反证法,假设 \exists n,\xi >0,使得  P(\text{go broke}) \le 1- \xi

则有:\forall m ,1-x_n \le 1- \xi

\forall m ,\frac{m}{m+n} \le 1- \xi

\forall m ,m \le \frac{1-\xi}{\xi} \cdot n ,推出了矛盾式。

非公平游戏

对于不公平游戏,p<\frac{1}{2}r_1>1,解为两个不同的根。

先求齐次方程 x_n,通解表示为:

 x_n=c_1\cdot (\frac{1-p}{p})^n+c_2

x_0=0,x_{n+m}=1 \to c_1=\frac{1}{(\frac{1-p}{p})^{n+m}-1},c_2=\frac{-1}{(\frac{1-p}{p})^{n+m}-1} 

代入得到:x_n=\frac{(\frac{1-p}{p})^n-1}{(\frac{1-p}{p})^{n+m}-1} 

非齐次方程 E_n 表示为:

 E_n=c_1\cdot (\frac{1-p}{p})^n+c_2+E^*_n

令特解为: E^{*}_n=a\cdot n+b,代入递推式得到 a=\frac{1}{1-2p},b=0 

 E_0=0,E_{n+m}=0 代入求得 c_1,c_2,最后得到结果:

E_n=\frac{n}{1-2p} -\frac{n+m}{1-2p} \cdot\frac{(\frac{1-p}{p})^n-1}{(\frac{1-p}{p})^{n+m}-1}

可以看到,非公平游戏赢得游戏概率于收到 m 的指数级别的影响,会比公平游戏小得多。这里可以放缩分析:由于 \frac{1-p}{p}>1 ,故 x_n \le \frac{(\frac{1-p}{p})^n}{(\frac{1-p}{p})^T}=(\frac{p}{1-p})^m 。假设 p=\frac{9}{19},n=1000,m=100 的情况赢得游戏概率比 \frac{1}{37648} 还小,该数据代入期望步数结果约为 18999.44。实际上,对于不公平游戏赌注较大时,期望输掉游戏结果主要取决于 n ,即: m\to \infty , E_n \to \frac{n}{1-2p}

赌徒破产问题中的随机漫步

下面写一个针对赌徒破产问题的脚本:

#!/usr/bin/env python3
from argparse import ArgumentParser
import numpy as np
import matplotlib.pyplot as plt
def SetParser():parser=ArgumentParser(prog="Gambler's Ruin.",description="Simulation of Gambler's Ruin.")parser.add_argument("-n","--N",default=0,help="Initial bet in dollars.",type=int)parser.add_argument("-m","--M",default=0,help="Desired winnings from the bet in dollars.",type=int)parser.add_argument("-s","--maxsteps",default=100000,help="Maximum number of bets.",type=int)parser.add_argument("-p","--prob",default=0.5,help="The probability to win the game",type=float)return parser.parse_args()
def check_args(args):if args.N<0:raise ValueError("Initial bet (-n/--N) must be a non-negative integer.")if args.M<0:raise ValueError("Desired winnings (-m/--M) must be a non-negative integer.")if args.maxsteps<0:raise ValueError("Maximum number of bets (-s/--maxsteps) must be a non-negative integer.")if not (0<args.prob<=0.5):raise ValueError("Probability (-p/--prob) must be a float between 0 and 0.5 (exclusive).")
class Gambler_Ruin:def __init__(self,n,m,s,p):self.n=nself.m=mself.s=sself.p=pdef Simulate_process(self):val=self.nY=[self.n]for i in range(self.s):if val<=0 or val>=self.n+self.m: breakif np.random.rand()<self.p: val+=1else: val-=1Y.append(val)return Ydef Plot(self,Y):plt.figure(figsize=(10,6))plt.plot(range(len(Y)),Y,label="dollars over time")plt.axhline(self.n, color='blue',linestyle='--',label="Initial bet (n)")plt.axhline(self.n+self.m,color='green',linestyle='--',label="Desired winnings (n+m)")plt.axhline(0,color='red',linestyle='--',label="Bankruptcy")if self.p!=0.5:y_drift=[-(1-2*self.p)*x+self.n for x in range(len(Y))]plt.plot(y_drift,label="Drift",color="orange",linestyle="--")plt.title(f"Gambler's Ruin for n={self.n},m={self.m},p={self.p}")plt.xlabel("number of bets")plt.ylabel("dollars")plt.legend()plt.grid(True)plt.show()plt.annotate(f"End Value: {Y[-1]}",xy=(len(Y)-1,Y[-1]),xytext=(len(Y)-1,Y[-1]+5),arrowprops=dict(facecolor='black',arrowstyle='->'))if __name__ == '__main__':try:args=SetParser()check_args(args)except ValueError as e:print(f"Error: {e}")exit(1)except SystemExit:print("Invalid input. Use '--help' for usage instructions.")exit(1)try:g=Gambler_Ruin(args.N,args.M,args.maxsteps,args.prob)Y=g.Simulate_process()g.Plot(Y)except Exception as e:print(f"Error: {e}")exit(1)

编写脚本命名为 gambler_ruin.py,添加可执行权限即可。

vi gambler_ruin.py
chmod +x gambler_ruin.py

分别模拟不同的情况:

python gambler_ruin.py -n 1000 -m 100 -s 10000000 -p 0.5
python gambler_ruin.py -n 2000 -m 1000 -s 10000000 -p 0.5
python gambler_ruin.py -n 1000 -m 100 -s 10000000 -p 0.45
python gambler_ruin.py -n 2000 -m 1000 -s 10000000 -p 0.45

在公平游戏中,收益的走势表现为:在 y=-(1-2p)\cdot x+n=n 上下随机游走。

在非公平游戏中,收益的走势表现为:在 y=-(1-2p)\cdot x+n 上下随机游走。 

其中,y=-(1-2p)\cdot x+n 被称为漂移(drift),收益的上下随机变化特性被称为秋千 (Swing)

漂移(drift)

在赌徒破产理论中,漂移反应了赌徒的资金变化趋势,反映了游戏的长期期望值是否有偏向。其实,函数斜率绝对值 1-2p 就表示了损失的期望,因为玩家有 1-p 的概率损失 1,p 的概率损失 -1(赢得 1),故 E(loss)=1\cdot (1-p)+(-1)\cdot p=1-2p

秋千 (Swing)

由于游戏是随机的,每次下注的结果独立且不确定。即使漂移为零或负值,赌徒的资金仍然会因为随机波动而上下波动,形成所谓的“秋千”。在图像上,秋千表现为赌金曲线的随机起伏,围绕漂移线上下摆动。

资金的变化可以建模为一个离散随机游走过程。若当前资金为 x_t​,第 t+1 次下注后资金变为:

x_{t+1}=x_t+\xi_t

\xi_t 表示下一次赌注的资金变化,有 E(\xi_t)=2p-1 , Var(\xi_t)=4p(1-p)

累计 t 次下注后,资金的方差为:

Var(x_t)=t\cdot Var(\xi_t)=t\cdot 4p(1-p)

秋千的波动幅度可以用 x_t 的标准差来表示,即:\sqrt{Var(x_t)}=\sqrt{t\cdot 4p(1-p)}

所以,秋千的影响为 O(\sqrt{t}) 的数量级。在非公平游戏中远不如漂移的影响。

秋千的三个特点: 

(1)波动范围:赌徒的资金变化会在短期内上下波动,可能赢得所有钱或跌至破产。

(2)无方向性:秋千本身没有长期趋势,仅由随机性驱动。

(3)与漂移关系:漂移影响整体趋势(大体走势主要由漂移主导),但秋千决定短期的具体波动形态。

Update1:关于代码中概率判断的问题

python 中的 random.random() 生成的是范围 [0,1) 的随机整数,注意包括 0 不包括 1。所以判断的时候需要用严格小于 p ,此时赢得赌注样本生成概率才正好是 p。

相关文章:

离散数学---随机漫步

本文根据 MIT 计算机科学离散数学课程整理&#xff08;Lecture 25&#xff09;。 赌徒破产问题&#xff08;Gamblers Ruin&#xff09; 问题描述 初始为 n 元&#xff0c;对于每一次独立的赌注&#xff0c;都有 p 的概率赢得 1 元&#xff0c;(1-p) 的概率输掉 1 元。当输完…...

HCIA-Access V2.5_2_2网络通信基础_TCP/IP协议栈报文封装

TCP/IP协议栈的封装过程 用户从应用层发出数据先会交给传输层&#xff0c;传输层会添加TCP或者UDP头部&#xff0c;然后交给网络层&#xff0c;网络层会添加IP头部&#xff0c;然后交给数据链路层&#xff0c;数据链路层会添加以太网头部和以太网尾部&#xff0c;最后变成01这样…...

java开发入门学习一 -基本概念入门

目录 Java的开发环境搭建 开发环境简单认识 开发环境下载与安装 初始JAVA之helloWorld java基本运行原理 helloWord实例 JAVA文档注释和API 文档 注释 API文档地址 Java的优缺点 优点 缺点 JVM的简单介绍 功能 1. 实现JAVA程序的跨平台性 2. 自动内存管理(管理…...

Coturn 实战指南:WebRTC 中的 NAT 穿透利器

1. 什么是 Coturn&#xff1f; Coturn 是一种开源的 TURN(Traversal Using Relays around NAT)服务器&#xff0c;用于解决 NAT 穿透问题。它帮助客户端在受限网络环境(例如防火墙或 NAT 后面)中实现双向通信&#xff0c;常用于 WebRTC 应用、VoIP、在线游戏等场景。 2. Cotur…...

【每日一练 基础题】[蓝桥杯 2022 省 A] 求和

[蓝桥杯 2022 省 A] 求和 暴力破解会超时,用因式分解的平方差公式 a2 2abb2(a)2 a-2abb2(a-b)2 输出整数((a1a2a3…an)-a1-a2-a3-…-an)/2 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);l…...

华为ensp--BGP路径选择-Preferred Value

学习新思想&#xff0c;争做新青年。今天学习的是BGP路径选择-Preferred Value 实验目的 理解BGP路由信息首选值&#xff08;Preferred Value&#xff09;的作用 掌握修改Preferred Value属性的方法 掌握通过修改Preferred Value属性来实现流量分担的方法 实验拓扑 实验要求…...

Flink是什么?Flink技术介绍

官方参考资料&#xff1a;Apache Flink — Stateful Computations over Data Streams | Apache Flink Flink是一个分布式流处理和批处理计算框架&#xff0c;具有高性能、容错性和灵活性。以下是关于Flink技术的详细介绍&#xff1a; 一、Flink概述 ‌定义‌&#xff1a;Fli…...

Java中的重要集合

目录 List 1.vector 2.ArrayList 3.CopyonWriteArraylist 4.ArrayList变成线程安全的方式 5.LinkList Map 1.HashTable 2.HashMap 3.ConcurrentHashMap Set 1.LinkedHashSe List 1.vector Vector 是线程安全的动态数组&#xff0c;其内部方法基本都经过synchroni…...

实景视频与模型叠加融合?

[视频GIS系列]无人机视频与与实景模型进行实时融合_无人机视频融合-CSDN博客文章浏览阅读1.5k次&#xff0c;点赞28次&#xff0c;收藏14次。将无人机视频与实景模型进行实时融合是一个涉及多个技术领域的复杂过程&#xff0c;主要包括无人机视频采集、实景模型构建、视频与模型…...

【一本通】分数约分

【一本通】分数约分 C语言CJavaPython &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 编写一个给一个分数约分的程序。 输入 输出整数a&#xff0c;b&#xff0c;分别表示分子与分母 输出 约分后的分子与分母&#xff0c;用“/“分隔 …...

ArkTs的容器布局

组件按照布局的要求依次排列&#xff0c;构成应用的页面。在声明式UI中&#xff0c;所有的页面都是由自定义组件构成&#xff0c;开发中可以根据自己的需求&#xff0c;选择合适的布局进行页面开发。 一. 如何选择布局 声明式UI提供了以下10种常见布局&#xff0c;开发者可根…...

jenkins 出现 Jenkins: 403 No valid crumb was included in the request

文章目录 前言解决方式:1.跨站请求为找保护勾选"代理兼容"2.全局变量或者节点上添加环境变量3.&#xff08;可选&#xff09;下载插件 the strict Crumb Issuer plugin4.重启 前言 jenkins运行时间长了&#xff0c;经常出现点了好几次才能构建&#xff0c;然后报了Je…...

SpringDataJpa-字段加解密存储

SpringDataJpa-字段加解密存储 背景场景实现类型转换器实体类修改 Crypto 注解AOP 目前可使用场景注意 背景 遇到一个需求&#xff0c;对数据库中的某些字段进行加密存储&#xff0c;但是在各个服务流转中&#xff0c;需要是解密状态的。框架使用的是JPA。 Spring 提供了 Attri…...

python03-保留字、标识符;变量、常量;数据类型、数据类型之间的转化

一、保留字 VS 标识符 1-1、35个保留字 保留字&#xff0c;严格区分大小写&#xff01; 查询保留字&#xff1a; 1-2、标识符 常量&#xff1a;python中没有明确的定义常量的关键字&#xff0c;常量的值在程序运行过程中不允许修改&#xff01; 二、变量 VS 常量 2-1、变量 变…...

投影互动装置入驻,科普基地学习体验再上新台阶!

数字科技的迅猛进步极大地充盈了人们的日常生活&#xff0c;这一变革在主题乐园与科普教育基地等场所尤为显著。在这些地方&#xff0c;投影互动装置引领我们穿梭于光影构建的奇妙世界。特别是互动投影墙&#xff0c;它赋予观众前所未有的交互体验。那么&#xff0c;这种技术究…...

socket编程UDP-实现滑动窗口机制与累积确认GBN

在下面博客中&#xff0c;我介绍了利用UDP模拟TCP连接、按数据包发送文件的过程&#xff0c;并附上完整源码。 socket编程UDP-文件传输&模拟TCP建立连接脱离连接&#xff08;进阶篇&#xff09;_udp socket发送-CSDN博客 下面博客实现了停等机制。 socket编程UDP-实现停…...

乐观锁与悲观锁的概念

在多线程或多进程并发访问同一资源的情况下&#xff0c;为了防止数据的不一致性和竞态条件&#xff0c;常常需要使用锁机制来控制并发访问。锁机制大致可以分为 乐观锁&#xff08;Optimistic Locking&#xff09;和 悲观锁&#xff08;Pessimistic Locking&#xff09;。这两种…...

考研数学【线性代数基础box(数二)】

本文是对数学二线性代数基础进行总结&#xff0c;一些及极其简单的被省略了&#xff0c;代数的概念稀碎&#xff0c;不如高数关联性高&#xff0c;所以本文仅供参考&#xff0c;做题请从中筛选&#xff01; 本文为初稿&#xff0c;后面会根据刷题和自己的理解继续更新 高数&a…...

游戏引擎学习第45天

仓库: https://gitee.com/mrxiao_com/2d_game 回顾 我们刚刚开始研究运动方程&#xff0c;展示了如何处理当人物遇到障碍物时的情况。有一种版本是角色会从障碍物上反弹&#xff0c;而另一版本是角色会完全停下来。这种方式感觉不太自然&#xff0c;因为在游戏中&#xff0c;…...

基于 mzt-biz-log 实现接口调用日志记录

&#x1f3af;导读&#xff1a;mzt-biz-log 是一个用于记录操作日志的通用组件&#xff0c;旨在追踪系统中“谁”在“何时”对“何事”执行了“何种操作”。该组件通过简单的注解配置&#xff0c;如 LogRecord&#xff0c;即可实现接口调用的日志记录&#xff0c;支持成功与失败…...

无人设备之RTK地面基站篇

一、定义与功能 RTK地面基站是一种通过差分定位技术来实现GPS等全球导航卫星系统信号精确定位的设备。它通过与无人设备上的流动站进行实时数据通信&#xff0c;利用载波相位差分原理&#xff0c;消除卫星定位过程中的大部分公共误差&#xff0c;如卫星轨道误差、电离层延迟、对…...

TMS320C55x DSP芯片结构和CPU外围电路

第2章 DSP芯片结构和CPU外围电路 文章目录 第2章 DSP芯片结构和CPU外围电路TMS320C55x处理器的特点TMS320c55x CPU单元指令缓冲(Instruction Buffer Unit) I单元程序流程(Program Flow Unit) P单元地址数据(Address-data Flow Unit) A单元数据计算(Data Computation Unit) D单元…...

【CC2530开发基础篇】继电器模块使用

一、前言 1.1 开发背景 本实验通过使用CC2530单片机控制继电器的吸合与断开&#xff0c;深入了解单片机GPIO的配置与应用。继电器作为一种常见的电气控制元件&#xff0c;广泛用于自动化系统中&#xff0c;用于控制大功率负载的开关操作。在本实验中&#xff0c;将通过GPIO口…...

3D 生成重建035-DiffRF直接生成nerf

3D 生成重建035-DiffRF直接生成nerf 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 本文提出了一种基于渲染引导的三维辐射场扩散新方法DiffRF&#xff0c;用于高质量的三维辐射场合成。现有的方法通常难以生成具有细致纹理和几何细节的三维模型&#xff0c;并且容易出…...

安宝特分享 | AR技术助力医院总院与分院间的远程面诊

随着科技的迅猛发展&#xff0c;增强现实&#xff08;AR&#xff09;技术在各行各业的应用愈发广泛&#xff0c;特别是在医疗领域&#xff0c;其潜力和价值正在被不断挖掘。在现代医疗环境中&#xff0c;患者常常面临“看病难、看病远、看病急”等诸多挑战&#xff0c;而安宝特…...

【功能安全】硬件常用安全机制

目录 安全机制分类: ECC内存保护: 看门狗定时器WDT 看门狗的诊断覆盖率 程序流监控 软件自检<...

linux上qt打包(二)

sudo apt install git 新建一个文件夹 名为xiazai&#xff0c; chmod -R 777 xiazai cd xiazai 并进入这个文件夹&#xff0c;然后clone git clone https://github.com/probonopd/linuxdeployqt.git 此处可能要fanQiang才能下 cd linuxdeployqt文件夹 下载平台需要的…...

Vue3 左右2栏的宽度 比例resize

Vue3, 页面左右2栏布局&#xff0c;用vue-resizer.页面效果如下图。 安装 npm i vue-resizer引入 import { DragCol, DragRow, ResizeCol, ResizeRow, Resize } from vue-resizer<DragCol height"100%" width"100%" :leftPercent"15">…...

企业车辆管理系统(源码+数据库+报告)

一、项目介绍 352.基于SpringBoot的企业车辆管理系统&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块 二、项目技术 编程语言&#xff1a;Java 数据库&#xff1a;MySQL 项目管理工具&#xff1a;Maven 前端技术&#xff1a;Vue 后端技术&a…...

LeetCode 1847.最近的房间:有序集合

【LetMeFly】1847.最近的房间&#xff1a;有序集合 力扣题目链接&#xff1a;https://leetcode.cn/problems/closest-room/ 一个酒店里有 n 个房间&#xff0c;这些房间用二维整数数组 rooms 表示&#xff0c;其中 rooms[i] [roomIdi, sizei] 表示有一个房间号为 roomIdi 的…...

C05S07-Tomcat服务架设

一、Tomcat 1. Tomcat概述 Tomcat也是一个Web应用程序&#xff0c;具有三大核心功能。 Java Servlet&#xff1a;Tomcat是一个Servlet容器&#xff0c;负责管理和执行Java Servlet、服务端的Java程序&#xff0c;处理客户端的HTTP请求和响应。Java Server&#xff1a;服务端…...

Vscode搭建C语言多文件开发环境

一、文章内容简介 本文介绍了 “Vscode搭建C语言多文件开发环境”需要用到的软件&#xff0c;以及vscode必备插件&#xff0c;最后多文件编译时tasks.json文件和launch.json文件的配置。即目录顺序。由于内容较多&#xff0c;建议大家在阅读时使用电脑阅读&#xff0c;按照目录…...

mac电脑可以使用的模拟器

BlueStacks Air 推荐-》亲测可用 BlueStacks Air https://www.bluestacks.com 支持macOS/Windows&#xff0c;刚新增了对Apple Silicon系列M芯片的支持 GameLoop https://www.gameloop.com/ 支持 macOS/Windows Genymotion https://www.genymotion.com/ 支持Android/macO…...

vertx idea快速使用

目录 1.官网下载项目 2.修改代码 2.1拷贝代码方式 为了能够快速使用&#xff0c;我另外创建一个新的maven项目&#xff0c;将下载项目的src文件和pom文件拷贝到新建的maven项目。 2.2删除.mvn方式 3.更新配置 4.配置application 5.idea启动项目 1.官网下载项目 从vert…...

selenium 在已打开浏览器上继续调试

关闭浏览器&#xff0c;终端执行如下指令&#xff0c;--user-data-dir换成自己的User Data路径 chrome.exe --remote-debugging-port9222 --user-data-dir"C:\Users\xxx\AppData\Local\Google\Chrome\User Data" 会打开浏览器&#xff0c;打开百度&#xff0c;如下状…...

RequestContextHolder 与 HttpServletRequest 的联系

1. 什么是 RequestContextHolder&#xff1f; RequestContextHolder 是 Spring 框架 提供的一个工具类&#xff0c;用于在当前线程中存储和获取与请求相关的上下文信息。它是基于 ThreadLocal 实现的&#xff0c;能够保证每个线程独立存储和访问请求信息。 与 HttpServletReq…...

力扣hot100——普通数组

53. 最大子数组和 class Solution { public:int maxSubArray(vector<int>& nums) {int n nums.size();int ans nums[0];int sum 0;for (int i 0; i < n; i) {sum nums[i];ans max(ans, sum);if (sum < 0) sum 0;}return ans;} }; 最大子数组和&#xf…...

本地部署大模型QPS推理测试

目录 1、测试环境1.1、显卡1.2、模型1.3、部署环境1.3.1、docker1.3.2、执行命令 2、测试问题2.1、20字左右问题2.2、50字左右问题2.3、100字左右问题 3、测试代码3.1、通用测试代码3.2、通用测试代码&#xff08;仅供参考&#xff09; 4、测试结果4.1、通用测试结果4.2、RAG测…...

内存、硬盘、DRAM、FLASH

内存 内存是计算机系统中用于临时存储和快速存取当前正在处理的数据和指令的组件&#xff0c;属于临时存储设备&#xff0c;它在计算机运行时用于存储活跃的程序和数据。内存的性能直接影响计算机的处理速度和响应能力。 内存的类型主要分为&#xff1a; DRAM&#xff08;动态随…...

全景图转6面体图 全景图与6面体图互转

目录 图片转360度全景中心图 依赖项: 库的使用方法: 源代码: 全景图拆成6面体图: 全景图,转6面体,再转全景图: 图片转360度全景中心图 原图: 效果图: 依赖项: pip install py360convert pip install numpy==2.2 库的使用方法: https://g...

【psutil模块02】Python运维模块之系统进程管理方法

系统进程管理方法 获取当前系统的进程信息&#xff0c;包括进程的启动时间、查看或设置CPU亲和度、内存使用率、IO信息、socket连接、线程数等。 1.进程信息 psutil.pids()获取所有PID,使用psutil.Process()接收单个进程的PID&#xff0c;获取进程名、路径、状态、系统资源等…...

Java-08

类的抽象是将类的实现和使用分离, 而类的封装是将实现的细节封装起来并且对用户隐藏,用户只需会用就行。 类的合约指的是从类外可以访问的方法和数据域的集合以及与其这些成员如何行为的描述 isAlive()方法的返回值类型为布尔型&#xff08;Boolean&#xff09;。这个方法用于…...

四轴用的无刷电机到底是属于直流电机还是交流电机?

四轴用的无刷电机因其高效、稳定、体积小巧等特点&#xff0c;成为了广泛应用的动力系统之一。尽管其名称中包含“直流”二字&#xff0c;但无刷电机到底是属于直流电机还是交流电机&#xff0c;这一问题常常引发人们的探讨与困惑。 一、无刷电机的工作原理 首先&#xff0c;…...

Redis中的Hot key排查和解决思路

什么是Hot key Hot key其实就是被频繁访问的key&#xff0c;比普通的key访问量要高于十倍或者几十倍不等。例如&#xff1a; QPS集中在特定的Key&#xff1a;实例的总QPS&#xff08;每秒查询率&#xff09;为10,000&#xff0c;而其中一个Key的每秒访问量达到了7,000。带宽使…...

CMake 保姆级教程(上)

整理自 视频 【CMake 保姆级教程【C/C】】 https://www.bilibili.com/video/BV14s4y1g7Zj/?p5&share_sourcecopy_web&vd_source6eb8f46d194c5ef9f89d3331f623a9c3 1、cmake简介 源文件&#xff08;.cpp / .c&#xff09;要经过 工具链 1.1 工具链 1、预处理&#…...

C++类模板的应用

template <class T> class mylist{ public: // 这是一个链表的节点 struct Link{ T val; Link* next; } 增 &#xff1a;insert(T val) 在链表中创建新节点&#xff0c;节点上保存的数据为 val 删&#xff1a;remove(T val) 移除链表中数据为 val 的节点 改: operator[](…...

Ubuntu 18.04无有线图表且无法设置有线网络

问题背景&#xff1a; 今天在登陆自己的虚拟机Ubuntu系统的时候突然出现 有线连接无法连接的问题&#xff0c;有线连接的图标变为没有了&#xff0c;无法点击网络菜单的Setting模块选项。我的虚拟机有线网络连接方式是NAT方式。 没有如下有线连接图标 解决方法&#xff1a; …...

QoS分类和标记

https://zhuanlan.zhihu.com/p/160937314 1111111 分类和标记是识别每个数据包优先级的过程。 这是QoS控制的第一步&#xff0c;应在源主机附近完成。 分组通常通过其分组报头来分类。下图指定的规则仔细检查了数据包头 &#xff1a; 下表列出了分类标准&#xff1a; 普通二…...

企业内训|阅读行业产品运营实战训练营-某运营商数字娱乐公司

近日&#xff0c;TsingtaoAI公司为某运营商旗下数字娱乐公司组织的“阅读行业产品运营实战训练营”在杭州落下帷幕。此次训练营由TsingtaoAI资深互联网产品专家程靖主持。该公司的业务骨干——来自内容、市场、业务、产品与技术等跨部门核心岗位、拥有8-10年实战经验的中坚力量…...

杭州乘云联合信通院发布《云计算智能化可观测性能力成熟度模型》

原文地址&#xff1a;杭州乘云联合中国信通院等单位正式发布《云计算智能化可观测性能力成熟度模型》标准 2024年12月3日&#xff0c;由全球数字经济大会组委会主办、中国信通院承办的 2024全球数字经济大会 云AI计算创新发展大会&#xff08;2024 Cloud AI Compute Ignite&…...