知识蒸馏 - 各类概率分布

知识蒸馏 - 各类概率分布

flyfish
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

一、离散概率分布

离散分布描述的是取值为离散值(如0,1,2,…)的随机变量的概率规律,通常用概率质量函数(PMF) 表示某一取值的概率。

1. 伯努利分布(Bernoulli Distribution)
  • 定义:描述单次随机试验的结果,仅有两种可能(“成功”或“失败”),是最简单的离散分布。
  • 核心参数:成功概率 ppp0≤p≤10 \leq p \leq 10p1),失败概率为 1−p1-p1p
  • 概率质量函数(PMF)
    P(X=k)=pk(1−p)1−kP(X=k) = p^k (1-p)^{1-k}P(X=k)=pk(1p)1k,其中 k=0k=0k=0(失败)或 k=1k=1k=1(成功)。
  • 适用场景:单次试验的二元结果,如“抛一次硬币是否正面朝上”“一次抽奖是否中奖”。
  • 特点:仅含一次试验,结果非0即1;是所有离散分布的基础,多次独立伯努利试验可扩展为其他分布(如二项分布)。
2. 二项分布(Binomial Distribution)
  • 定义:描述 nnn 次独立重复的伯努利试验中,“成功”次数的概率分布。
  • 核心参数:试验次数 nnn(正整数)、单次成功概率 ppp0≤p≤10 \leq p \leq 10p1)。
  • 概率质量函数(PMF)
    P(X=k)=(nk)pk(1−p)n−kP(X=k) = \binom{n}{k} p^k (1-p)^{n-k}P(X=k)=(kn)pk(1p)nk,其中 k=0,1,...,nk=0,1,...,nk=0,1,...,n(nk)\binom{n}{k}(kn) 为组合数(从n次中选k次成功的方式数)。
  • 适用场景:多次独立试验的成功次数,如“抛10次硬币正面朝上的次数”“100件产品中不合格品的数量”。
  • 特点:试验独立且每次成功概率相同;当 n=1n=1n=1 时,退化为伯努利分布;均值为 npnpnp,方差为 np(1−p)np(1-p)np(1p)
3. 泊松分布(Poisson Distribution)
  • 定义:描述“一定时间/空间内,某随机事件发生次数”的概率分布。
  • 核心参数:发生率 λ\lambdaλλ>0\lambda > 0λ>0,表示单位时间/空间内事件的平均发生次数)。
  • 概率质量函数(PMF)
    P(X=k)=λke−λk!P(X=k) = \frac{\lambda^k e^{-\lambda}}{k!}P(X=k)=k!λkeλ,其中 k=0,1,2,...k=0,1,2,...k=0,1,2,...(事件发生次数),eee 为自然常数,k!k!k! 为k的阶乘。
  • 适用场景:稀有事件的发生次数,如“1小时内客服接到的电话次数”“1平方米布料上的瑕疵数”“一天内医院的急诊人数”。
  • 特点:事件独立发生,且发生率恒定;均值和方差均为 λ\lambdaλ;当二项分布中 nnn 很大、ppp 很小时(np≈λnp \approx \lambdanpλ),可近似为泊松分布。
4. 几何分布(Geometric Distribution)
  • 定义:描述“在一系列独立伯努利试验中,首次获得成功所需要的试验次数”的概率分布。
  • 核心参数:单次试验成功概率 ppp0<p≤10 < p \leq 10<p1)。
  • 概率质量函数(PMF)
    P(X=k)=(1−p)k−1pP(X=k) = (1-p)^{k-1} pP(X=k)=(1p)k1p,其中 k=1,2,...k=1,2,...k=1,2,...(首次成功时的试验次数,至少为1)。
  • 适用场景:首次成功前的试验次数,如“首次命中目标前的射击次数”“首次抽到红球前的抽奖次数”。
  • 特点:无记忆性(即“前k次失败不影响后续成功的概率”);均值为 1/p1/p1/p(平均需要 1/p1/p1/p 次试验才能首次成功),方差为 (1−p)/p2(1-p)/p^2(1p)/p2
