学习记录之数学表达式(4)

文章目录

  • 八、min 与 argmin
    • 8.1 min
    • 8.2 argmin
    • 8.3 作业
  • 九、累加、累乘与积分
    • 9.1 累加
    • 9.2 累乘
    • 9.3 定积分
    • 9.4 作业

八、min 与 argmin

  • min 和 argmin 在机器学习中常用;
  • max 和argmax 同理;

8.1 min

  • min 是 minimal 的缩写,用于获得集合中的最小值,如: min ⁡ { 3 , 1 , 9 , 8 } = 1 \min \{3,1,9,8\}=1 min{3,1,9,8}=1,源码为:\min {3,1,9,8}=1,即 \min 是定义好的一种符号;
  • min 可以与向量/矩阵配合使用,如:给定向量 x = [ 3 , 1 , 9 , 8 ] \mathbf{x}=[3,1,9,8] x=[3,1,9,8] ,则: min ⁡ 1 ≤ i ≤ 4 x i = 1 \min_{1 \le i \le 4} \mathbf{x}_i = 1 min1i4xi=1,源码为:\min_{1 \le i \le 4} \mathbf{x}_i = 1,本质与前面的集合方式相同;
  • min 可以和函数配合使用,如:令 f ( x ) = x 2 + x + 1 f(x)=x^2+x+1 f(x)=x2+x+1 min ⁡ − 1 ≤ x ≤ 1 f ( x ) \min_{-1 \le x \le 1} f(x) min1x1f(x) 表示 x x x [ − 1 , 1 ] [-1,1] [1,1] 区间的任意数,这些函数值构成了一个集合(重复元素只算一次),最终取最小的元素,源码为:\min_{-1 \le x \le 1} f(x),其中 \le 表示 less than or equal,也可以写作 \leq;

8.2 argmin

  • argmin 是 argument minimal 的缩写,用于获得使函数取得最小值的参数;
  • \arg\min 总是可用的,若 Latex 模板不支持 \argmin,可以在 tex 文件头部加上:\DeclareMathOperator*{\argmin}{argmin};
  • argmin 可以与向量/矩阵配合使用,这时参数可以是向量下标,如:给定向量 x = [ 3 , 1 , 9 , 8 ] \mathbf{x} = [3,1,9,8] x=[3,1,9,8],则 arg min ⁡ x i = 2 \argmin \mathbf{x}_i = 2 argminxi=2 的值是使得 x i \mathbf{x}_i xi 最小的参数值,即下标 i i i 的值,给定矩阵:
    x = [ 3 2 9 8 7 6 1 4 ] \mathbf{x} = \left[ \begin{matrix} 3&2&9&8 \\ 7&6&1&4 \end{matrix} \right] x=[37269184]
    源码为:\mathbf{x} = \left[ \begin{matrix} 3&2&9&8 \ 7&6&1&4 \end{matrix} \right],则 arg ⁡ i , j min ⁡ x i j = ( 2 , 3 ) \arg_{i,j}\min \mathbf{x}_{ij} = (2,3) argi,jminxij=(2,3) 的值是使得 x i j \mathbf{x}_{ij} xij 最小的参数值,即 i = 2 , j = 3 i=2,j=3 i=2,j=3。注意:这是返回了两个数据,在Java里面要专门处理,但Python可以直接支持。
  • argmin 与函数配合最常见,如:令 f ( x ) = x 2 + x + 1 f(x)=x^2+x+1 f(x)=x2+x+1,则 arg ⁡ − 1 ≤ x ≤ 1 min ⁡ f ( x ) = − 1 2 \arg_{-1 \le x \le 1} \min f(x) = -\frac{1}{2} arg1x1minf(x)=21 表示 x x x − 1 2 -\frac{1}{2} 21 时函数取最小值 3 4 \frac{3}{4} 43,只是这个最小值没有人关心。

