DRW 的 Quant/QR 实习 OA 延续一贯的「硬核」风格:题量大、时间紧、容错低。除了常规编程题,数学推理、概率统计与经典 Brainteaser 仍是考察重点。很多同学第一次上手会因为时间分配不当、或卡在某道「脑筋急转弯」上而在细节失分。这篇按题型拆解,帮你在 45 分钟里精准踩点,而不是盲目答题。
DRW 主营三块业务:Liquidity Providing(提供流动性)、Risk Taking(风险承担)、Latency Sensitive Trading(延迟敏感交易),OA 的题感也偏向「快速量化判断」。整套 OA 是 45 分钟 6 道数学题,节奏极快,下面逐题拆解。
一、偏置硬币的期望收益
正面概率 0.8、反面 0.2。若你选「正面」,每次翻出正面概率 0.8。100 次翻转,正面期望次数 = 100 × 0.8 = 80,每次正面收益 $80。
核心是期望的线性性:总期望 = 单次期望 × 次数,不要被「连续/独立」的措辞绕进条件概率。期望收益 = 80 × $80 = $6400(按题面收益口径计)。
二、矩阵零空间上的投影 L2 范数
先求矩阵 A 的零空间(null space),再把向量 y 投影到该空间,最后求投影的 L2 范数。
思路:对 A 做 SVD 或解 Ax = 0 得到零空间的一组正交基 {u_i},投影 = Σ (yᵀuᵢ) uᵢ,范数即 sqrt(Σ (yᵀuᵢ)²)。代码上 scipy.linalg.null_space(A) 直接给正交基,省去手算。
import numpy as np
from scipy.linalg import null_space
def proj_norm(A, y):
N = null_space(A) # 列为零空间正交基
coeffs = N.T @ y # 各基方向上的投影系数
proj = N @ coeffs
return np.linalg.norm(proj)
三、量化误差最小化(数值求解)
求一个常数 c 使量化误差最小。误差定义:对 x ≥ 0 算 (x − c)²,对 x < 0 算 (x + c)²,x 服从均值 0、方差 3 的正态分布。直接写目标函数交给数值优化:
import numpy as np
from scipy.optimize import minimize
from scipy.stats import norm
def quantization_error(c):
mean, var = 0, 3
std = var ** 0.5
pos = lambda x: (x - c) ** 2 * norm.pdf(x, loc=mean, scale=std)
neg = lambda x: (x + c) ** 2 * norm.pdf(x, loc=mean, scale=std)
ip = norm.expect(pos, loc=mean, scale=std, lb=0, ub=np.inf)
ineg = norm.expect(neg, loc=mean, scale=std, lb=-np.inf, ub=0)
return ip + ineg
c_opt = round(minimize(quantization_error, x0=0.5).x[0], 3)
这类题不要硬推积分,会用 scipy.optimize + norm.expect 在限时里更稳。
四、收集 7 种面的期望次数
每次掷出一个「已见过的面」的概率随已收集种类增长而变化。设 E 为收集齐 7 种所需的总期望次数,这是经典的 Coupon Collector:
E = 7 × (1/7 + 1/6 + 1/5 + ... + 1/1) = 7 × H₇
其中 H₇ 是第 7 个调和数。题面里「看到 6 种不同面后再掷出新面的概率是 6/7」其实对应第 7 阶段的单步期望 = 7/(7−6) = 7。把每个阶段的几何分布期望相加即可。
五、抛硬币走台阶的到达概率 DP
每次抛硬币,按正反面前进 1 步或 2 步。求 Pₙ =「最终恰好到达第 n 阶」的概率,并求 P₄、P₁₀,再算 1000 × (P₄ + P₁₀)。
递推:P[n] = 0.5 * P[n-1] + 0.5 * P[n-2],边界 P[0] = 1、P[1] = 0.5(第一步只能由 0 走 1 步到达)。
def reach_prob(n, p=0.5):
P = [0.0] * (n + 1)
P[0] = 1.0
if n >= 1:
P[1] = p
for i in range(2, n + 1):
P[i] = p * P[i - 1] + (1 - p) * P[i - 2]
return P[n]
ans = round(1000 * (reach_prob(4) + reach_prob(10)), 3)
「恰好到达第 n 阶」意味着不能跨过它,所以每阶概率都由前两阶转移而来——别和「到达 ≥ n」混了。
六、时间分配心法
45 分钟 6 题 = 平均每题 7.5 分钟,但难度不均。建议:
| 阶段 | 动作 |
|---|---|
| 前 3 分钟 | 通读全部题,标记「能口算」「要写代码」「先跳过」 |
| 中段 | 先收割期望/概率口算题(硬币、Coupon Collector) |
| 后段 | 把矩阵投影、量化误差这类交给 scipy 数值解 |
| 最后 | DP 题留足时间验边界,别在一道 Brainteaser 上死磕 |
七、总结
DRW OA 的核心不是「会不会」,而是「限时下能不能精准踩点」。把概率期望(线性性、几何分布、Coupon Collector)、线性代数(零空间、投影、范数)和数值优化(scipy)三类工具备齐,再练好时间分配与跳题策略,硬核 OA 也能稳稳拿分。
FAQ
Q1:DRW 实习 OA 考什么?
45 分钟 6 道题,以数学推理、概率统计、Brainteaser 为主,外加少量编程。题量大、时间紧、容错低是它的标志。
Q2:需要硬推积分和矩阵分解吗?
不必。多数题用 scipy.optimize / scipy.stats / scipy.linalg 数值求解更快更稳,把时间留给思路而非手算。
Q3:怎么准备这种概率脑筋急转弯?
刷熟期望线性性、几何分布、Coupon Collector、马尔可夫到达概率等模型,做到 30 秒内识别题型套公式。
Q4:时间总是不够怎么办?
先通读全部题、给题目分类,优先收割口算题,难题给数值解,DP 留足验边界时间。如需 DRW Quant OA 的限时陪练与题型预测,可联系获取对应岗位的高频题与复盘资料。
正在准备 DRW Quant 面试?
oavoservice 提供 DRW Quant/QR 全流程陪练:概率期望脑筋急转弯限时模拟、线性代数与数值优化题型演练、45 分钟节奏与跳题策略训练。教练含前量化与大厂资深工程师,熟悉 DRW「快速量化判断 + 低容错」的考核风格。
立即添加微信 Coding0201,获取 DRW 真题与陪练。
联系方式
- 微信:Coding0201
- Email:[email protected]
- Telegram:@OAVOProxy