5. 负二项分布(Negative Binomial Distribution)
  • 定义:描述“在一系列独立伯努利试验中,获得第 rrr 次成功时所需要的总试验次数”的概率分布(几何分布是其 r=1r=1r=1 时的特例)。
  • 核心参数:目标成功次数 rrr(正整数)、单次试验成功概率 ppp0<p≤10 < p \leq 10<p1)。
  • 概率质量函数(PMF)
    P(X=k)=(k−1r−1)pr(1−p)k−rP(X=k) = \binom{k-1}{r-1} p^r (1-p)^{k-r}P(X=k)=(r1k1)pr(1p)kr,其中 k=r,r+1,...k=r,r+1,...k=r,r+1,...(总试验次数,至少为 rrr)。
  • 适用场景:需要多次成功的试验次数,如“第5次命中目标时的总射击次数”“第3次卖出产品时的总客户接待数”。
  • 特点:可视为 rrr 个独立几何分布的和;均值为 r/pr/pr/p,方差为 r(1−p)/p2r(1-p)/p^2r(1p)/p2

二、连续概率分布

连续分布描述的是取值为连续区间(如实数域)的随机变量的概率规律,通常用概率密度函数(PDF) 表示某一区间内的概率密度(需通过积分计算区间概率)。

6. 均匀分布(Uniform Distribution)
  • 定义:描述“随机变量在区间 ([a,b]) 内所有取值的概率密度均相等”的分布。
  • 核心参数:区间下界 aaa 和上界 bbba<ba < ba<b)。
  • 概率密度函数(PDF)
    f(x)={1b−a若 a≤x≤b0其他 f(x) = \begin{cases} \frac{1}{b-a} & \text{若 } a \leq x \leq b \\ 0 & \text{其他} \end{cases} f(x)={ba10 axb其他
  • 适用场景:等可能结果的连续取值,如“随机选择的时间点在[0,24小时]内的分布”“随机测量的误差在[-0.5,0.5]内的分布”。
  • 特点:概率密度恒定(矩形分布);均值为 (a+b)/2(a+b)/2(a+b)/2,方差为 (b−a)2/12(b-a)^2/12(ba)2/12;区间内任意子区间的概率与子区间长度成正比。
7. 正态分布(Normal Distribution)
  • 定义:又称“高斯分布”,是自然界最常见的连续分布,呈对称的钟形曲线。
  • 核心参数:均值 μ\muμ(曲线中心位置)、标准差 σ\sigmaσ(曲线宽窄,σ>0\sigma > 0σ>0)。
  • 概率密度函数(PDF)
    f(x)=1σ2πe−(x−μ)22σ2f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\sigma^2}}f(x)=σ2π1e2σ2(xμ)2,其中 xxx 为任意实数,eee 为自然常数。
  • 适用场景:大量独立随机因素影响的结果,如“人群身高/体重分布”“测量误差分布”“考试分数分布”。
  • 特点:对称性(关于 x=μx=\mux=μ 对称);“3σ法则”(约99.7%的取值落在 [μ−3σ,μ+3σ][\mu-3\sigma, \mu+3\sigma][μ3σ,μ+3σ] 内);中心极限定理表明,大量独立随机变量的和近似服从正态分布;标准正态分布(μ=0,σ=1\mu=0, \sigma=1μ=0,σ=1)是基础,可通过标准化转换(Z=(X−μ)/σZ=(X-\mu)/\sigmaZ=(Xμ)/σ)将任意正态分布转化为标准正态分布。