8.3 作业

  • 解释推荐系统: 问题、算法与研究思路 2.1 中的优化目标: min ⁡ ∑ ( i , j ) ∈ Ω ( f ( x i , t j ) − r i j ) 2 \min \sum_{(i,j) \in \Omega}(f(\mathbf{x}_i,\mathbf{t}_j)-r_{ij})^2 min(i,j)Ω(f(xi,tj)rij)2
    • i , j i,j i,j:遍历数据集中的元素;
    • Ω \Omega Ω:表示所有 ( i , j ) (i,j) (i,j)对的集合;
    • x i \mathbf{x}_i xi:第 i i i个数据的输入;
    • t j \mathbf{t}_j tj:与 x i \mathbf{x}_i xi相关的第 j j j个数据的标签;
    • r i j r_{ij} rij:表示于 ( i , j ) (i,j) (i,j)对应的真实值;
    • f ( x i , t j ) f(\mathbf{x}_i,\mathbf{t}_j) f(xi,tj):输出一个预测值;
    • f ( x i , t j ) − r i j ) 2 f(\mathbf{x}_i,\mathbf{t}_j)-r_{ij})^2 f(xi,tj)rij)2表示一个误差项;
    • 对集合 Ω \Omega Ω中的所有 ( i , j ) (i,j) (i,j)对进行遍历,并计算每一对的预测值与真实值之间的平方差,然后求和;
    • min ⁡ \min min表示要对上述求和表达式求和并使之最小化;

九、累加、累乘与积分

  该章节展示了数学语言和计算机语言的高度统一;

9.1 累加

  • 单重整数累加:
    ∑ i = 1 10 i (1) \sum_{i=1}^{10} i \tag{1} i=110i(1)
    表示 1 + 2 + ⋯ + 10 1+2+\dots+10 1+2++10,源码为:\sum_{i=1}^{10} i \tag{1};
    用 Java 代码表示如下:
int sum = 0;
for (int i = 1; i <= 10; i++)
    sum += i;

  数学表达式的下标习惯是从1开始,程序的下标相关从0开始,写程序是应该注意这个问题;

  • 向量分量累加:
    ∑ i = 1 n x i (2) \sum_{i=1}^{n} x_{i} \tag{2} i=1nxi(2)
    表示 x 1 + x 2 + ⋯ + x n x_1+x_2+\dots+x_n x1+x2++xn,如果 x \mathbf{x} x 的维度就是 n n n 也可以简写为: ∑ i x i \sum_{i} x_{i} ixi
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)
    sum += x[i];
  • 带条件的向量分量累加:
    ∑ x i > 0 x i (3) \sum_{x_{i} \gt 0} x_{i} \tag{3} xi>0xi(3)
    表示仅将向量 x \mathbf{x} x 取值为正的分量相加;
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)
    if (x[i} > 0)
        sum += x[i];
  • 练习: ∑ x i > 0 x i 2 \sum_{x_{i} \gt 0} x_{i}^2 xi>0xi2
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)
    if (x[i} > 0)
        sum += x[i]*x[i};
  • 存在歧义的累加:
    ∑ x i > 0 ( x i 2 + x i + 1 ) (4) \sum_{x_{i} \gt 0} \left(x_{i}^2+x_{i}+1 \right) \tag{4} xi>0(xi2+xi+1)(4)
    源码为:\sum_{x_{i} \gt 0} \left(x_{i}^2+x_{i}+1 \right) \tag{4};
  • 矩阵分量的二重累加:
    ∑ i = 1 n ∑ j = 1 i x i j (5) \sum_{i=1}^{n} \sum_{j=1}^{i} x_{ij} \tag{5} i=1nj=1ixij(5)
    表示下三角矩阵分量(左下部分)相加,源码为:\sum_{i=1}^{n} \sum_{j=1}^{i} x_{ij} \tag{5};
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)
    for (int j = 1; j <= i; j++)
        sum += x[i][j];
  • 具有欺骗性的表示法:上式可以简写为 ∑ i ≥ j x i j \sum_{i \ge j} x_{ij} ijxij,要明白这是二重累加;
  • 练习:将矩阵中小于1的分量平方并累加,数学表达式和 Java 代码分别怎么写?
    数学表达式为: ∑ x i j < 1 x i j 2 \sum_{x_{ij} \lt 1} x_{ij}^2 xij<1xij2
    用 Java 代码表示如下:
double sum = 0;
for (int i = 1; i <= n; i++)
    for (int j = 1; j<=n; j++)
        if (x[ij} < 1)
            sum += x[i][j] * x[i][j];

