腾讯2025年校招笔试真题手撕(二)

news2025/5/23 11:23:00

一、题目

最近以比特币为代表的数字货币市场非常动荡,聪明的小明打算用马尔科夫链来建模股市。如图所示,该模型有三种状态:“行情稳定”,“行情大跌”以及“行情大涨”。每一个状态都以一定的概率转化到下一个状态。比如,“行情稳定”以0.4的概率转化到“行情大跌”的状态。

有了概率转移矩阵P,我们只要知道一个初始状态 ,我们就容易可以知道第 t 步三种状态的概率了。由此可以知道行情什么时候大涨大跌,从而发家致富,赢取白富美,走向人生巅峰。比如我们想知道第1步之后“行情大跌”的概率,那么由全概率公式和马尔科夫链的性质(第t步的概率只和第t-1步有关):

可以通过该模型,计算出第t步的“行情大涨”的概率吗?如果这个概率大于0.5那么输出1,否则输出0。

输入描述 第1行输入为测试数据组数T(1<=T<1000),接下来T组每5行的数据格式为 T组第1行是步长1<=t<=10。 T组第2行是一个3维的初始状态 T组第3行到第5行是3*3的概率转移矩阵P,每行有三个浮点数

输出描述 如果第t步的“行情大涨”概率大于0.5那么输出1,否则输出0

二、分析

该问题着重于预测数字货币市场行情在未来特定时间步处于“行情大涨”状态的可能性,以此辅助决策。题目要求利用马尔科夫链这一数学工具,基于给定的初始状态和转移概率矩阵,计算第 t 步时“行情大涨”状态发生的概率是否超过 0.5。马尔科夫链的核心特性在于无记忆性,即第 t 步的状态仅依赖于第 t-1 步的状态,这使得我们能够通过逐步迭代的方式,依据转移概率矩阵预测未来的状态分布。

具体到本题,每组测试数据包括初始状态向量和转移概率矩阵。初始状态向量的三个分量分别代表“行情稳定”“行情大跌”和“行情大涨”三种状态的初始概率。转移概率矩阵是一个 3×3 的矩阵,其中每个元素 P[i][j] 表示从状态 i 转移到状态 j 的概率。为了计算第 t 步的状态概率分布,我们需要从初始状态出发,连续应用 t-1 次转移概率矩阵。这可以通过矩阵乘法的方式实现:每一步,我们都用当前状态概率分布与转移概率矩阵相乘,得到下一步的状态概率分布。

在算法实现上,针对每组测试数据,首先读取步长 t、初始状态向量以及转移概率矩阵。然后,从初始状态开始,进行 t-1 次状态转移计算。在每一次转移中,我们都根据转移概率矩阵更新各状态的概率。具体来说,对于每个可能的起始状态,我们将该状态的概率分配到下一个状态,分配的比例由转移概率决定。经过 t-1 次这样的转移后,我们得到第 t 步的状态概率分布。此时,只需检查“行情大涨”状态的概率是否超过 0.5,即可决定输出 1 或 0。

三、代码

def main():
    import sys
    input = sys.stdin.read().split()
    ptr = 0
    T = int(input[ptr])
    ptr += 1
    for _ in range(T):
        t = int(input[ptr])
        ptr += 1
        state = list(map(float, input[ptr:ptr+3]))
        ptr += 3
        P = []
        for i in range(3):
            row = list(map(float, input[ptr:ptr+3]))
            P.append(row)
            ptr += 3
        current_state = state.copy()
        for _ in range(t-1):
            new_state = [0.0]*3
            for j in range(3):
                for k in range(3):
                    new_state[j] += current_state[k] * P[k][j]
            current_state = new_state
        if current_state[2] > 0.5:
            print(1)
        else:
            print(0)

if __name__ == "__main__":
    main()
  1. 输入读取与解析

    • 读取输入的所有数据,并将其存储在一个列表中。

    • 使用指针 ptr 来逐个访问输入数据。

    • 第一个输入是测试数据组数 T

  2. 每组数据处理

    • 对于每组数据,首先读取步长 t

    • 接着读取初始状态向量 state,该向量包含三个元素,分别表示初始时刻处于“行情稳定”、“行情大跌”和“行情大涨”三种状态的概率。

    • 然后读取 3×3 的转移概率矩阵 P,其中每个元素 P[i][j] 表示从状态 i 转移到状态 j 的概率。

  3. 状态转移计算

    • 初始化当前状态为初始状态向量 current_state

    • 对于从第 1 步到第 t-1 步的每一步,计算下一步的状态概率分布:

      • 创建一个新的状态向量 new_state,初始化为全 0。

      • 对于每个状态 j,计算当前状态转移到状态 j 的总概率,并累加到 new_state[j] 中。

    • 将当前状态更新为新计算的状态 new_state

  4. 输出结果

    • 在完成 t-1 次转移后,检查当前状态中“行情大涨”(对应索引 2)的概率是否大于 0.5。

    • 如果大于 0.5,则输出 1;否则输出 0。

