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

机器学习数学基础:29.t检验

t检验学习笔记

一、t检验的定义和用途

t检验是统计学中常用的假设检验方法,主要用于判断样本均值与总体均值间,或两个样本均值间是否存在显著差异。

在实际中应用广泛,例如在医学领域可用于比较两种药物的疗效;在教育领域,能评估不同教学方法对学生成绩的影响等,以此帮助判断实验或调查结果是否具有统计学意义。

二、t检验的基本原理

(一)t分布特性

t检验基于t分布。t分布是一种概率分布,与正态分布类似,但在样本量较小时,其尾部比正态分布更厚。这使得t分布在小样本情形下,能更好地应对样本的不确定性。

(二)t统计量计算

t检验的核心是计算t统计量。不同类型的t检验公式有所不同,但总体思路均是通过比较样本均值与总体均值,或两个样本均值的差异,同时考虑样本标准差和样本量,来衡量该差异是否显著。

以单样本t检验为例,公式为: t = X ˉ − μ S / n t\ =\frac{\bar{X}-\mu}{S/\sqrt{n}} t =S/n Xˉμ。其中, X ˉ \bar{X} Xˉ是样本均值, μ \mu μ是总体均值, S S S是样本标准差, n n n是样本量。

若计算的t值较大,超出给定显著性水平下的临界值,意味着样本均值与总体均值差异显著,有理由拒绝原假设,认为样本并非来自该总体,或两样本所代表的总体均值存在差异。

三、t检验的分类及应用场景

(一)单样本t检验

  1. 目的:检验一个样本均值与已知总体均值是否有显著差异。
  2. 案例:已知某地区成年男性平均身高为175cm,现从该地区随机抽取50名成年男性,测得平均身高为178cm,标准差为10cm。判断这50名男性身高与该地区总体成年男性身高是否有显著差异。
    • 计算过程
      • 明确已知条件: X ˉ = 178 \bar{X}\ =178 Xˉ =178 μ = 175 \mu \ = 175 μ =175 S = 10 S \ = 10 S =10 n = 50 n \ = 50 n =50
      • 代入公式计算t值: t = 178 − 175 10 / 50 = 3 10 / 7.07 = 3 1.41 ≈ 2.13 t\ =\frac{178 - 175}{10/\sqrt{50}}\ =\frac{3}{10/7.07}\ =\frac{3}{1.41}\approx2.13 t =10/50 178175 =10/7.073 =1.4132.13
      • 确定自由度 d f = n − 1 = 50 − 1 = 49 df\ =n - 1\ =50 - 1\ =49 df =n1 =501 =49,选定显著性水平 α = 0.05 \alpha \ = 0.05 α =0.05,查t分布表得临界值。
      • 若t值大于临界值,拒绝原假设,认为这50名男性平均身高与总体平均身高有显著差异;若小于临界值,接受原假设,认为无显著差异。