9.2 累乘

  • 整数累乘:
    ∏ i = 1 10 i (6) \prod_{i=1}^{10} i \tag{6} i=110i(6)
    表示 1 × 2 × ⋯ × 10 1 \times 2 \times \dots \times 10 1×2××10,源码为:\prod_{i=1}^{10} i \tag{6},其中 prod 是 product 的简写;
    用 Java 代码表示如下:
int product = 1;
for (int i = 1; i <= 10; i++)
    product *= i;

程序要注意溢出,但是数学表达式不存在这种担忧,同时注意 product 初始化为1;

  • 向量分量累乘:
    ∏ i = 1 n x i (7) \prod_{i=1}^{n} x_{i} \tag{7} i=1nxi(7)
    表示 x 1 ∗ x 2 ∗ ⋯ ∗ x n x_1 * x_2 * \dots * x_n x1x2xn,如果 x \mathbf{x} x 的维度就是n,也可以简写为 ∏ i = 1 x i \prod_{i=1} x_i i=1xi
    用 Java 代码表示如下:
double product = 1;
for (int i = 1; i <= n; i++)
    product *= x[i];

9.3 定积分

  • 单变量函数的定积分,本质就是求曲线与 x x x 轴之间的面积;
  • 该面积带符号,所以正负面积可能会抵消一些;
    ∫ 0 10 x 2 + x + 1 ( d ) x (8) \int_{0}^{10} x^{2} + x +1 \mathrm(d)x \tag{8} 010x2+x+1(d)x(8)
    源码为:\int_{0}^{10} x^{2} + x +1 \mathrm(d)x \tag{8};
    注意 d 的写法,这里也可以换成 {\rm d};
    用 Java 代码表示如下:
double integration = 0;
double delta = 0.01;
for (double x = 0; x <= 10; x += delta)
    integration += x * x * delta;
  • 二重积分可以看作是求体积;
    ∫ 0 10 ∫ y 2 y 2 x 2 y + y 2 d x d y (9) \int_{0}^{10} \int_{\frac{y}{2}}^{y} 2 x^{2} y + y^{2} \mathrm{d}x \mathrm{d}y \tag{9} 0102yy2x2y+y2dxdy(9)
    源码为:\int_{0}^{10} \int_{\frac{y}{2}}^{y} 2 x^{2} y + y^{2} \mathrm{d}x \mathrm{d}y \tag{9};
double integration = 0;
double deltax = 0.01;
double deltay = 0.01; 
for (double y = 0; y <= 10; y += deltay)
    for (double x = y/2; x <= y; x += deltay)
        integration += (2 * x * x * y + y * y) * deltax * deltay;

写代码不用考虑积分的简洁形式;

9.4 作业

1、将向量下标为偶数的分量 ( x 2 , x 4 , …   ) \left( x_2,x_4,\dots \right) (x2,x4,) 累加,写出相应的表达式;

  • 向量下标为偶数,那么累加条件应该为余数为0,即 i m o d    2 = 0 i \mod 2 = 0 imod2=0,则表达式为:
    ∑ i m o d    2 = 0 x i \sum_{i \mod 2 = 0} \mathbf{x}_{i} imod2=0xi
  • 或者也可以对下标乘以2,这样可以保证下标是偶数。
  • 代码表示如下:
double sum = 0;
for (int i = 0; i <= n; i++)
   if (i % 2 ==0)
       sum += x[i];

2、各写出一道累加、累乘、积分表达式的习题,并给出标准答案;

(1) 累加表达式习题:求数列 { a n } \{a_{n}\} {an}的前 n n n项和,其中 a n = 2 n − 1 a_{n}=2n-1 an=2n1

  • 标准答案:累加表达式为: S n = ∑ k = 1 n ( 2 k − 1 ) S_{n}=\sum_{k=1}^{n}(2k-1) Sn=k=1n(2k1)
  • 使用等差数列求和公式,得到: S n = n ( a 1 + a n ) 2 = n ( 1 + ( 2 n − 1 ) ) 2 = n 2 S_{n}=\frac{n(a_1+a_n)}{2}=\frac{n(1+(2n-1))}{2}=n^2 Sn=2n(a1+an)=2n(1+(2n1))=n2

