跳到主要内容

概率论练习题 (Probability Exercises)

本练习库包含随机变量分布、数字特征及极限定理的相关练习,均配套折叠答案。

1. 离散型随机变量

:::info 习题 1.1 设 XX 服从参数为 pp 的几何分布 P(X=k)=(1p)k1pP(X=k) = (1-p)^{k-1}p。证明其具有无记忆性:即 P(X>n+mX>n)=P(X>m)P(X > n+m | X > n) = P(X > m)。 :::

查看答案

首先计算 P(X>k)P(X > k)P(X>k)=i=k+1(1p)i1p=p(1p)kj=0(1p)j=p(1p)k11(1p)=(1p)kP(X > k) = \sum_{i=k+1}^\infty (1-p)^{i-1}p = p(1-p)^k \sum_{j=0}^\infty (1-p)^j = p(1-p)^k \frac{1}{1-(1-p)} = (1-p)^k 于是: P(X>n+mX>n)=P(X>n+m,X>n)P(X>n)=P(X>n+m)P(X>n)=(1p)n+m(1p)n=(1p)mP(X > n+m | X > n) = \frac{P(X > n+m, X > n)}{P(X > n)} = \frac{P(X > n+m)}{P(X > n)} = \frac{(1-p)^{n+m}}{(1-p)^n} = (1-p)^mP(X>m)=(1p)mP(X > m) = (1-p)^m。得证。

2. 连续型随机变量与数字特征

:::info 习题 2.1 设 XU(0,a)X \sim U(0, a),求 E(Xn)E(X^n)。 :::

查看答案

E(Xn)=0axn1adx=1a[1n+1xn+1]0a=ann+1E(X^n) = \int_0^a x^n \frac{1}{a} \, dx = \frac{1}{a} \left[ \frac{1}{n+1} x^{n+1} \right]_0^a = \frac{a^n}{n+1}

