前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全是原题?东吴金科2024量化研究员笔试0402

全是原题?东吴金科2024量化研究员笔试0402

原创
作者头像
量化投资和人工智能公众号
发布2024-06-26 18:07:53
1030
发布2024-06-26 18:07:53
举报

关注我们,每周发布最新的笔面试题目和解析

记得设为星标哦

前言

限时60min,4个概率和数理统计题、一个编程题,实则可以看为两个编程题。如果这些题是第一次做的话,还是比较难或者难以下手的,尤其是编程题考了动态规划,难度为力扣hard级别,对标互联网大厂笔试。但是做多了,就会发现基本都是经典题型,所以笔试前要好好准备,多刷绿宝书、红宝书,多刷LeeCode!

春招和暑期实习和笔试也陆陆续续开始了,欢迎同学们在公众号后台投稿,你们的每条留言小编都会仔细查看。累计投稿4场将获得知识星球100元优惠券。更全的笔面试资料及学习路线在知识星球中,会随着资源的积累不断涨价,早加入早学习早拿offer早赚米!

题目1

现在有 100 个人,他们分别拿到了从 1 号到 100 号的座位,这些乘客会按号码顺序登机并应当对号入座,如果他们发现对应号座位被别人坐了,就会在剩下空的座位随便挑一个坐。现在假设 1 号乘客疯了(其他人没疯),他会在 100 个座位中随便选一个座位坐下,问:第100 人正确坐到自己坐位的概率是多少?

【参考答案】1/2

经典概率题。寻找递推关系:

A.若乘客数量是2,则答案是1/2;

B.若乘客数量是3,则答案是1/2;

C.若乘客数量是n,求a(n),那么,

1)疯子坐的是自己的位置,1/n

2)疯子坐的是第2个位置,则去掉疯子和第2个位置,此时变成了求a(n-1);

3) 疯子坐的是第3个人的位置,去掉疯子和第2个位置,还有第2个人和第2个位置,此时变成了求a(n-2);

4)以此类推;

则:a(n)=(1+a(n-1)+a(n-2)+~+a(2))/n

同理,a(n-1)=(1+a(n-2)+a(n-3)+~+a(2))/n-1;

等式变形有:na(n)-a(n-1)=(n-1)a(n-1);即a(n)=a(n-1)

所以,结果是1/2;

题目2

有 n 个口袋,每个口袋均有 a 个白球,b 个黑球,现在做如下操作:从第一个口袋中任取一球放入第二个口袋,从第二个口袋中任取一球放入第三个口袋,

以此类推,直至从第 n-1 个口袋任取一球放入第 n 个口袋。问:最后从第 n 个口袋任取一球,取到白色的概率为多少。(请写出思路和计算过程)

【参考答案】P=a/(a+b)

数学归纳法或寻找递推关系。下面给出一个新思路:

n个口袋里的球的总数是n(a+b) 其中白球na个 黑球nb个

此题相当于求在n(a+b)个球中,取一个白球的概率

P=na/n(a+b)=a/(a+b)

题目3

x1,x2,x3,x4,x5 为0,1区间均匀分布的随机变量,求 min(x1,x2,x3,x4,x5)和max(x1,x2,x3,x4,x5)的相关系数

【参考解析】公式较多,不方便打,给出思路分析:

首先计算这些变量的期望值和方差,然后利用它们的定义或通过积分计算协方差,最后应用相关系数的公式。

题目4

长度为 10 米的钢筋,连续砍两刀(即先砍下一段,然后再砍剩下的一段),3 段都大于 1米的概率是多少?

【参考解析】

设第一刀离左端的距离为 x,第二刀离左端的距离为 y,那么第三段的长度为 10−x−y。

需要满足以下条件:

(1)x>0,即第一刀离左端距离大于 0。

(2)y>0,即第二刀离左端距离大于 0。

(3)10−x−y>1,即第三段长度大于 1。

将这些条件绘制在二维坐标系中,阴影部分表示满足要求的区域。我们需要计算这个阴影部分的面积。计算矩形的二重积分

题目5

编程题:(1)给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个最优算法,在只允许交易一次的前提下,来计算你所能获取的最大利润,且不能开空仓。

(2)若最多可以完成两笔交易呢?(必须在再次购买前出售掉之前的股票,亦不能开空

仓)

【参考答案】均为leetcode原题、股票买卖系列

(1)LeetCode num121买卖股票的最佳时机。枚举卖出价格,维护买入的最小值

代码语言:python
代码运行次数:0
复制
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        ans = 0
        min_pirce = prices[0]
        for p in prices:
            ans = max(ans, p - min_pirce)
            min_pirce = min(min_pirce, p)
        return ans

(2) LeetCode num123 买卖股票的最佳时机Ⅲ。动态规划,思路看注释吧。比较难,不会的就学学吧!