(二)独立样本t检验

  1. 目的:比较两个独立样本的均值,判断两个不同组(如实验组和对照组)间是否存在差异。
  2. 案例:对两种不同品牌电池进行续航测试,品牌A测试30个样本,平均续航10小时,标准差1.5小时;品牌B测试25个样本,平均续航9小时,标准差1.2小时。比较两种品牌电池续航能力是否有显著差异。
    • 计算过程
      • 构建数据: X ˉ 1 = 10 \bar{X}_{1}\ =10 Xˉ1 =10 S 1 = 1.5 S_{1}\ =1.5 S1 =1.5 n 1 = 30 n_{1}\ =30 n1 =30 X ˉ 2 = 9 \bar{X}_{2}\ =9 Xˉ2 =9 S 2 = 1.2 S_{2}\ =1.2 S2 =1.2 n 2 = 25 n_{2}\ =25 n2 =25
      • 计算合并方差 S p 2 = ( n 1 − 1 ) S 1 2 + ( n 2 − 1 ) S 2 2 n 1 + n 2 − 2 = ( 30 − 1 ) × 1. 5 2 + ( 25 − 1 ) × 1. 2 2 30 + 25 − 2 = 29 × 2.25 + 24 × 1.44 53 = 65.25 + 34.56 53 ≈ 1.88 S_{p}^{2}\ =\frac{(n_{1}-1)S_{1}^{2}+(n_{2}-1)S_{2}^{2}}{n_{1}+n_{2}-2}\ =\frac{(30 - 1)\times1.5^{2}+(25 - 1)\times1.2^{2}}{30 + 25 - 2}\ =\frac{29\times2.25+24\times1.44}{53}\ =\frac{65.25+34.56}{53}\approx1.88 Sp2 =n1+n22(n11)S12+(n21)S22 =30+252(301)×1.52+(251)×1.22 =5329×2.25+24×1.44 =5365.25+34.561.88
      • 计算t值: t = X ˉ 1 − X ˉ 2 S p 2 ( 1 n 1 + 1 n 2 ) = 10 − 9 1.88 × ( 1 30 + 1 25 ) = 1 1.88 × ( 5 + 6 150 ) = 1 1.88 × 11 150 ≈ 2.64 t\ =\frac{\bar{X}_{1}-\bar{X}_{2}}{\sqrt{S_{p}^{2}(\frac{1}{n_{1}}+\frac{1}{n_{2}})}}\ =\frac{10 - 9}{\sqrt{1.88\times(\frac{1}{30}+\frac{1}{25})}}\ =\frac{1}{\sqrt{1.88\times(\frac{5 + 6}{150})}}\ =\frac{1}{\sqrt{1.88\times\frac{11}{150}}}\approx2.64 t =Sp2(n11+n21) Xˉ1Xˉ2 =1.88×(301+251) 109 =1.88×(1505+6) 1 =1.88×15011 12.64
      • 确定自由度 d f = n 1 + n 2 − 2 = 30 + 25 − 2 = 53 df\ =n_{1}+n_{2}-2\ =30 + 25 - 2\ =53 df =n1+n22 =30+252 =53,根据显著性水平 α = 0.05 \alpha \ = 0.05 α =0.05查t分布表得临界值,比较t值与临界值判断是否有显著差异。

(三)配对样本t检验

  1. 目的:比较配对样本(如同一组对象前后两次测试数据)的均值差异,判断某种处理或时间因素等对结果的影响。
  2. 案例:对15名学生进行培训前后成绩测试,培训前平均成绩75分,培训后80分,成绩差值标准差为5分。判断培训是否有效提高学生成绩。
    • 计算过程
      • 已知 d ˉ = 80 − 75 = 5 \bar{d}\ =80 - 75\ =5 dˉ =8075 =5 d ˉ \bar{d} dˉ为成绩差值均值), S d = 5 S_{d}\ =5 Sd =5 n = 15 n \ = 15 n =15
      • 计算t值: t = d ˉ S d / n = 5 5 / 15 ≈ 3.87 t\ =\frac{\bar{d}}{S_{d}/\sqrt{n}}\ =\frac{5}{5/\sqrt{15}}\approx3.87 t =Sd/n dˉ =5/15 53.87
      • 自由度 d f = n − 1 = 15 − 1 = 14 df\ =n - 1\ =15 - 1\ =14 df =n1 =151 =14,根据 α = 0.05 \alpha \ = 0.05 α =0.05查t分布表得临界值,比较t值与临界值判断培训是否有效。

四、t检验的步骤总结

(一)提出原假设( H 0 H_{0} H0)和备择假设( H 1 H_{1} H1

  1. 单样本t检验: H 0 H_{0} H0 X ˉ = μ \bar{X}\ =\mu Xˉ =μ H 1 H_{1} H1 X ˉ ≠ μ \bar{X}\neq\mu Xˉ=μ
  2. 独立样本t检验: H 0 H_{0} H0 μ 1 = μ 2 \mu_{1}\ =\mu_{2} μ1 =μ2 H 1 H_{1} H1 μ 1 ≠ μ 2 \mu_{1}\neq\mu_{2} μ1=μ2
  3. 配对样本t检验: H 0 H_{0} H0 μ d = 0 \mu_{d}\ =0 μd =0 μ d \mu_{d} μd为配对差值的总体均值); H 1 H_{1} H1 μ d ≠ 0 \mu_{d}\neq0 μd=0

(二)计算t统计量

依据不同类型t检验的相应公式计算t值。

(三)确定自由度

按照不同类型t检验的自由度计算公式确定,如单样本和配对样本t检验自由度为 n − 1 n - 1 n1,独立样本t检验自由度为 n 1 + n 2 − 2 n_{1}+n_{2}-2 n1+n22

(四)查找临界值

根据选定的显著性水平和自由度,查阅t分布表找到临界值。

(五)做出决策

比较计算的t值与临界值,t值大于临界值,拒绝原假设;t值小于临界值,接受原假设。

五、注意事项