这个代码实现了对每组测试数据的输入解析、状态转移的迭代计算以及最终结果的判断和输出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2383846.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

安装完dockers后就无法联网了,执行sudo nmcli con up Company-WiFi,一直在加载中

Docker服务状态检查 执行 systemctl status docker 确认服务是否正常 若未运行&#xff0c;使用 sudo systemctl start docker && sudo systemctl enable docker 网络配置冲突 Docker会创建docker0虚拟网桥&#xff0c;可能与宿主机网络冲突 检查路由表 ip route sho…

【深度学习新浪潮】2025年谷歌I/O开发者大会keynote观察

1. 2025年谷歌I/O开发者大会keynote重点信息 本次Google I/O大会的核心策略是降低AI使用门槛与加速开发者创新,通过端侧模型(Gemini Nano)、云端工具(Vertex AI)和基础设施(TPU)的全链路优化,进一步巩固其在生成式AI领域的领先地位。同时,高价订阅服务和企业级安全功…

案例分享——福建洋柄水库大桥智慧桥梁安全监测

项目背景 洋柄水库桥位于社马路(社店至马坪段)上&#xff0c;桥梁全长285m&#xff0c;桥梁中心桩号K15082跨径组合为 14x20m&#xff0c;全桥宽:33.8m&#xff0c;分左右双幅:上部结构采用空心板梁:桥采用柱式墩。 通过对桥梁结构长时间的定期观测&#xff0c;掌握桥梁在混凝…

鸿蒙操作系统架构:构建全场景智慧生态的分布式操作系统

鸿蒙操作系统(HarmonyOS)是华为推出的面向全场景的分布式操作系统,旨在为智能手机、智能家居、智能穿戴、车机等多种设备提供统一的操作系统平台。鸿蒙架构的核心设计理念是“一次开发,多端部署”,通过分布式技术实现设备间的无缝协同。本文将深入探讨鸿蒙的分层架构、分布…

NBA足球赛事直播源码体育直播M35模板赛事源码

源码名称&#xff1a;NBA足球赛事直播源码体育直播M35模板赛事源码 开发环境&#xff1a;帝国cms7.5 空间支持&#xff1a;phpmysql 带软件采集&#xff0c;可以挂着自动采集发布&#xff0c;无需人工操作&#xff01; 演示地址&#xff1a;https://www.52muban.com/shop/184…

自动化测试报告工具

自动化测试报告工具大全与实战指南 &#x1f4ca;&#x1f525; 在自动化测试流程中&#xff0c;测试用例的执行只是第一步&#xff0c;而测试报告的生成与可视化则是闭环的重要一环。无论是个人项目还是团队协作&#xff0c;高质量的测试报告都能帮助我们快速定位问题、衡量测…

python 中 SchedulerManager 使用踩坑

问题&#xff1a; 服务中我写了多个定时任务&#xff0c;如下&#xff1a; 发现到了定时时间&#xff0c;下面的任务就是不执行&#xff0c;&#xff0c;最后一个任务一个任务注释掉来测&#xff0c;发现了问题&#xff0c; self.scheduler_manager.add_cron_job(SearchQualit…

人工智能解析:技术革命下的认知重构

当生成式AI能够自主创作内容、设计方案甚至编写代码时&#xff0c;我们面对的不仅是工具革新&#xff0c;更是一场关于智能本质的认知革命。人工智能解析的核心&#xff0c;在于理解技术如何重塑人类解决问题和创造价值的底层逻辑——这种思维方式的转变&#xff0c;正成为数字…

【Linux】基础开发工具

文章目录 一、软件包管理器1. Linux下安装软件补充知识1&#xff1a;操作系统的生态补充知识2&#xff1a;我的云服务器是怎么知道去哪找软件包的呢&#xff1f; 2. 查看软件包3. 安装软件4. 卸载软件5. 安装源 二、编辑器Vim1. 命令模式 三、编译器gcc / g1. 程序编译流程补充…