(2) 累乘表达式习题:求数列 { b n } \{b_{n}\} {bn}的前 n n n项积,其中 b n = 3 n b_{n}=3^n bn=3n

  • 标准答案: P n = ∏ k = 1 n 3 k P_n=\prod_{k=1}^{n}3^{k} Pn=k=1n3k
  • 使用指数运算法则,得到: P n = 3 1 × 3 2 × ⋯ × 3 n = 3 1 + 2 + ⋯ + n = 3 n ( n + 1 ) 2 P_n=3^1 \times 3^2 \times \dots \times 3^n = 3^{1+2+ \dots +n}=3^{\frac{n(n+1)}{2}} Pn=31×32××3n=31+2++n=32n(n+1)
    (3) 积分表达式:求函数 f ( x ) = x 2 f(x)=x^2 f(x)=x2在区间 [ 0 , 1 ] [0,1] [0,1]上的定积分
  • 标准答案:积分表达式为 ∫ 0 1 x 2 d x \int_{0}^{1}x^2dx 01x2dx
  • 使用微积分基本定理,得到: ∫ 0 1 x 2 d x = [ 1 3 x 3 ] 0 1 = 1 3 × 1 3 − 1 3 × 0 3 = 1 3 \int_{0}^{1}x^2dx=[\frac{1}{3}x^3]^{1}_{0}=\frac{1}{3} \times 1^3 - \frac{1}{3} \times 0^3=\frac{1}{3} 01x2dx=[31x3]01=31×1331×03=31

3、是否使用过三重累加?描述一下其应用;

  • 三重累加(三重求和)是数学中用于计算三维空间或集合中元素的总和的一种运算。在编程和数学分析中,三重累加经常用于处理三维数组、网格或空间中的点集。

  • 应用描述:

    • 三维数据处理:当处理三维数组或矩阵时,三重累加可用于计算数组中所有元素的总和。

    • 统计和数据分析:在统计学和数据分析中,当数据集具有三维结构(如时间序列、地理空间数据和多个特征的组合)时,三重累加可以用于计算总和、平均值或其他统计量。

    • 优化和机器学习:在优化问题和机器学习算法中,三重累加可能用于计算损失函数、正则化项或其他需要考虑三维数据结构的量。

4、给出一个常用的定积分,将手算结果与程序结果对比;

  • 计算函数 f ( x ) = sin ⁡ ( x ) cos ⁡ ( x ) f(x)=\sin(x)\cos(x) f(x)=sin(x)cos(x)在区间 [ 0 , π 2 ] [0,\frac{\pi}{2}] [0,2π]上的定积分
  • 原函数: F ( x ) = ∫ sin ⁡ ( x ) cos ⁡ ( x ) d x = ∫ 1 2 sin ⁡ ( 2 x ) d x = − 1 4 cos ⁡ ( 2 x ) F(x)=\int \sin(x)\cos(x)dx = \int \frac{1}{2}\sin(2x)dx = -\frac{1}{4} \cos(2x) F(x)=sin(x)cos(x)dx=21sin(2x)dx=41cos(2x)
  • ∫ 0 π 2 sin ⁡ ( x ) cos ⁡ ( x ) d x = F ( π 2 ) − F ( 0 ) = − 1 4 c o s ( π ) − ( − 1 4 c o s ( 0 ) ) = 1 4 \int_{0}^{\frac{\pi}{2}} \sin(x)\cos(x)dx = F(\frac{\pi}{2})-F(0)=-\frac{1}{4}cos(\pi)-(-\frac{1}{4}cos(0))=\frac{1}{4} 02πsin(x)cos(x)dx=F(2π)F(0)=41cos(π)(41cos(0))=41
  • 程序计算:使用Python计算
# 导入需要的库  
from scipy.integrate import quad
import numpy as np


def f(x):
    return np.sin(x) * np.cos(x)


# 计算定积分
result, error = quad(f, 0, np.pi / 2)


print(f"程序计算结果为:{result}")
print(f"估计误差为:{error}")

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

STM32F407VET6 学习笔记1:GPIO引脚认识分类与开发板原理图