(一)数据正态性

t检验通常要求数据服从正态分布,小样本时尤其重要。若数据明显不服从正态分布,可能需进行数据转换或采用非参数检验方法。

(二)方差齐性

独立样本t检验中,一般要求两样本方差相等(方差齐性)。可通过方差齐性检验判断,不满足时可能需用校正的t检验方法。

(三)样本独立性

独立样本t检验中,样本应相互独立,无关联或依赖关系;配对样本t检验中,配对的合理性和准确性很关键,要确保配对依据合理有效。

六、原假设与备择假设的设定原则

(一)完备且对立原则

原假设和备择假设构成完备事件组且相互对立,在假设检验中必有且仅有一个成立。例如,判断硬币是否均匀, H 0 H_{0} H0:硬币均匀(正面朝上概率 p = 0.5 p \ = 0.5 p =0.5); H 1 H_{1} H1:硬币不均匀( p ≠ 0.5 p\neq0.5 p=0.5),涵盖所有情况且不能同时成立。

(二)先备择后原假设原则

通常先确定备择假设,因其往往是研究者关心、欲支持或证实的内容,相对更易明确。比如,研究者猜测新药物比传统药物疗效好, H 1 H_{1} H1:新药物疗效优于传统药物; H 0 H_{0} H0:新药物疗效不比传统药物好。

(三)等号原则

等号“ = \ =  =”总放在原假设上。原假设一般表示变量间无差异、无影响或参数等于特定值等情况。例如,比较两总体均值, H 0 H_{0} H0 μ 1 = μ 2 \mu_1 \ = \mu_2 μ1 =μ2 H 1 H_{1} H1 μ 1 ≠ μ 2 \mu_1\neq\mu_2 μ1=μ2

(四)主观性原则

假设确定具主观性,不同研究者因研究目的、背景知识和角度不同,对同一实际问题可能提出相反假设,但都应符合最终目的。比如,研究政策对经济增长影响,关注政策是否有效时, H 0 H_{0} H0:政策对经济增长无影响, H 1 H_{1} H1:政策对经济增长有影响;关注政策是否有负面效果时, H 0 H_{0} H0:政策对经济增长无负面影响, H 1 H_{1} H1:政策对经济增长有负面影响。

(五)目的导向原则

假设检验主要是收集证据拒绝原假设。原假设通常是被怀疑、需样本数据提供证据否定的假设。有足够证据时拒绝原假设,接受备择假设;无充分证据时,不意味着完全接受原假设,只是暂时无理由否定。

七、单尾概率和双尾概率在t检验中的应用

(一)单尾概率在t检验中的应用

案例背景:某公司研发了一种新型减肥药物,为了检验其效果,随机选取了50名肥胖患者作为样本进行临床试验。已知未使用该药物时,肥胖人群的平均体重下降量为0kg(可视为总体均值)。经过一段时间使用后,测得这50名患者的平均体重下降了3kg,标准差为1.5kg。公司想要了解这种新型减肥药物是否能显著降低体重,即只关心体重是否下降,不关心是否会使体重增加,此时采用单尾t检验。

假设设定

  • 原假设 H 0 H_0 H0 μ ≥ 0 \mu \geq 0 μ0(药物没有显著降低体重,即总体平均体重下降量大于等于0)
  • 备择假设 H 1 H_1 H1 μ < 0 \mu < 0 μ<0(药物显著降低体重,即总体平均体重下降量小于0)

检验过程

  • 计算t统计量:已知 X ˉ = 3 \bar{X} \ = 3 Xˉ =3(样本均值), μ = 0 \mu \ = 0 μ =0(总体均值), S = 1.5 S \ = 1.5 S =1.5(样本标准差), n = 50 n \ = 50 n =50(样本量),根据单样本t检验公式 t = X ˉ − μ S / n t\ =\frac{\bar{X}-\mu}{S/\sqrt{n}} t =S/n Xˉμ,可得 t = 3 − 0 1.5 / 50 ≈ 14.14 t\ =\frac{3 - 0}{1.5/\sqrt{50}}\approx14.14 t =1.5/50 3014.14
  • 确定自由度 d f = n − 1 = 50 − 1 = 49 df \ = n - 1 \ = 50 - 1 \ = 49 df =n1 =501 =49,假设选定显著性水平 α = 0.05 \alpha \ = 0.05 α =0.05,在t分布表中查找单尾概率 P ( 1 ) = 0.05 P(1)\ =0.05 P(1) =0.05对应的临界值(假设为 - 1.677,实际值需根据具体精确的t分布表确定)。
  • 由于计算得到的t值 14.14 > − 1.677 14.14> - 1.677 14.14>1.677,且在单尾检验中,这里是左侧单尾检验,当t值小于临界值时拒绝原假设,而此例中t值远大于临界值,说明样本数据不支持原假设,拒绝 H 0 H_0 H0,接受 H 1 H_1 H1,即认为这种新型减肥药物能显著降低体重。