OpenCV计算机视觉实战(7)——色彩空间详解

OpenCV计算机视觉实战&#xff08;7&#xff09;——色彩空间详解 0. 前言1. RGB/BGR 色彩空间2. HSV / Lab 色彩空间3. 颜色直方图分析与可视化小结系列链接 0. 前言 本文深入探讨了三种常见色彩空间&#xff1a;RGB/BGR、HSV 与 CIELAB&#xff0c;并介绍了 OpenCV 中色彩空…

【AI模型学习】上/下采样

文章目录 分割中的上/下采样下采样SegFormer和PVT&#xff08;使用卷积&#xff09;Swin-Unet&#xff08;使用 Patch Merging&#xff09; 上采样SegFormer&#xff08;interpolate&#xff09;Swin-Unet&#xff08;Patch Expanding&#xff09;逐级interpolate的方式反卷的方…

Unity Shader入门(更新中)

参考书籍&#xff1a;UnityShader入门精要&#xff08;冯乐乐著&#xff09; 参考视频&#xff1a;Bilibili《Unity Shader 入门精要》 写在前面&#xff1a;前置知识需要一些计算机组成原理、线性代数、Unity的基础 这篇记录一些学历过程中的理解和笔记&#xff08;更新中&…

嵌入式学习的第二十六天-系统编程-文件IO+目录

一、文件IO相关函数 1.read/write cp #include <fcntl.h> #include <sys/stat.h> #include <sys/types.h> #include <stdio.h> #include<unistd.h> #include<string.h>int main(int argc, char **argv) {if(argc<3){fprintf(stderr, …

珠宝课程小程序源码介绍

这款珠宝课程小程序源码&#xff0c;基于ThinkPHPFastAdminUniApp开发&#xff0c;功能丰富且实用。ThinkPHP提供稳定高效的后台服务&#xff0c;保障数据安全与处理速度&#xff1b;FastAdmin助力快速搭建管理后台&#xff0c;提升开发效率&#xff1b;UniApp则让小程序能多端…

KNN模型思想与实现

KNN算法简介 核心思想&#xff1a;通过样本在特征空间中k个最相似样本的多数类别来决定其类别归属。"附近的邻居确定你的属性"是核心逻辑 决策依据&#xff1a;采用"多数表决"原则&#xff0c;即统计k个最近邻样本中出现次数最多的类别 样本相似性度量 …

fscan教程1-存活主机探测与端口扫描

实验目的 本实验主要介绍fscan工具信息收集功能&#xff0c;对同一网段的主机进行存活探测以及常见服务扫描。 技能增长 通过本次实验的学习&#xff0c;了解信息收集的过程&#xff0c;掌握fscan工具主机探测和端口扫描功能。 预备知识 fscan工具有哪些作用&#xff1f; …

腾讯2025年校招笔试真题手撕(三)

一、题目 今天正在进行赛车车队选拔&#xff0c;每一辆赛车都有一个不可以改变的速度。现在需要选取速度差距在10以内的车队&#xff08;车队中速度的最大值减去最小值不大于10&#xff09;&#xff0c;用于迎宾。车队的选拔按照的是人越多越好的原则&#xff0c;给出n辆车的速…

怎样通过神经网络估计股票走向

本博文将教会你如何通过神经网络建立股票模型并对其进行未来趋势估计&#xff0c;尽管博主已通过此方法取得一定利润&#xff0c;但是建议大家不要过分相信AI。本博文仅用于代码学习&#xff0c;请大家谨慎投资。 一、通过爬虫爬取股票往年数据 在信息爆炸的当今时代&#xf…

【RocketMQ 生产者和消费者】- 生产者启动源码-上报生产者和消费者心跳信息到 broker(3)

文章目录 1. 前言2. sendHeartbeatToAllBrokerWithLock 上报心跳信息3. prepareHeartbeatData 准备心跳数据4. sendHearbeat 发送心跳上报请求5. broker 处理心跳请求5.1 heartBeat 处理心跳包5.2 createTopicInSendMessageBackMethod 创建重传 topic5.3 registerConsumer 注册…

Python----循环神经网络(Word2Vec的优化)

一、负采样 基本思想&#xff1a; 在训练过程中&#xff0c;对于每个正样本&#xff08;中心词和真实上下文词组成的词对&#xff09;&#xff0c;随机采样少量&#xff08;如5-20个&#xff09;负样本&#xff08;中心词与非上下文词组成的词对&#xff09;。 模型通过区分正…