和纯算法公司不同,Hudson River Trading(HRT)这类量化公司在 OA 里会编程 + 数学双线考察:既要写代码,也要快速做概率、期望、心算推理。这篇按 oavoservice 学员的 HRT OA 复盘,把数学题和编程题分开讲清楚,附推导和 Python 解法,给量化求职、刷题备考的同学一份系统参考。
一、HRT OA 双线结构
| 模块 | 形式 | 重点 |
|---|---|---|
| 数学题 | 选择 / 填空 | 概率、期望、组合、心算 |
| 编程题 | CodeSignal 编码 | 数组、模拟、贪心 |
量化岗看的是数理直觉 + 工程实现两手都要硬。数学题往往限时很紧,靠的是熟练而不是临场推半天。
二、数学题一:抛硬币期望
题目
一枚公平硬币,连续抛直到第一次出现正面,求期望抛掷次数。
推导
设期望为 E。第一次抛:1/2 概率正面(1 次结束),1/2 概率反面(已用 1 次,回到初始状态):
E = 1/2 · 1 + 1/2 · (1 + E)
E = 1 + 1/2 · E → E = 2
答案:期望 2 次。 这是几何分布 E = 1/p 的直接应用(p = 1/2)。
三、数学题二:扑克概率
题目
一副 52 张标准牌,随机抽 5 张,求恰好两张 A 的概率。
推导
从 4 张 A 选 2 张,从其余 48 张选 3 张,除以总组合:
from math import comb
def prob_two_aces():
favorable = comb(4, 2) * comb(48, 3)
total = comb(52, 5)
return favorable / total # ≈ 0.0399
print(round(prob_two_aces(), 4)) # 0.0399
约 3.99%。组合题要熟 C(n,k) 的「选取 + 互补」套路。
四、编程题:做市盈亏模拟
题目
给一串买卖指令 (side, price, qty),模拟做市账户最终现金与持仓盈亏。买入花现金加持仓,卖出收现金减持仓。
思路
线性扫描,维护现金与持仓;最后用收盘价对持仓估值,得到总盈亏。
def simulate_pnl(orders, close_price):
cash = 0
position = 0
for side, price, qty in orders:
if side == "BUY":
cash -= price * qty
position += qty
else: # SELL
cash += price * qty
position -= qty
# 用收盘价对剩余持仓估值
return cash + position * close_price
时间复杂度:O(n)。空间复杂度:O(1)。这类题考的是把业务规则准确翻译成代码,别漏掉持仓估值这一步。
五、备考策略
- 数学:刷透期望(几何/线性期望)、条件概率、组合、贝叶斯,练到心算秒出。
- 编程:数组、前缀和、模拟、贪心为主,限时写干净代码。
- 推荐 LeetCode:53(最大子数组)、238(除自身乘积)、56(合并区间)打底。
FAQ
Q1:HRT OA 数学题有多难?
多为本科概率统计水平,但限时紧、强调熟练度。重点是期望、条件概率、组合,靠平时积累而非临场硬推。
Q2:编程和数学哪个更重要?
两手都要硬。数学筛掉数理直觉弱的,编程筛掉工程能力弱的。量化岗尤其看重数学,但编程过不了同样出局。
Q3:心算来不及怎么办?
把高频公式(几何分布 E=1/p、线性期望、组合互补)背熟成肌肉记忆,平时用计时器练,把推导步数压到最少。
Q4:没有量化背景能准备吗?
可以。系统过一遍概率期望 + 组合,再配合数组/模拟编程题专项,按周计划推进,多数 CS 背景都能补齐数理短板。
正在准备 HRT OA?
HRT OA 是数学 + 编程双线,节奏快。oavoservice 提供 HRT 全流程陪练:概率期望 / 组合心算题库限时训练,做市模拟 / 数组编程题专项,按量化岗做题型预测与时间管理打磨。教练含量化研究与大厂工程背景,帮你把数理直觉和代码稳定度同时拉满。
立即添加微信 Coding0201,获取 HRT 真题与陪练。
联系方式
- 微信:Coding0201
- Email:[email protected]
- Telegram:@OAVOProxy