(二)双尾概率在t检验中的应用

案例背景:研究人员想要比较两种不同品牌的灯泡使用寿命是否存在差异。分别从品牌A和品牌B的灯泡中随机抽取了30个和25个样本进行测试。品牌A灯泡样本的平均使用寿命为1000小时,标准差为50小时;品牌B灯泡样本的平均使用寿命为980小时,标准差为40小时。研究人员不确定哪个品牌的灯泡使用寿命更长或更短,只是关注它们之间是否有显著差异,所以采用双尾t检验。

假设设定

  • 原假设 H 0 H_0 H0 μ 1 = μ 2 \mu_1 \ = \mu_2 μ1 =μ2(两个品牌灯泡的总体平均使用寿命相等)
  • 备择假设 H 1 H_1 H1 μ 1 ≠ μ 2 \mu_1 \neq \mu_2 μ1=μ2(两个品牌灯泡的总体平均使用寿命不相等)

检验过程

  • 计算t统计量:先计算合并方差 S p 2 = ( n 1 − 1 ) S 1 2 + ( n 2 − 1 ) S 2 2 n 1 + n 2 − 2 = ( 30 − 1 ) × 5 0 2 + ( 25 − 1 ) × 4 0 2 30 + 25 − 2 ≈ 2052.38 S_{p}^{2}\ =\frac{(n_1 - 1)S_1^{2}+(n_2 - 1)S_2^{2}}{n_1 + n_2 - 2}\ =\frac{(30 - 1)\times50^{2}+(25 - 1)\times40^{2}}{30 + 25 - 2}\approx2052.38 Sp2 =n1+n22(n11)S12+(n21)S22 =30+252(301)×502+(251)×4022052.38,再根据独立样本t检验公式 t = X ˉ 1 − X ˉ 2 S p 2 ( 1 n 1 + 1 n 2 ) = 1000 − 980 2052.38 × ( 1 30 + 1 25 ) ≈ 1.64 t\ =\frac{\bar{X}_1 - \bar{X}_2}{\sqrt{S_{p}^{2}(\frac{1}{n_1}+\frac{1}{n_2})}}\ =\frac{1000 - 980}{\sqrt{2052.38\times(\frac{1}{30}+\frac{1}{25})}}\approx1.64 t =Sp2(n11+n21) Xˉ1Xˉ2 =2052.38×(301+251) 10009801.64
  • 确定自由度 d f = n 1 + n 2 − 2 = 30 + 25 − 2 = 53 df \ = n_1 + n_2 - 2 \ = 30 + 25 - 2 \ = 53 df =n1+n22 =30+252 =53,选定显著性水平 α = 0.05 \alpha \ = 0.05 α =0.05,在t分布表中查找双尾概率 P ( 2 ) = 0.05 P(2)\ =0.05 P(2) =0.05对应的临界值(假设为 ± 2.006 \pm 2.006 ±2.006,实际值需根据具体精确的t分布表确定)。
  • 由于计算得到的t值 1.64 1.64 1.64,其绝对值 ∣ 1.64 ∣ < 2.006 |1.64| < 2.006 ∣1.64∣<2.006,说明样本数据支持原假设,不拒绝 H 0 H_0 H0,即目前没有足够证据表明两个品牌灯泡的使用寿命存在显著差异。

综上,单尾概率适用于明确关注差异方向的研究,双尾概率适用于不确定差异方向,仅想知道是否存在差异的研究。

相关文章:

机器学习数学基础:29.t检验

t检验学习笔记 一、t检验的定义和用途 t检验是统计学中常用的假设检验方法&#xff0c;主要用于判断样本均值与总体均值间&#xff0c;或两个样本均值间是否存在显著差异。 在实际中应用广泛&#xff0c;例如在医学领域可用于比较两种药物的疗效&#xff1b;在教育领域&…...

HarmonyNext上传用户相册图片到服务器