代码语言:python
代码运行次数:0
复制
class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        # 甲:这n天怎样买股票赚的多-------------------------------------
        n = len(prices)

        # 乙:dp[i]代表第i天-------------------------------------------
        # 乙:dp[i][0]代表第i天过后第一次买股票时的最大收益
        # 乙:总之,今天过后我必有股票在手上,要么之前买的,要么今天买的
        # 乙:dp[i][1]代表第i天过后第一次卖股票时的最大收益
        # 乙:总之,今天过后我手上空空如也,要么本来就没有,有我也给卖了
        # 乙:dp[i][2]代表第i天过后第二次买股票时的最大收益
        # 乙:dp[i][3]代表第i天过后第二次卖股票时的最大收益
        dp = [[0,0,0,0] for _ in range(n)]

        # 乙:今天是第一天---------------------------------------------
        # 乙:第一次买股票是吧,prices[0]块钱拿去,今天股票我买了
        # 乙:第一次卖股票是吧,prices[0]块钱买来又卖掉,血赚0元
        # 乙:第二次买,我买了又卖掉又买回来,花费prices[0]块钱
        # 乙:第二次买,我买了又卖掉又买回来又卖掉,哎,就是玩
        # 注:在同一天内反复买卖是不影响最终结果的,因为反正都是0
        dp[0]=[-prices[0],0,-prices[0],0]

        # 旁白:时间一天天过去
        for i in range(1, n):
            # 甲:今天是第i天,如果我第一次买股票,该怎么操作------
            # 乙:dp[i-1][0] 今天的股票太贵了,买之前的股票更划算
            # 乙:- prices[i] 今天的股票更便宜,我买了,prices[i]块钱拿去
            dp[i][0] = max(dp[i-1][0], -prices[i])

            # 甲:今天是第i天,如果我第一次卖股票,该怎么操作------
            # 乙:dp[i-1][1] 今天股市不行,还是之前卖更划算
            # 乙:+ prices[i] + dp[i-1][0] 今天的行情不错,股票卖掉,血赚prices[i]块钱,
            # dp[i-1][0]是我用低价买入花的钱
            dp[i][1] = max(dp[i-1][1], + prices[i] + dp[i-1][0])

            # 甲:今天是第i天,如果我第二次买股票,该怎么操作------
            # 乙:dp[i-1][0] 今天的股票太贵了,买之前的股票更划算
            # 乙:- prices[i] 今天的股票更便宜,我买了,prices[i]块钱拿去
            # dp[i-1][1]是我第一次卖股票赚的钱
            dp[i][2] = max(dp[i-1][2], - prices[i] + dp[i-1][1])

            # 甲:今天是第i天,如果我第一次卖股票,该怎么操作------
            # 乙:dp[i-1][1] 今天股市不行,还是之前卖更划算
            # 乙:+ prices[i] + dp[i-1][0] 今天的行情不错,股票卖掉,血赚prices[i]块钱,
            # dp[i-1][2]是我第二次买完股票后的最大收益
            dp[i][3] = max(dp[i-1][3], + prices[i] + dp[i-1][2])

        return dp[-1][-1]

思路或想法欢迎在留言区交流

最后介绍一下我们的知识星球

每周发布私募、公募、资管、券商、期货、银行、保险等最新的笔面试题目和解析,发布行业前沿研究成果和最新量化资讯。创建这个星球,目的是为了沉淀有价值的内容,构建一个质量更高、更专注的学习和交流环境,从而帮助每一位成员提升自己。

在这个知识星球里,你将获得:

1.实习/校招/社招笔面试真题和经验分享:包含学习路线、准备笔面试的规划、方法、技巧等,同时提供全市面最全的真题资料,持续更新当前最新的笔面试题目和解析,帮助你充分准备,助力你成为offer收割机。

2.专业知识与技能提升:

数据处理与分析:分享如何处理和分析数据,包括使用最新的工具和技术,以及数据清洗和预处理的最佳实践。

量化策略:深入量化交易的世界,学习如何从零开始设计、测试和优化你的量化策略。提供丰富的案例和实践指导,帮助你打造出稳健的交易模型

因子挖掘:分享如何在庞大的数据海洋中发现影响市场的隐藏因素。将因子分析融入量化策略,增强模型的预测能力。

组合优化:介绍如何通过组合优化提高投资组合的性能,包括风险管理和资产配置的策略。

交易系统开发:分享交易系统的开发过程,从系统架构设计到实现,包括API接口的使用、自动化交易的实现等。

高性能计算:分享如何应用高性能计算技术处理大规模数据集,提高计算效率

3.不定期行业大咖分享:邀请量化投资与机器学习领域的行业专家,分享他们的知识、见解和经验。

4.编程技巧与算法知识:不定期分享编程技巧、算法知识、学习方法和个人心得,帮助成员更有效地规划时间和学习路径。

5.大厂面试内推渠道:实时发布大厂面试内推信息,为你的职业发展提供支持。

我们致力于打造一个全面、高效且互帮互助的社群。无论你是量化投资和机器学习领域的初学者,还是已有深厚背景的专业人士,这里都将是你学习新知识、分享经验、扩展人脉的理想之地。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 题目1
  • 题目2
  • 题目3
  • 题目4
  • 题目5
  • 最后介绍一下我们的知识星球
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档