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