8. 指数分布(Exponential Distribution)
  • 定义:描述“两次独立随机事件发生的时间间隔”的概率分布(与泊松分布对应:泊松分布描述事件发生次数,指数分布描述事件间隔时间)。
  • 核心参数:率参数 λ\lambdaλλ>0\lambda > 0λ>0,表示单位时间内事件的平均发生次数,与泊松分布的 λ\lambdaλ 一致)。
  • 概率密度函数(PDF)
    f(x)={λe−λx若 x≥00若 x<0 f(x) = \begin{cases} \lambda e^{-\lambda x} & \text{若 } x \geq 0 \\ 0 & \text{若 } x < 0 \end{cases} f(x)={λeλx0 x0 x<0
  • 适用场景:事件间隔时间,如“两次设备故障的时间间隔”“两次客户到达的时间间隔”“电池寿命”。
  • 特点:无记忆性(即“已使用t小时的设备,剩余寿命与新设备相同”);均值为 1/λ1/\lambda1/λ(平均间隔时间),方差为 1/λ21/\lambda^21/λ2;取值范围为非负实数。
9. 伽玛分布(Gamma Distribution)
  • 定义:描述“多个独立指数分布变量的总和”的概率分布(指数分布是其形状参数 a=1a=1a=1 时的特例)。
  • 核心参数:形状参数 aaaa>0a > 0a>0,可理解为“事件次数”)、率参数 β\betaββ>0\beta > 0β>0,与指数分布的 λ\lambdaλ 类似)。
  • 概率密度函数(PDF)
    f(x)={βaΓ(a)xa−1e−βx若 x≥00若 x<0 f(x) = \begin{cases} \frac{\beta^a}{\Gamma(a)} x^{a-1} e^{-\beta x} & \text{若 } x \geq 0 \\ 0 & \text{若 } x < 0 \end{cases} f(x)={Γ(a)βaxa1eβx0 x0 x<0
    其中 Γ(a)\Gamma(a)Γ(a) 为伽玛函数(当 aaa 为整数时,Γ(a)=(a−1)!\Gamma(a)=(a-1)!Γ(a)=(a1)!)。
  • 适用场景:多个事件间隔的总和,如“3次电话呼叫的总时间”“5个零件的总寿命”;当 aaa 为整数时,也称为“爱尔朗分布”(Erlang Distribution),常用于排队论。
  • 特点:形状随 aaa 变化(aaa 增大时逐渐接近正态分布);均值为 a/βa/\betaa/β,方差为 a/β2a/\beta^2a/β2
10. 卡方分布(Chi-Squared Distribution)
  • 定义:描述“k个独立标准正态变量的平方和”的概率分布(是伽玛分布的特例:当形状参数 a=k/2a=k/2a=k/2、率参数 β=1/2\beta=1/2β=1/2 时)。
  • 核心参数:自由度 kkk(正整数,对应标准正态变量的个数)。
  • 概率密度函数(PDF)
    f(x)={12k/2Γ(k/2)x(k/2)−1e−x/2若 x≥00若 x<0 f(x) = \begin{cases} \frac{1}{2^{k/2} \Gamma(k/2)} x^{(k/2)-1} e^{-x/2} & \text{若 } x \geq 0 \\ 0 & \text{若 } x < 0 \end{cases} f(x)={2k/2Γ(k/2)1x(k/2)1ex/20 x0 x<0
  • 适用场景:统计检验中,如“方差的假设检验”“拟合优度检验”“独立性检验”;是t分布和F分布的基础。
  • 特点:取值非负,右偏分布(随 kkk 增大逐渐对称);均值为 kkk,方差为 2k2k2k;若 X∼χ2(k1)X \sim \chi^2(k_1)Xχ2(k1)Y∼χ2(k2)Y \sim \chi^2(k_2)Yχ2(k2),则 X+Y∼χ2(k1+k2)X+Y \sim \chi^2(k_1+k_2)X+Yχ2(k1+k2)(可加性)。
11. t分布(t-Distribution)
  • 定义:描述“小样本均值标准化后”的概率分布,当总体标准差未知时,用样本标准差替代后推导得到。
  • 核心参数:自由度 vvv(正整数,通常为样本量减1,v=n−1v = n-1v=n1)。
  • 概率密度函数(PDF)
    f(x)=Γ((v+1)/2)vπΓ(v/2)(1+x2v)−(v+1)/2f(x) = \frac{\Gamma((v+1)/2)}{\sqrt{v\pi} \Gamma(v/2)} \left(1 + \frac{x^2}{v}\right)^{-(v+1)/2}f(x)=vπΓ(v/2)Γ((v+1)/2)(1+vx2)(v+1)/2,其中 xxx 为任意实数。
  • 适用场景:小样本(n<30n < 30n<30)的均值检验,如“小样本下总体均值的区间估计”“单样本t检验”“两独立样本t检验”。
  • 特点:形状类似正态分布,但尾部更厚(对极端值更敏感);随自由度 vvv 增大,逐渐接近标准正态分布(v→∞v \to \inftyv 时完全一致);均值为0(v>1v > 1v>1 时),方差为 v/(v−2)v/(v-2)v/(v2)v>2v > 2v>2 时)。
12. F分布(F-Distribution)
  • 定义:描述“两个独立卡方分布变量分别除以各自自由度后的比值”的概率分布。
  • 核心参数:分子自由度 d1d_1d1 和分母自由度 d2d_2d2(均为正整数)。
  • 概率密度函数(PDF)
    f(x)={Γ((d1+d2)/2)Γ(d1/2)Γ(d2/2)(d1d2)d1/2x(d1/2)−1(1+d1d2x)−(d1+d2)/2若 x≥00若 x<0 f(x) = \begin{cases} \frac{\Gamma((d_1+d_2)/2)}{\Gamma(d_1/2)\Gamma(d_2/2)} \left(\frac{d_1}{d_2}\right)^{d_1/2} x^{(d_1/2)-1} \left(1 + \frac{d_1}{d_2}x\right)^{-(d_1+d_2)/2} & \text{若 } x \geq 0 \\ 0 & \text{若 } x < 0 \end{cases} f(x)=Γ(d1/2)Γ(d2/2)Γ((d1+d2)/2)(d2d1)d1/2x(d1/2)1(1+d2d1x)(d1+d2)/20 x0 x<0
  • 适用场景:方差比较,如“方差分析(ANOVA)”(检验多组均值是否有差异)、“两总体方差比的假设检验”。
  • 特点:取值非负,右偏分布;形状由两个自由度共同决定;若 F∼F(d1,d2)F \sim F(d_1,d_2)FF(d1,d2),则 1/F∼F(d2,d1)1/F \sim F(d_2,d_1)1/FF(d2,d1)(倒数性质)。
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats# 设置中文显示
#plt.rcParams["font.family"] = ["SimHei"]
plt.rcParams["font.family"] = ['AR PL UMing CN']#Linux
plt.rcParams["axes.unicode_minus"] = False  # 解决负号显示问题def save_distribution_plot(plot_func, params, title_cn, title_en, x_label, y_label,filename_cn, filename_en, params_str, is_discrete=True):"""生成并保存分布图像的通用函数(不含公式)"""plt.figure(figsize=(10, 7))plot_func(*params)# 标题组合中英文plt.title(f"{title_cn}\n{title_en}", fontsize=14)# 设置轴标签plt.xlabel(x_label, fontsize=12)plt.ylabel(y_label, fontsize=12)plt.grid(alpha=0.3)plt.tight_layout()  # 紧凑布局,无需为公式预留空间# 生成包含中英文的文件名filename = f"{filename_cn}_{filename_en}_{params_str}.jpg"plt.savefig(filename, dpi=300, bbox_inches='tight')plt.close()# 1. 伯努利分布
def plot_bernoulli():x = [0, 1]p = 0.6pmf = [1 - p, p]plt.bar(x, pmf, color='skyblue', width=0.5)plt.xticks(x)plt.ylim(0, 1.1)return pp = plot_bernoulli()
save_distribution_plot(plot_bernoulli, [], f'伯努利分布 (p={p})', f'Bernoulli Distribution (p={p})','随机变量值 (Random Variable Value)', '概率 (Probability)','伯努利分布', 'bernoulli', f'p{p}', True
)# 2. 二项分布
def plot_binomial():n, p = 10, 0.4x = np.arange(0, n + 1)pmf = stats.binom.pmf(x, n, p)plt.bar(x, pmf, color='salmon', width=0.6)plt.ylim(0, 0.35)return n, pn, p = plot_binomial()
save_distribution_plot(plot_binomial, [], f'二项分布 (n={n}, p={p})', f'Binomial Distribution (n={n}, p={p})','成功次数 (Number of Successes)', '概率 (Probability)','二项分布', 'binomial', f'n{n}_p{p}', True
)# 3. 泊松分布
def plot_poisson():lambda_p = 4x = np.arange(0, 16)pmf = stats.poisson.pmf(x, lambda_p)plt.bar(x, pmf, color='lightgreen', width=0.7)plt.ylim(0, 0.25)return lambda_plambda_p = plot_poisson()
save_distribution_plot(plot_poisson, [], f'泊松分布 (λ={lambda_p})', f'Poisson Distribution (λ={lambda_p})','事件发生次数 (Number of Occurrences)', '概率 (Probability)','泊松分布', 'poisson', f'lambda{lambda_p}', True
)# 4. 几何分布
def plot_geometric():p = 0.3x = np.arange(1, 11)pmf = stats.geom.pmf(x, p)plt.bar(x, pmf, color='purple', width=0.6)plt.ylim(0, 0.35)return pp = plot_geometric()
save_distribution_plot(plot_geometric, [], f'几何分布 (p={p})', f'Geometric Distribution (p={p})','首次成功前的试验次数 (Trials Until First Success)', '概率 (Probability)','几何分布', 'geometric', f'p{p}', True
)# 5. 负二项分布
def plot_negative_binomial():r, p = 5, 0.6x = np.arange(5, 16)pmf = stats.nbinom.pmf(x - r, r, p)plt.bar(x, pmf, color='orange', width=0.7)plt.ylim(0, 0.25)return r, pr, p = plot_negative_binomial()
save_distribution_plot(plot_negative_binomial, [], f'负二项分布 (r={r}, p={p})', f'Negative Binomial Distribution (r={r}, p={p})','第r次成功时的试验次数 (Trials Until r-th Success)', '概率 (Probability)','负二项分布', 'negative_binomial', f'r{r}_p{p}', True
)# 6. 均匀分布
def plot_uniform():a, b = 2, 8x = np.linspace(a - 1, b + 1, 1000)pdf = stats.uniform.pdf(x, loc=a, scale=b - a)plt.plot(x, pdf, color='red')plt.fill_between(x, pdf, alpha=0.3, color='red')plt.ylim(0, 0.2)return a, ba, b = plot_uniform()
save_distribution_plot(plot_uniform, [], f'均匀分布 (a={a}, b={b})', f'Uniform Distribution (a={a}, b={b})','随机变量值 (Random Variable Value)', '概率密度 (Probability Density)','均匀分布', 'uniform', f'a{a}_b{b}', False
)# 7. 正态分布
def plot_normal():mu, sigma = 0, 2x = np.linspace(mu - 4*sigma, mu + 4*sigma, 1000)pdf = stats.norm.pdf(x, mu, sigma)plt.plot(x, pdf, color='blue')plt.fill_between(x, pdf, alpha=0.3, color='blue')plt.ylim(0, 0.25)return mu, sigmamu, sigma = plot_normal()
save_distribution_plot(plot_normal, [], f'正态分布 (μ={mu}, σ={sigma})', f'Normal Distribution (μ={mu}, σ={sigma})','随机变量值 (Random Variable Value)', '概率密度 (Probability Density)','正态分布', 'normal', f'mu{mu}_sigma{sigma}', False
)# 8. 指数分布
def plot_exponential():lambda_exp = 0.5x = np.linspace(0, 6, 1000)pdf = stats.expon.pdf(x, scale=1/lambda_exp)plt.plot(x, pdf, color='green')plt.fill_between(x, pdf, alpha=0.3, color='green')plt.ylim(0, 0.6)return lambda_explambda_exp = plot_exponential()
save_distribution_plot(plot_exponential, [], f'指数分布 (λ={lambda_exp})', f'Exponential Distribution (λ={lambda_exp})','时间间隔 (Time Interval)', '概率密度 (Probability Density)','指数分布', 'exponential', f'lambda{lambda_exp}', False
)# 9. 伽玛分布
def plot_gamma():a, beta = 2, 1x = np.linspace(0, 6, 1000)pdf = stats.gamma.pdf(x, a, scale=1/beta)plt.plot(x, pdf, color='brown')plt.fill_between(x, pdf, alpha=0.3, color='brown')plt.ylim(0, 1.0)return a, betaa, beta = plot_gamma()
save_distribution_plot(plot_gamma, [], f'伽玛分布 (a={a}, β={beta})', f'Gamma Distribution (a={a}, β={beta})','随机变量值 (Random Variable Value)', '概率密度 (Probability Density)','伽玛分布', 'gamma', f'a{a}_beta{beta}', False
)# 10. 卡方分布
def plot_chi2():k = 3x = np.linspace(0, 15, 1000)pdf = stats.chi2.pdf(x, k)plt.plot(x, pdf, color='cyan')plt.fill_between(x, pdf, alpha=0.3, color='cyan')plt.ylim(0, 0.7)return kk = plot_chi2()
save_distribution_plot(plot_chi2, [], f'卡方分布 (k={k})', f'Chi-squared Distribution (k={k})','随机变量值 (Random Variable Value)', '概率密度 (Probability Density)','卡方分布', 'chi2', f'k{k}', False
)# 11. t分布
def plot_t():v = 5x = np.linspace(-5, 5, 1000)pdf = stats.t.pdf(x, v)plt.plot(x, pdf, color='magenta')plt.fill_between(x, pdf, alpha=0.3, color='magenta')plt.ylim(0, 0.4)return vv = plot_t()
save_distribution_plot(plot_t, [], f't分布 (v={v})', f't-Distribution (v={v})','随机变量值 (Random Variable Value)', '概率密度 (Probability Density)','t分布', 't_distribution', f'v{v}', False
)# 12. F分布
def plot_f():d1, d2 = 5, 10x = np.linspace(0, 4, 1000)pdf = stats.f.pdf(x, d1, d2)plt.plot(x, pdf, color='gray')plt.fill_between(x, pdf, alpha=0.3, color='gray')plt.ylim(0, 1.0)return d1, d2d1, d2 = plot_f()
save_distribution_plot(plot_f, [], f'F分布 (d1={d1}, d2={d2})', f'F-Distribution (d1={d1}, d2={d2})','随机变量值 (Random Variable Value)', '概率密度 (Probability Density)','F分布', 'f_distribution', f'd1{d1}_d2{d2}', False
)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/94043.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/94043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件测试-Selenium学习笔记

""" 目标&#xff1a; driver.find_element() 需求&#xff1a; 1. 使用driver.find_element()方法 2. 输入用户名&#xff1a;admin 3. 输入密码&#xff1a;123456 """ # 导包 from selenium import webdriver from time import …

知微传感3D相机上位机DkamViewer使用:给相机升级固件

写在前面 本人从事机器视觉细分的3D相机行业。编写此系列文章主要目的有&#xff1a; 1、便利他人应用相机&#xff0c;本系列文章包含公司所出售相机的SDK的使用例程及详细注释&#xff1b;2、促进行业发展及交流。 知微传感Dkam系列3D相机可以应用于定位分拣、焊接焊缝提取、…

CMake进阶: CMake Modules---简化CMake配置的利器

目录 1.简介 2.为什么需要 CMake Modules&#xff1f; 3.内置模块&#xff1a;开箱即用的工具 3.1.依赖查找模块&#xff08;FindXXX.cmake&#xff09; 3.2.功能检测模块&#xff08;CheckXXX.cmake&#xff09; 3.3.通用工具模块&#xff08;如 FetchContent.cmake、CT…

【Docker】Ubuntu上安装Docker(网络版)

【Docker】Ubuntu上安装Docker注意&#xff1a;一、环境准备1. 系统要求2. 卸载旧版本二、安装步骤1.配置仓库源2.安装 Docker引擎3.验证安装情况三、解决报错1、检查网络连接2、检查Docker服务状态3、换源4.重载生效、重启服务、查看是否配置成功5.验证解决情况四、权限与配置…

Socket 编程 TCP

TCP 网络程序 和刚才 UDP 类似. 实现一个简单的英译汉的功能。TCP是面向字节流的可靠传输&#xff0c;如同前文的管道流&#xff0c;只要是流&#xff0c;它的操作就是文件的写出与读入。TCP socket API 详解下面介绍程序中用到的 socket API,这些函数都在 sys/socket.h 中。so…

使用AWS S3 + Lambda + MediaConvert 实现上传视频文件并自动转码

前言 最近团队在做短视频平台的技术调研&#xff0c;其中有一个环节便是音视频开发&#xff0c;即对用户上传的视频进行自适应转码。自适应的原理其实就是预先将视频转换为几个常用的分辨率&#xff0c;app端根据用户手机分辨率拉取相应分辨率的视频。 目前尝试了两种方案&…

QT之QWaitCondition降低cpu占用率,从忙等待到高效同步

在多线程编程中&#xff0c;线程间的同步是一个核心问题。在处理线程等待时&#xff0c;经常会写出高CPU占用率的代码&#xff0c;其中最典型的就是使用忙等待&#xff08;busy waiting&#xff09;。本文将详细介绍如何使用Qt框架中的QWaitCondition类来优雅地解决这一问题&am…

pcl求平面点云的边界凸包点

基本流程1&#xff0c;读入点云&#xff0c;并去除无效点2&#xff0c;拟合平面3&#xff0c;去除离平面距离较远的点4&#xff0c;对点云进行平面投影5&#xff0c;进行convex_hull运算初学者&#xff0c;暂时不知道能用来干嘛。练手还是非常不错的&#xff01;#define _CRT_S…

Windows系统上使用GIT

首先破除一下畏惧心理&#xff1a;在Windows上使用git和在linux系统中的使用方法是一样的&#xff0c;只是安装方式没那么便捷&#xff0c;毕竟linux中安装git只需要一行命令 GIT下载地址 如果你的电脑的CPU是64位的&#xff0c;就点击&#xff1a; Git-2.50.1-64-bit.exe 如果…

《设计模式之禅》笔记摘录 - 17.模板方法模式

模板方法模式的定义模板方法模式(Template Method Pattern)是如此简单&#xff0c;以致让你感觉你已经能够掌握其精髓了。其定义如下&#xff1a;Define the skeleton of an algorithm in an operation, deferring some steps to subclasses.Template Method lets subclasses r…

SpreadJS 协同服务器 MongoDB 数据库适配支持

为了支持 SpreadJS 协同编辑场景&#xff0c;协同服务器需要持久化存储文档、操作、快照及里程碑数据。本文介绍了 MongoDB 数据库适配器的实现方法&#xff0c;包括集合初始化、适配器接口实现以及里程碑存储支持。 一、MongoDB 集合初始化 协同编辑服务需要以下集合&#x…

Ubuntu 主机名:精通配置与管理

主机名&#xff08;hostname&#xff09;是Linux系统中用于标识网络上特定设备的名称&#xff0c;它在网络通信、服务配置&#xff08;如 Kubernetes 集群、数据库&#xff09;以及日志记录中扮演着至关重要的角色。对于初学者来说&#xff0c;配置主机名似乎很简单&#xff0c…

C/C++ 协程:Stackful 手动控制的工程必然性

&#x1f680; C/C 协程&#xff1a;Stackful 手动控制的工程必然性 引用&#xff1a; C/C 如何正确的切换协同程序&#xff1f;&#xff08;基于协程的并行架构&#xff09; #mermaid-svg-SXgplRf3WRYc8A7l {font-family:"trebuchet ms",verdana,arial,sans-serif;…

新手向:使用STM32通过RS485通信接口控制步进电机

新手向&#xff1a;使用STM32通过RS485通信接口控制步进电机 准备工作 本文使用的STM32芯片是STM32F407ZGTx&#xff0c;使用的电机是57步进电机&#xff0c;驱动器是用的是时代超群的RS485总线一体化步进电机驱动器&#xff08;42 型&#xff1a;ZD-M42P-485&#xff09;。使…

设计模式笔记_行为型_命令模式

1.命令模式介绍命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;它将请求或操作封装为对象&#xff0c;使得可以用不同的请求对客户端进行参数化。命令模式的核心思想是将方法调用、请求或操作封装到一个独立的命令对象中&#xff0c;从而使得客…

详解MySQL中的多表查询:多表查询分类讲解、七种JOIN操作的实现

精选专栏链接 &#x1f517; MySQL技术笔记专栏Redis技术笔记专栏大模型搭建专栏Python学习笔记专栏深度学习算法专栏 欢迎订阅&#xff0c;点赞&#xff0b;关注&#xff0c;每日精进1%&#xff0c;与百万开发者共攀技术珠峰 更多内容持续更新中&#xff01;希望能给大家带来…

vue3+elemeent-plus, el-tooltip的样式修改不生效

修改后的样式&#xff0c;直接贴图&#xff0c;经过删除出现悬浮1、在书写代码的时候切记effect“light”&#xff0c;如果你需要的是深色的样式:disabled"!multiple" 是否禁用<el-tooltip effect"light" placement"top" content"请先选…

网页作品惊艳亮相!这个浪浪山小妖怪网站太治愈了!

大家好呀&#xff01;今天要给大家分享一个超级治愈的网页作品——浪浪山小妖怪主题网站&#xff01;这个纯原生开发的项目不仅颜值在线&#xff0c;功能也很能打哦&#xff5e;至于灵感来源的话&#xff0c;要从一部动画说起。最近迷上了治愈系动画&#xff0c;就想做一个温暖…

搭建最新--若依分布式spring cloudv3.6.6 前后端分离项目--步骤与记录常见的坑

首先 什么拉取代码&#xff0c;安装数据库&#xff0c;安装redis&#xff0c;安装jdk这些我就不说了 导入数据库 &#xff1a;数据库是分库表的 &#xff0c;不要建错了 【一定要注意&#xff0c;不然nacos读取不到配置文件】这个是给nacos用的这个是给项目配置或项目用的2. 服…

分布式唯一 ID 生成方案

在复杂分布式系统中&#xff0c;往往需要对大量的数据和消息进行唯一标识。如在美团点评的金融、支付、餐饮、酒店、猫眼电影等产品的系统中&#xff0c;数据日渐增长&#xff0c;对数据分库分表后需要有一个唯一 ID 来标识一条数据或消息&#xff0c;数据库的自增 ID 显然不能…