图片选择就不用说了&#xff0c;直接用 无须申请权限 。 上传图片&#xff0c;步骤和android对比稍微有点复杂&#xff0c;可能是为了安全性考虑&#xff0c;需要将图片先拷贝到缓存目录下面&#xff0c;然后再上传&#xff0c;当然你也可以转成Base64&#xff0c;然后和服务…...

WebAssembly 3.0发布:浏览器端高性能计算迎来新突破!

“WebAssembly 3.0来了&#xff0c;浏览器端的高性能计算将彻底改变&#xff01;”2025年&#xff0c;WebAssembly&#xff08;Wasm&#xff09;迎来了重大更新——WebAssembly 3.0正式发布。这次更新不仅支持多线程和SIMD指令集&#xff0c;还优化了内存管理&#xff0c;让浏览…...

计算机组成原理—— 外围设备(十三)

记住&#xff0c;伟大的成就往往诞生于无数次尝试和失败之后。每一次跌倒&#xff0c;都是为了让你学会如何更加坚定地站立&#xff1b;每一次迷茫&#xff0c;都是为了让你找到内心真正的方向。即使前路漫漫&#xff0c;即使困难重重&#xff0c;心中的火焰也不应熄灭。它代表…...

面试题之Vuex,sessionStorage,localStorage的区别

Vuex、localStorage 和 sessionStorage 都是用于存储数据的技术&#xff0c;但它们在存储范围、存储方式、应用场景等方面存在显著区别。以下是它们的详细对比&#xff1a; 1. 存储范围 Vuex&#xff1a; 是 Vue.js 的状态管理库&#xff0c;用于存储全局状态。 数据存储在内…...

window中git bash使用conda命令

window系统的终端cmd和linux不一样&#xff0c;运行不了.sh文件&#xff0c;为了在window中模仿linux&#xff0c;可以使用gui bash模拟linux的终端。为了在gui bash中使用python环境&#xff0c;由于python环境是在anaconda中创建的&#xff0c;所以需要在gui bash使用conda命…...

象棋掉落动画(局部旋转动画技巧)

1.被撞击阶段&#xff1a;根据被撞击速度&#xff0c;合理设置被撞距离 2.倒地阶段&#xff1a;象棋倒地的同时稍微前移 3.滚地阶段&#xff1a;象棋滚地后停止&#xff0c;在最后5帧内稍微回转一下。这里启用“PRS参数”的旋转来制作局部旋转动画...

Pycharm 2024在解释器提供的python控制台中运行py文件

2024版的界面发生了变化, run with python console搬到了这里:...

课题推荐:高空长航无人机多源信息高精度融合导航技术研究

高空长航无人机多源信息高精度融合导航技术的研究&#xff0c;具有重要的理论意义与应用价值。通过深入研究多源信息融合技术&#xff0c;可以有效提升无人机在高空复杂环境下的导航能力&#xff0c;为无人机的广泛应用提供强有力的技术支持。希望该课题能够得到重视和支持&…...

《DeepSeek训练算法:开启高效学习的新大门》

在人工智能的浪潮中&#xff0c;大语言模型的发展日新月异。DeepSeek作为其中的佼佼者&#xff0c;凭借其独特的训练算法和高效的学习能力&#xff0c;吸引了众多目光。今天&#xff0c;就让我们深入探究DeepSeek训练算法的独特之处&#xff0c;以及它是如何保证模型实现高效学…...

promise用法总结以及手写promise

JavaScript中的 Promise 是用于处理异步操作的对象&#xff0c;它代表了一个异步操作的最终完成&#xff08;或失败&#xff09;及其结果值。Promise 是异步编程的一种更简洁和更可读的方式&#xff0c;避免了回调地狱的问题。 Promise 的基本概念 一个 Promise 是一个表示异步…...

春招项目=图床+ k8s 控制台(唬人专用)

1. 春招伊始 马上要春招了&#xff0c;一个大气的项目&#xff08;冲击波项目&#xff09;直观重要&#xff0c;虽然大家都说基础很重要&#xff0c;但是一个足够新颖的项目完全可以把你的简历添加一个足够闪亮的点。 这就不得不推荐下我的 k8s 图床了&#xff0c;去年折腾快…...

Android 11.0 系统settings添加ab分区ota升级功能实现二

1.概述 在11.0的系统rom定制化开发中,在进行系统ota升级的功能中,在10.0以前都是使用系统 RecoverySystem的接口实现升级的,现在可以实现AB分区模式来进行ota升级的,但是 必须需要系统支持ab分区升级的模式才可以的,接下来分析下看怎么样进行ota升级功能实现 2.系统sett…...