今日学习STM32F407VET6 &#xff0c;首先从基本原理图、引脚方面开始做个初步理解并整理&#xff1a; 这里使用的学习开发板是在嘉立创购买的 立创梁山派天空星&#xff0c;芯片是 STM32F407VET6 主要对这个芯片的引脚做一些归纳认识、对开发学习板原理图设计进行认识理解:最…

上传文件至linux服务器失败

目录 前言异常排查使用df -h命令查看磁盘使用情况使用du -h --max-depth1命令查找占用空间最大的文件夹 原因解决补充&#xff1a;删除文件后&#xff0c;磁盘空间无法得到释放 前言 使用XFTP工具上传文件至CentOS服务器失败 异常 排查 使用df -h命令查看磁盘使用情况 发现磁盘…

IDEA中git的常用操作(保姆级教学)

IDEA中git的常用操作&#xff08;保姆级教学&#xff09; 以下是git的工作原理&#xff0c;觉得繁琐的可以跳过不看 Workspace&#xff1a;工作区 (平时存放代码的地方) Index / Stage&#xff1a;暂存区&#xff08;用于临时存放存放你的改动&#xff0c;事实上就是一个文件&…

电脑实时监控软件分享|好用实时屏幕监控软件有哪些?

在当今数字化工作环境和远程办公日益普及的背景下&#xff0c;电脑实时监控软件成为了企业管理、教育监控、家庭监护等多个领域的必备工具。这些软件不仅能够帮助管理者实时了解员工的工作状态&#xff0c;确保工作效率&#xff0c;还能有效防止数据泄露&#xff0c;保护企业或…

现场面试题

这里写目录标题 1.sql1.1 只保留学生的最新成绩1.2 统计通话号码数1.3 更新地址 2.基础题2.1 请求序列第N位的值: 0, 1, 1, 2, ,3, 5, 8, 13, 21, 34.....第N位的值2.2 请写一段java代码&#xff0c;输出存在重复字母的单词 1.sql 1.1 只保留学生的最新成绩 表student中记录学…

Vue-组件中的data

一个组件的data选项必须是一个函数。保证每个组件实例&#xff0c;维护独立的一份数据对象。如下图&#xff1a; 组件一旦封装好了&#xff0c;可以使用多次&#xff0c;比如数字框组件使用了三次&#xff1a; 每次创建新的组件实例&#xff0c;都会重新执行一次data函数&#…

leetcode-字符串的排列-100

题目要求 思路 1.因为只涉及到字符&#xff0c;因此可以进行排序 2.创建临时字符串&#xff0c;当临时字符串temp的长度等于str的长度&#xff0c;作为判出条件。 3.创建一个标记的数组&#xff0c;每次在temp中插入一个字符&#xff0c;便在对应的数组下标设置为1&#xff0c…

【PDF技巧】PDF限制编辑密码忘记了,如何编辑文件?

PDF文件打开之后&#xff0c;发现编辑功能都是灰色的&#xff0c;无法使用&#xff0c;无法编辑PDF文件&#xff0c;遇到这种情况&#xff0c;是因为PDF文件设置了限制编辑导致的。一般情况下&#xff0c;我们只需要输入PDF密码&#xff0c;将限制编辑取消就可以正常编辑文件了…

【ARM Cortex-M3指南】8:中断行为

文章目录 八、中断行为8.1 中断/异常流程8.1.1 压栈8.1.2 取向量8.1.3 寄存器更新 8.2 异常退出8.3 嵌套中断8.4 末尾连锁中断8.5 延迟到达8.6 进一步了解异常返回值8.7 中断等待8.8 中断相关的错误8.8.1 压栈8.8.2 出栈8.8.3 取向量8.8.4 非法返回 八、中断行为 8.1 中断/异常…

GPU术语

可向量化循环 可向量化循环通常是指在编程中&#xff0c;能够被转换为向量操作或矩阵运算的循环结构。 在传统编程中&#xff0c;对于数组或向量中的每个元素执行相同的操作时&#xff0c;开发者可能会使用for循环逐一进行处理。然而&#xff0c;许多现代编程语言和库提供了向…