:::info 习题 2.2:联合分布与独立性 设二维随机变量 (X,Y)(X, Y) 的联合密度函数为: f(x,y)={c(x+y),0<x<1,0<y<10,其他f(x, y) = \begin{cases} c(x+y), & 0 < x < 1, 0 < y < 1 \\ 0, & \text{其他} \end{cases}

  1. 求常数 cc
  2. X,YX, Y 的边缘密度函数;
  3. 判断 X,YX, Y 是否独立。 :::
查看解答

1. 求常数 cc 利用归一化条件 f(x,y)dxdy=1\int_{-\infty}^\infty \int_{-\infty}^\infty f(x, y) \, dx dy = 10101c(x+y)dxdy=c01[12x2+xy]01dy=c01(12+y)dy\int_0^1 \int_0^1 c(x+y) \, dx dy = c \int_0^1 \left[ \frac{1}{2}x^2 + xy \right]_0^1 \, dy = c \int_0^1 (\frac{1}{2} + y) \, dy =c[12y+12y2]01=c(1)=1    c=1= c \left[ \frac{1}{2}y + \frac{1}{2}y^2 \right]_0^1 = c(1) = 1 \implies c = 1

2. 边缘密度函数: fX(x)=01(x+y)dy=[xy+12y2]01=x+12,0<x<1f_X(x) = \int_0^1 (x+y) \, dy = [xy + \frac{1}{2}y^2]_0^1 = x + \frac{1}{2}, \quad 0 < x < 1 同理,fY(y)=y+12,0<y<1f_Y(y) = y + \frac{1}{2}, \quad 0 < y < 1

3. 独立性判断: 由于 fX(x)fY(y)=(x+12)(y+12)=xy+12x+12y+14x+y=f(x,y)f_X(x) f_Y(y) = (x+\frac{1}{2})(y+\frac{1}{2}) = xy + \frac{1}{2}x + \frac{1}{2}y + \frac{1}{4} \neq x+y = f(x, y)。 因此 X,YX, Y 不独立

3. 极限定理与特征函数

:::info 习题 3.1:特征函数的计算 设 XX 服从参数为 λ\lambda 的泊松分布 P(X=k)=eλλkk!P(X=k) = e^{-\lambda} \frac{\lambda^k}{k!}。求 XX 的特征函数 ϕX(t)\phi_X(t)。 :::

查看解答

特征函数定义为 ϕX(t)=E(eitX)\phi_X(t) = E(e^{itX})ϕX(t)=k=0eitkeλλkk!=eλk=0(λeit)kk!\phi_X(t) = \sum_{k=0}^\infty e^{itk} e^{-\lambda} \frac{\lambda^k}{k!} = e^{-\lambda} \sum_{k=0}^\infty \frac{(\lambda e^{it})^k}{k!} 利用指数级数展开 ex=xnn!e^x = \sum \frac{x^n}{n!}ϕX(t)=eλeλeit=eλ(eit1)\phi_X(t) = e^{-\lambda} e^{\lambda e^{it}} = e^{\lambda(e^{it}-1)}

:::info 习题 3.2:中心极限定理 (CLT) 的应用 某工厂生产的零件合格率为 0.9。现有 100 个零件,求其中合格零件数在 85 到 95 之间的概率。 :::

查看答案

XX 为合格零件数,XB(100,0.9)X \sim B(100, 0.9)E(X)=100×0.9=90E(X) = 100 \times 0.9 = 90Var(X)=100×0.9×0.1=9Var(X) = 100 \times 0.9 \times 0.1 = 9。 利用 CLT,XN(90,9)X \approx N(90, 9)P(85X95)=P(85903X90395903)P(85 \le X \le 95) = P\left(\frac{85-90}{3} \le \frac{X-90}{3} \le \frac{95-90}{3}\right) =P(1.67Z1.67)=Φ(1.67)Φ(1.67)=2Φ(1.67)1= P(-1.67 \le Z \le 1.67) = \Phi(1.67) - \Phi(-1.67) = 2\Phi(1.67) - 1 查表可知 Φ(1.67)0.9525\Phi(1.67) \approx 0.9525P2×0.95251=0.905P \approx 2 \times 0.9525 - 1 = 0.905


4. 数值模拟与验证练习

:::info 习题 4.1:[数值] 伯恩斯坦多项式与一致收敛 利用大数定律,证明对于 [0,1][0,1] 上的连续函数 f(x)f(x),伯恩斯坦多项式 Bn(x)=k=0nf(k/n)(nk)xk(1x)nkB_n(x) = \sum_{k=0}^n f(k/n) \binom{n}{k} x^k (1-x)^{n-k}[0,1][0,1] 上一致收敛于 f(x)f(x)。并编写 C++ 程序模拟该收敛过程。 :::

点击查看 C++ 参考实现与解析

解析:伯恩斯坦多项式的构造本质上是基于二项分布 B(n,x)B(n, x) 的期望。Bn(x)=E[f(Xn/n)]B_n(x) = E[f(X_n/n)],其中 XnB(n,x)X_n \sim B(n, x)。根据大数定律,Xn/nPxX_n/n \xrightarrow{P} x,由 ff 的连续性(在闭区间上一致连续)可推导出一致收敛。

#include <iostream>
#include <vector>
#include <cmath>
#include <iomanip>

// 目标函数 f(x) = sin(PI * x)
double f(double x) {
return std::sin(M_PI * x);
}

// 计算组合数 C(n, k)
double combinations(int n, int k) {
if (k < 0 || k > n) return 0;
if (k == 0 || k == n) return 1;
if (k > n / 2) k = n - k;
double res = 1;
for (int i = 1; i <= k; ++i) {
res = res * (n - i + 1) / i;
}
return res;
}

// 计算第 n 阶伯恩斯坦多项式在 x 处的值
double bernstein(int n, double x) {
double res = 0;
for (int k = 0; k <= n; ++k) {
double term = f((double)k / n) * combinations(n, k) * std::pow(x, k) * std::pow(1 - x, n - k);
res += term;
}
return res;
}

int main() {
double x_test = 0.5;
std::cout << "Approximating sin(PI * 0.5) = 1.0" << std::endl;
std::cout << "n\tBernstein(n, 0.5)\tError" << std::endl;

int n_values[] = {5, 10, 20, 50, 100};
for (int n : n_values) {
double val = bernstein(n, x_test);
std::cout << n << "\t" << std::fixed << std::setprecision(6)
<< val << "\t\t" << std::abs(val - 1.0) << std::endl;
}
return 0;
}

本练习库由 SolKnow 系统自动生成。