【Spring+MyBatis】_图书管理系统(上篇)

目录 1. MyBatis与MySQL配置 1.1 创建数据库及数据表 1.2 配置MyBatis与数据库 1.2.1 增加MyBatis与MySQL相关依赖 1.2.2 配置application.yml文件 1.3 增加数据表对应实体类 2. 功能1&#xff1a;用户登录 2.1 约定前后端交互接口 2.2 后端接口 2.3 前端页面 2.4 单…...

什么是3D视觉无序抓取?

3D视觉无序抓取是一种结合三维视觉技术、机器人控制与智能算法的工业自动化解决方案,旨在实现机器人对散乱、无序堆放的物体进行自主识别、定位和抓取的操作。其核心是通过3D视觉系统获取物体的三维空间信息,结合路径规划与避障算法,引导机械臂完成高精度抓取任务,无需依赖…...

【Java】理解字符串拼接与数值运算的优先级

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: Java 文章目录 &#x1f4af;前言&#x1f4af;代码分析1. 第一句输出2. 第二句输出3. 第三句输出 &#x1f4af;关键概念与深入分析1. 字符串拼接的优先级2. 运算符的优先级与结合性3. 字符串拼接与数值运算的结合 &…...

[250217] x-cmd 发布 v0.5.3:新增 DeepSeek AI 模型支持及飞书/钉钉群机器人 Webhook 管理

目录 X-CMD 发布 v0.5.3&#x1f4c3;Changelog&#x1f9e9; deepseek&#x1f9e9; feishu|dingtalk&#x1f4e6; x-cmd✅ 升级指南 X-CMD 发布 v0.5.3 &#x1f4c3;Changelog &#x1f9e9; deepseek 新增 deepseek 模块&#xff0c;用户可通过 deepseek 直接请求使用 …...

渗透利器:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.&#xff08;主动扫描被动扫描&#xff09; Burp Suite 和 Xray 联合使用&#xff0c;能够将 Burp 的强大流量拦截与修改功能&#xff0c;与 Xray 的高效漏洞检测能力相结合&#xff0c;实现更全面、高效的网络安全测试&#xff0c;同时提升漏…...

Linux、Docker与Redis核心知识点与常用命令速查手册

Linux、Docker与Redis核心知识点与常用命令速查手册 一、Linux基础核心 1. 核心概念 文件系统&#xff1a;采用树形结构&#xff0c;根目录为/权限机制&#xff1a;rwx&#xff08;读/写/执行&#xff09;权限&#xff0c;用户分为owner/group/others软件包管理&#xff1a; …...

DeepSeek HuggingFace 70B Llama 版本 (DeepSeek-R1-Distill-Llama-70B)

简简单单 Online zuozuo :本心、输入输出、结果 文章目录 DeepSeek HuggingFace 70B Llama 版本 (DeepSeek-R1-Distill-Llama-70B)前言vllm 方式在本地部署 DeepSeek-R1-Distill 模型SGLang 方式在本地部署 DeepSeek-R1-Distill 模型DeepSeek-R1 相关的 Models,以及 Huggin…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...

Java并发编程实战 Day 11:并发设计模式

【Java并发编程实战 Day 11】并发设计模式 开篇 这是"Java并发编程实战"系列的第11天&#xff0c;今天我们聚焦于并发设计模式。并发设计模式是解决多线程环境下常见问题的经典解决方案&#xff0c;它们不仅提供了优雅的设计思路&#xff0c;还能显著提升系统的性能…...

Django RBAC项目后端实战 - 03 DRF权限控制实现

项目背景 在上一篇文章中&#xff0c;我们完成了JWT认证系统的集成。本篇文章将实现基于Redis的RBAC权限控制系统&#xff0c;为系统提供细粒度的权限控制。 开发目标 实现基于Redis的权限缓存机制开发DRF权限控制类实现权限管理API配置权限白名单 前置配置 在开始开发权限…...

深入理解 C++ 左值右值、std::move 与函数重载中的参数传递

在 C 编程中&#xff0c;左值和右值的概念以及std::move的使用&#xff0c;常常让开发者感到困惑。特别是在函数重载场景下&#xff0c;如何合理利用这些特性来优化代码性能、确保语义正确&#xff0c;更是一个值得深入探讨的话题。 在开始之前&#xff0c;先提出几个问题&…...