从哪些方面可以看出现货黄金价格走势?

现货黄金价格的走势受到多种因素的影响&#xff0c;我们可以从宏观经济环境、货币政策、供需关系、市场情绪和技术分析几个主要方面来观察和分析这一贵金属的价格动态。现货黄金作为全球投资市场中的避险资产&#xff0c;其价格波动往往能体现出复杂的经济和政治变化。 宏观经济…

(论文阅读-优化器)Orca: A Modular Query Optimizer Architecture for Big Data

目录 摘要 一、简介 二、背景知识 2.1 大规模并行处理 2.2 SQL on Hadoop 三、Orca架构 四、查询优化 4.1 优化工作流 4.2 并行查询优化 五、Metadata Exchange 六、可行性 6.1 Minimal Repros 6.2 优化器准确性测试 七、实验 八、相关工作 8.1 查询优化基础 8…

Python专题:二、Python小游戏,体验Python的魅力

希望先通过一个小的游戏让大家先对Python感兴趣&#xff0c;兴趣是最好的老师。 小游戏的运行结果&#xff1a; 1、在sublime编辑器里面写如下代码&#xff1a; import randomnum random.randint(1, 100) # 获得一个随机数 is_done False # 是否猜中的标记 count 0 # 玩…

视频号小店怎么做?品从哪里来?如何推广售卖?一文详解

大家好&#xff0c;我是电商笨笨熊 视频号小店作为一个刚推出不久的项目&#xff0c;可谓是站在风口&#xff0c;遍地红利&#xff0c;也正是我们进入的最佳时机。 但是面对一个新的项目&#xff0c;自是存在着多种疑问&#xff0c;尤其是对于一些从未踏足电商市场的新手玩家…

SpringBoot+Vue+Element-UI实现医患档案管理系统

目录 前言介绍 系统展示 管理员页面 患者管理 诊疗信息管理 病历信息管理 处方信息管理 患者页面 医生页面 部分核心代码 病历信息 上传文件 数据库配置 前言介绍 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技…

美易官方:英伟达业绩将难以撑起股价?

美股市场似乎总是对各大公司的业绩表现抱有极大的期待&#xff0c;就像一个永远填不饱的“巨胃”。在这样的市场环境下&#xff0c;即使是业绩骄人的公司也可能难以支撑其股价。英伟达&#xff0c;这家在图形处理单元&#xff08;GPU&#xff09;领域享有盛誉的公司&#xff0c…

翻译《The Old New Thing》 - Double-clicking radio buttons

Double-clicking radio buttons - The Old New Thing (microsoft.com)https://devblogs.microsoft.com/oldnewthing/20050804-10/?p34713 Raymond Chen 在 2005年08月04日 让对话框单选按钮支持双击确定 提示 本文提供了一种让对话框窗口上的控件支持双击确定窗口返回的方法 …

HG-KN73J-S100 三菱伺服电机(750W型)

HG-KN73J-S100属于三菱MR-JE系列伺服系统&#xff0c;可以与伺服驱动器MR-JE-70A、MR-JE-70B、MR-JE-70C配套使用。HG-KN73J-S100完全替换HF-KN73J-S100。HG-KN73J-S100规格、HG-KN73J-S100参数。 HG-KN73J-S100参数说明&#xff1a;MR-JE低惯性/小容量、0.75Kw三菱伺服电机HG-…

【问题解决】关于linux环境下在使用onvif进行网络摄像头扫描发现时soap_send___wsdd__Probe返回-1

【问题背景】 在使用MTK+OPENWRT的方案进行开发时,有一个新需求是需要将检测网络摄像头信息,在使用onvif进行摄像头检测时,发现函数soap_send___wsdd__Probe总是返回-1,导致失败。 但是在编译服务器上使用gcc编译链而不使用交叉编译链时,运行正常,并且可以检测到网络摄像…

Leetcode—933. 最近的请求次数【简单】

2024每日刷题&#xff08;128&#xff09; Leetcode—933. 最近的请求次数 实现代码 class RecentCounter { public:RecentCounter() {}int ping(int t) {q.push(t);while(t - 3000 > q.front()) {q.pop();}return q.size();} private:queue<int> q; };/*** Your Re…