【华为OD机考】华为OD笔试真题解析(1)--AI处理器组合
一、题目描述
某公司研发了一款高性能AI处理器,每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7。
编号0~3的处理器处于同一链路中,编号4~7的处理器处于另外一个链路中,不同链路中的处理器不能通信,如下图所示。
现给定服务器可用的处理器编号数组array,以及任务申请的处理器数量num,找出符合下列亲和性调度原则的芯片组合,如果不存在符合要求的组合,则返回空列表。
亲和性调度原则:
- 如果申请处理器个数为1,则选择同一链路,剩余可用的处理器数量为1个的最佳,其次是剩余3个的为次佳,然后是剩余2个,最后是剩余4个。
- 如果申请处理器个数为2,则选择同一链路剩余可用的处理器2个的为最佳,其余是剩余4个,最后是剩余3个。
- 如果申请处理器个数为4,则必须选择同一链路剩余可用的处理器数量为4个。
- 如果申请处理器个数为8,则申请节点所有8个处理器。
提示:
- 任务申请的处理器数量只能是1、2、4、8。
- 编号0~3的处理器处于一个链路,编号4~7的处理器处于另外一个链路。
- 处理器编号唯一,且不存在相同编号处理器。
二、输入描述
输入包含可用的处理器编号数组array,以及任务申请的处理器数量num两个部分。
第一行为array,第二行为num。例如:
[0, 1, 4, 5, 6, 7]
1
表示当前编号为0、1、4、5、6、7的处理器可用。任务申请1个处理器
数据范围:
0 <= array.length <= 8
0 <= array[i] <= 7
num in [1, 2, 4, 8]
三、输出描述
输出为组合列表,当array=[0,1,4,5,6,7]、num=1时,输出为[[0], [1]]
四、示例描述
1.示例一
输入:
[0, 1, 4, 5, 6, 7]
1
输出:
[[0], [1]]
说明:
根据第一条亲和性调度原则,在剩余两个处理器的链路(0,1,2,3)中选择处理器。由于只有0和1可用,则返回任意一颗处理器即可。
2.示例二
输入:
[0, 1, 4, 5, 6, 7]
4
输出:
[[4, 5, 6, 7]]
说明:
根据第三条亲和性调度原则,必须选择同一链路剩余可用的处理器数量为4个的环。
五、解题思路
- 将输入的数组分成两组,第一组数字小于4,第二组数字大于4
- 列出相关逻辑
- 当
num为1时,根据题意传入优先级[1,3,2,4],遍历优先级,返回子序列列表 - 当
num为2时,根据题意传入优先级[2, 4, 3],考虑到排列组合,使用python内置的itertools包中的combinations函数,获取子序列之后,整理成list格式返回结果列表 - 当
num为4时,根据题意如果有一组数字满足条件,返回该组的所有处理器编号 - 当
num为8时,根据题意如果两组数字都满足条件,返回所有处理器编号
- 当
六、解题代码
from itertools import combinationsdef solve_method(arr, num):# 根据条件将数组分为 first 和 second 两部分first = [n for n in arr if n < 4]second = [n for n in arr if n >= 4]first_nums = len(first)second_nums = len(second)result = []# 根据 `num` 值来选择调用不同的函数if num == 1:result.extend(cpu1(first, first_nums, second, second_nums))elif num == 2:result.extend(cpu2(first, first_nums, second, second_nums))elif num == 4:if first_nums == 4:result.append([n for n in range(4)])if second_nums == 4:result.append([n for n in range(4, 8)])elif num == 8:if first_nums == 4 and second_nums == 4:result.append([n for n in range(8)])return resultdef cpuN(first, first_nums, second, second_nums, priority, k) -> list:# 生成组合,优先级由 priority 控制cpus = []is_fit = Falsefor p in priority:if p == first_nums:cpus.extend([list(n) for n in combinations(first, k)])is_fit = Trueif p == second_nums:cpus.extend([list(n) for n in combinations(second, k)])is_fit = Trueif is_fit:breakreturn cpusdef cpu1(first, first_nums, second, second_nums) -> list:# cpu1 调用 cpuN 进行组合计算return cpuN(first, first_nums, second, second_nums, [1, 3, 2, 4], 1)def cpu2(first, first_nums, second, second_nums) -> list:# cpu2 调用 cpuN 进行组合计算return cpuN(first, first_nums, second, second_nums, [2, 4, 3], 2)if __name__ == '__main__':# 测试用例验证assert solve_method([0, 1, 4, 5, 6, 7], 4) == [[4, 5, 6, 7]]assert solve_method([0, 1, 4, 5, 6, 7], 1) == [[0], [1]]assert solve_method([0, 1, 2, 4, 5], 2) == [[0, 1], [0, 2], [1, 2], [4, 5], [4, 6], [5, 6]]相关文章:
【华为OD机考】华为OD笔试真题解析(1)--AI处理器组合
一、题目描述 某公司研发了一款高性能AI处理器,每台物理设备具备8颗AI处理器,编号分别为0、1、2、3、4、5、6、7。 编号0~3的处理器处于同一链路中,编号4~7的处理器处于另外一个链路中,不同链路中的处理器不能通信,如…...
程序员也可以这样赚钱
最近有朋友和我交流了关于程序员副业的想法,我想借这个机会对目前软件开发常用的兼职平台做一个梳理。 以下是程序员接副业的靠谱平台推荐,结合政策合规性、平台口碑及实际操作性整理,覆盖国内外主流选择: 一、国内综合型平台 程序…...
VMware虚拟机安装、创建Ubuntu虚拟机及汉化设置全流程详细教程
一、安装VMware Workstation 下载VMware 访问官网:https://www.vmware.com 选择适合的版本(如 Workstation Pro 或 VMware Player,后者免费)。完成下载后运行安装程序。 网盘下载: 链接: https://pan.baidu.com/s/1MQ…...
HTTP协议学习大纲
第一阶段:HTTP基础概念 互联网与Web基础 理解Web工作原理:客户端-服务器模型URL与URI的结构及区别端口、协议、域名概念 HTTP协议概览 HTTP的作用与特点(无状态、无连接、可扩展)HTTP协议版本演进(0.9 → 1.0 → 1.1 …...
系统URL整合系列视频四(需求介绍补充)
视频 系统URL整合系列视频四(需求补充说明) 视频介绍 (全国)大型分布式系统Web资源URL整合需求(补充)讲解。当今社会各行各业对软件系统的web资源访问权限控制越来越严格,控制粒度也越来越细。…...
21.2.7 综合示例
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 【例 21.7】【项目:code21-007】填充职员表并打印。 本例使用到的Excel文件为:职员信息登记表.xlsx&#x…...
【大模型】DeepSeek与chatGPT的区别以及自身的优势
目录 一、前言二、核心技术对比2.1 模型架构设计2.1.1 ChatGPT的Transformer架构2.1.2 DeepSeek的混合架构 2.2 训练数据体系2.2.1 ChatGPT的数据特征2.2.2 DeepSeek的数据策略 三、应用场景对比3.1 通用场景表现3.1.1 ChatGPT的强项领域3.2.2 DeepSeek的专项突破 3.3 响应效率…...
burpsuite抓取html登陆和上传数据包
一、burpsuite抓取html登陆数据包 1、先写一个html格式的登陆页面 <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><title>这是标签</title></head> <body> <hr><!-- 登陆表单 …...
python 使用OpenAI Whisper进行显卡推理语音翻译
目录 一、Whisper简介 二、模型资料 三、实操案例 3.1 默认使用CPU进行推理 3.2 使用GPU进行推理 四、性能分析 一、Whisper简介 Whisper由 OpenAI 开发的这款强大模型,能轻松将语音转化为文字,并且支持多种语言(如英语、中文、西班牙语等),让全球沟通无障碍。 不仅…...
余数相同问题(信息学奥赛一本通-1080)
【题目描述】 已知三个正整数a,b,c。现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。请问满足上述条件的x的最小值是多少?数据保证x有解。 【输入】 一行,三个不大于…...
用 Python 给 Excel 表格截图(20250207)
我搜索了网络上的方案,感觉把 Excel 表格转换为 HTML 再用 platwright 截图是比较顺畅的路径,因为有顺畅的工具链。如果使用的是 Windows 系统则不需要阅读此文,因为 win32com 库更方便。这篇文章中 Excel 转 HTML 的方案,主要弥补…...
Linux 安装 Ollama
1、下载地址 Download Ollama on Linux 2、有网络直接执行 curl -fsSL https://ollama.com/install.sh | sh 命令 3、下载慢的解决方法 1、curl -fsSL https://ollama.com/install.sh -o ollama_install.sh 2、sed -i s|https://ollama.com/download/ollama-linux|https://…...
使用Ollama本地部署deepseek
1、下载安装Ollama 前往下载页面 https://ollama.com/download下载好安装包,如同安装软件一样,直接安装即可 win中默认为C盘,如果需要修改到其他盘,查找具体教程 运行list命令,检查是否安装成功 2、修改模型下载的…...
如何在RTACAR中配置IP多播(IP Multicast)
一、什么是IP多播 IP多播(IP Multicast)是一种允许数据包从单一源地址发送到多个目标地址的技术,是一种高效的数据传输方式。 多播地址是专门用于多播通信的IP地址,范围从 224.0.0.0到239.255.255.255 与单播IP地址不同&#x…...
2025年最新版武书连SCD期刊(中国科学引文数据库)来源期刊已更新,可下载PDF版!需要的作者进来了解~
2025年最新版武书连SCD期刊(中国科学引文数据库)来源期刊已更新! 官网是不提供免费查询的。小编给大家两个路径,无需下载PDF,随时随地都能查25版SCD目录。 路径一:中州期刊联盟官网,25版SCD目…...
已验证正常,Java输入字符串生成PDF文件
Java输入字符串生成PDF文件过程: 在Java开发中,如何将字符串转换为 PDF 是一个常见的需求。网上找了很多例子都无法生成,经过多次尝试,终于实现了,特此记录一下。 1、引入pom.xml 添加所需的依赖 <dependency>&…...
存储异常导致的Oracle重大生产故障
📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…...
基于Java的远程视频会议系统(源码+系统+论文)
第一章 概述 1.1 本课题的研究背景 随着人们对视频和音频信息的需求愈来愈强烈,追求远距离的视音频的同步交互成为新的时尚。近些年来,依托计算机技术、通信技术和网络条件的发展,集音频、视频、图像、文字、数据为一体的多媒体信息ÿ…...
C++ Primer 成员访问运算符
欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…...
使用云效解决docker官方镜像拉取不到的问题
目录 前言原文地址测试jenkins构建结果:后续使用说明 前言 最近经常出现docker镜像进行拉取不了,流水线挂掉的问题,看到一个解决方案: 《借助阿里个人版镜像仓库云效实现全免费同步docker官方镜像到国内》 原文地址 https://developer.aliyun.com/artic…...
Oracle中与 NLS(National Language Support,国家语言支持) 相关的参数
在Oracle中,NLS_DATABASE_PARAMETERS 和 NLS_INSTANCE_PARAMETERS 是两个重要的视图,用于存储与 NLS(National Language Support,国家语言支持) 相关的参数。它们的作用和区别如下: 1. NLS_DATABASE_PARAME…...
【Pytorch实战教程】Python探索利器:dir与help深度解析(PyTorch实战演示)
文章目录 Python探索利器:dir与help深度解析(PyTorch实战演示)一、前言:代码世界的探险装备二、dir():对象结构探测器1. 基础用法揭秘2. PyTorch实战应用三、help():内置文档浏览器1. 基础使用姿势2. 深度学习场景实战四、组合技:探索神经网络模块1. 模块结构探测2. 类方…...
【DeepSeek】DeepSeek小模型蒸馏与本地部署深度解析DeepSeek小模型蒸馏与本地部署深度解析
一、引言与背景 在人工智能领域,大型语言模型(LLM)如DeepSeek以其卓越的自然语言理解和生成能力,推动了众多应用场景的发展。然而,大型模型的高昂计算和存储成本,以及潜在的数据隐私风险,限制了…...
【共享文件夹】使用Samba服务可在Ubuntu和Windows系统之间共享一个实际的文件夹
目标:在Ubuntu和Windows系统之间共享一个实际的文件夹,并能够共同编辑其中的文件 安装Samba创建共享文件夹配置Samba设置Samba密码重启Samba服务以应用更改:在Windows中访问共享文件夹如果客户机无法访问 Samba 服务器,解决方法①…...
3D图形学与可视化大屏:什么是几何着色器,有什么功能和应用。
一、几何着色器的定义 在 3D 图形学和可视化大屏中,几何着色器是一种可编程的图形处理单元(GPU)着色器阶段。它位于顶点着色器和片段着色器之间,主要负责处理由顶点着色器输出的几何图形数据。 几何着色器以图元(如点…...
Python:凯撒密码
题目内容: 凯撒密码是古罗马恺撒大帝用来对军事情报进行加密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列该字符后面第三个字符,对应关系如下: 原文:A B C D E F G H I J K L M N O P Q R …...
C++ labmbd表达式
文章目录 C++ Lambda 表达式详解1. Lambda 表达式的组成部分:2. Lambda 语法示例(1) 最简单的 Lambda(2) 带参数的 Lambda(3) 指定返回类型的 Lambda3. 捕获外部变量(1) 值捕获(复制)(2) 引用捕获(3) 捕获所有变量4. Lambda 在 STL 中的应用5. Lambda 作为 `std::function`6…...
第八届大数据与应用统计国际学术研讨会(ISBDAS 2025)
重要信息 官网:www.is-bdas.org 时间:2025年2月28-3月2日 地点:中国 广州 主办单位:广东省高等教育学会人工智能与高等教育研究分会 协办单位:北京师范大学人工智能与未来网络研究院、人工智能与大数据科研基地 …...
吴恩达深度学习——卷积神经网络的特殊应用
内容来自https://www.bilibili.com/video/BV1FT4y1E74V,仅为本人学习使用。 文章目录 人脸识别相关定义Similarity函数使用Siamese网络实现函数d使用Triplet损失学习参数 神经风格迁移深度卷积网络可视化神经风格迁移的代价函数内容损失函数风格损失函数 人脸识别 …...
[ Spring] Integrate Spring Boot Dubbo with Nacos 2025
文章目录 Dubbo Project StructureDeclare Plugins and RepositoriesIntroduce DependenciesDubbo Consumer PropertiesDubbo Provider ApplicationDubbo Provider ServiceDubbo Consumer PropertiesDubbo Consumer ApplicationDubbo Consumer ControllerCommand References Du…...
