快速找出故障机器

北航机器学习2020-2021秋季学期期末试题回忆 北航机器学习2020-2021秋季学习期末试题回忆 fanjn, zhangyy, yuanq, wanggq, weixy, anh, wangyy, zhouxy, likc1 【注:考试使用纯白的A3答题纸,考试时间2h,各位同学可以自行模拟考试】 此试卷1-8题为10分,第9题为20分 1.2077年人类发射近地卫星,一共发射800颗,根据大小和轨道远近,有着不同的宜居条件(+表示宜居),有以下表格(数字八九不离十,其他属性什么的原题就是交替的) 数量 大小 轨道 是否宜居 30 阅读详情

题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据。其中ID是小于10亿的整数

问题1、在某个时间,如果得到一个数据文件ID的列表。是否能够快速的找到这个表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID。

问题2、如果有两台机器死机呢?(假设同一个数据的俩个备份不会同时丢失,即列表中缺少的是两个不等的ID)

扩展题、如果所有的机子都有三个备份,也就是说同一ID的机子有三台。而且同时又有三台机子死机,还能用上面的方法解决吗?

如果有N台备份,又同时有N台机器死机呢?



本来以为自己能够想到一个很好的另外的方法,后来想了半天还是没想到,就只看看书上的解法把!

解法一:

最原始的方法,直接扫描整个列表,把每个ID出现的次数给记录下来,那么最后我们得出,出现一次的就是那个故障机器的ID。

注意我们直接建立一个长度为N的数组,每个元素初始化为0,扫描列表的时候,直接根据ID作为下标去把数组中的元素+1.

解法二:

思考一下解法一其实就是解法一的变更,就多了一个哈希表,我们在解法一中,直接使用了一个长度为N的数组,其实我们可以使用一个哈希表,我们使用的是动态存储的方式,没扫描到一个ID,使用散列函数哈希出一个值,然后根据这个值去寻找其存储的ID是不是已经有了,已经有了,就直接把存储这个ID的元素删除了,没有的话就存储下来。

这样最好的情况就是只使用了一个存储单元,最好的情况是什么呢?就是列表张这个样子:1,1,2,2,3,3,4,4,5,5..........

但是最坏的的情况是使用了N个单元:1,2,3,4,5..........N,1,2,3,4,5.......N.

解法三:

此解法是一个很精妙的算法,很佩服想到这个算法的人。

它用到了亦或运算:⊕,我们知道亦或运算满足这样的性质:X⊕X=0,X⊕0=X。

对于我们这个运算真是太实用了。

为什么呢?

我们假设这样的坏掉的两个机器的ID分别是X和Y。

正常如果没坏的机器的话,我们把列表的所有的ID进行求亦或运算结果一定是0,原因是ID都是成双成对的。

那么在坏掉之后我们再把列表的ID进行亦或,如果亦或的结果是0,这代表什么呢?

这当然代表列表中的ID也是成双成对的啊,那么坏掉的那两台机器的ID就是一样的喽。接下来我们把原来的所有的ID的和再减去现在的ID列表的ID的和,不就是X+Y了吗?而我们又知道X=Y,不就可以求出X了吗?

如果是亦或的结果不等于0,那其实亦或的结果就是X⊕Y的结果,原因自己想。那么这个结果肯定就是其二进制中数的某一位为1,显然就是X和Y中有且仅有一个数的相同位上也为1。那么我们就把列表中的ID分为两类,一类是这个位上的数是1的,一类是这个位上的数是0的,然后我们分别计算着两类ID的亦或值,这样分别计算出来了X和Y。

解法四:

仔细瞅瞅解法三中的亦或值等于0的情况,其实它就是对于两个变量X和Y,找到了两个方程,解方程而已。

根据此解法,我们可以这样想,对啊,我直接根据X,Y两个变量,再去找他们的相关的两个方程不就得了。

怎么找呢?解法三中的把原来的ID和减去之后的ID和得出X+Y的值,这已经算是一个方程,根据这个方程,我们其实可以再去构造一个方程,什么呢?平方和嘛。我们把原来的列表的每个ID的平方和求出来,再把现在的列表的ID的平方和求出来,减一下,不是就得出X的平方+Y的平方了吗?这不就又一个方程了吗?两个方程,两个未知数。

自己的想法:

对于书上的扩展问题,我们很容易的会想到解法四,既然我们用了平方构造出来了第二个方程,为什么不能用三次方构造出第三个方程,用四次方构造出第四个方程。

对于这个算法,我是这样想的,虽然三次方之后,要求的解很难算,但是电脑是可以解出来的。

        比如X= 3,Y= 4,Z= 5;

给你一个方程组,让你求三个未知数

X+Y+Z=12;

X^2 + Y^2 +Z^2 = 50;

X^3 + Y^3 + Z^3 =216

这个很多数学软件是都可以求解出来的。



copilot基于 DeepSeek-R1 思路构建 VLA 自动驾驶强化学习系统 下面给出一个完整示例代码,结合 DeepSeek‑R1 的技术方法,实现一个端到端的 VLA(视觉+语言行动)自动驾驶深度强化学习系统。.2f。 阅读详情

相关推荐

SAP LSMW保姆级操作文档

SAP LSMW(Legacy System Migration Workbench)是一个强大的工具,旨在简化旧系统数据向SAP系统的迁移过程。它允许用户通过多种方式导入数据,包括直接输入、批处理输入和BAPI。LSMW支持数据映射和转换,确保数据在迁移过程中保持一致性,减少手动输入的需求,从而提高效率,适用于新系统实施和数据更新项目。在日常运维过程中我们经常会遇到用户要求我们批量改一写数据,通常这些字段的信息有些SAP是提供程序可以批量进行更改的比如主数据的MM17、通用更改数据的MASS。

我小时候很黑的博客 4927

编程之美(5) 快速找出故障机器

问题聚焦: 每个记录有两个备份。 在某个时间,得到一个数据文件ID的列表,快速找出这个表中仅出现一次的机器ID。

面团的专栏 1591

MPU6050 加速度计和陀螺仪传感器与 Arduino 的接口

虽然该模型并不能准确代表现实世界中加速度计传感器的构建方式,但它通常有助于理解为什么加速度计的输出信号通常以 ±g 为单位指定,或者为什么加速度计在静止时在 z 轴上的读数为 1g,或者在不同方向上您可以期望得到什么样的加速度计读数。该模块的核心是低功耗、低成本的 6 轴运动跟踪芯片 MPU6050,它将 3 轴陀螺仪、3 轴加速度计和数字运动处理器 (DMP) 集成到一个 4mm x 4mm 的微型芯片中。小时候,科学博览会上的陀螺仪总是让我们感到惊讶,因为它们以奇怪的方式移动,甚至似乎违背了重力。

sxstj的博客 9932

1.5 快速找出故障的机器

1. 前言本文的一些图片截取自编程之美2. 问题描述3. 问题分析对于第一个问题, 书中给出了几种算法 第一种 : 遍历一次机器列表, 然后统计出 机器的id, 和出现的次数的映射4. 代码/** * file name : Test01FindBadMachine.iava * created at : 8:43:20 AM May 12, 2015 * created by 970655

970655147的专栏 802

基于ESP32与PCM5102的WiFi无损音频传输系统设计与实现

本文详细介绍基于ESP32与PCM5102的WiFi无损音频传输系统设计与实现。通过I2S接口直接传输PCM数据,避免SRC重采样,实现真正的HIFI级音质。涵盖硬件连接、软件架构、网络传输优化及实际音质对比,为音频爱好者提供高性价比的无损无线音频解决方案。

rnn9storyteller的博客 948

Matlab实战:3种雷达间歇采样干扰的仿真与识别(附完整代码)

本文通过Matlab实战,详细仿真了雷达有源间歇采样干扰的三种核心样式:直接转发、重复转发和循环转发干扰。文章提供了完整的代码实现,并深入探讨了基于时频分析和循环平稳分析的特征提取与识别方法,为雷达抗干扰技术的学习与实践提供了清晰的工程实现路径。

weixin_29053695的博客 364

快速找出故障机器(微软面试题)

题目:假设一个机器仅储存一个标号为ID的记录(假设其小于10E的整数),假设每份数据保存两个备份,这样就有两个机器储存了同样的数据。 1、在某时刻,如果得到一个数据文件ID的列表,如何能够快速找出这个表中仅出现一次的ID?(相当于只有一个故障机器) 2、如果两个丢失呢? 解法之一: 利用数学的“不变量”概念,这些数据的ID总值是不变的,我们只需要故障前把每一台机器存储的ID值进行求和运算,当发

Howey的博客 587

10分钟训练你的AI歌手:RVC WebUI声音克隆保姆级教程

本文提供了一份详细的RVC WebUI声音克隆保姆级教程,指导用户如何在10分钟内利用Retrieval-based-Voice-Conversion技术训练专属AI歌手。教程涵盖从环境配置、数据准备、模型训练到最终推理应用的全流程,即使是新手也能快速上手,实现高质量的声音克隆与歌曲生成。

weixin_29073241的博客 818

编程之美:饮料供货

题目大意: 水房能容纳饮料的总量是V,有一批饮料,每种饮料单个容量都是2的方幂,每种饮料信息如下:(Si,Vi,Ci,Hi)分别对应(名字,容量,满意度),求在满足总容量等于V的情况下,求满意度的最大值。 分析: 1、动态规划解法,不难看出这是一道完全背包问题 具体思路解法见:第七章 背包问题——完全背包 2、动态规划法的变形:备忘录法 #include #include usin

王川的私房菜 2181

063.CI/CD for ML:给YOLO项目装上自动化流水线

本文分享了为YOLO目标检测项目搭建CI/CD流水线的实践经验。作者通过手动调试模型导出问题的经历,意识到重复验证工作比模型改进更耗时,提出需要自动化解决方案。文章详细介绍了四阶段流水线设计:1)代码质量检查;2)快速训练验证;3)推理性能基准测试;4)模型注册部署。同时总结了环境不一致、GPU资源争抢等常见问题及解决方案,建议从简单规则开始逐步完善,强调模型版本管理的重要性。实施后不仅提高了效率,还促使团队形成更规范的开发习惯。

2603_95664987的博客 233

EM的理论与实践(基础篇)

EM理论与实践

m0_61544122的博客 2378

快速找出机器故障

快速找出机器故障

Jarvan_Song的博客 730

HTML粉色爱心(完整代码)

HTML语言实现粉色爱心的完整代码。

AIGC 1104

编程之美——快速找出故障机器

编程之美——快速找出故障机器 题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据。其中ID是小于10亿的整数 问题1、在某个时间,如果得到一个数据文件ID的列表。是否能够快速的找到这个表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID。 问题2、如果有两台机器死机呢?(假设同一个数据的俩个备份不会同时丢失,即列表

chenglinhust的专栏 1392

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

编程之美 1.5 快速找出故障机器

快速找出故障机器         关心数据挖掘和搜索引擎的程序员都知道,我们需要很多的计算机来存储和处理海量数据。然而,计算机难免出现硬件故障而导致网络联系失败或死机。为了保证搜索引擎的服务质量,我们需要保证每份数据都有多个备份。 简单期间,我们假设一个机器仅存储一个标号为ID的记录(假设ID是小于10亿的整数),假设...

ShaYx1991的博客 496

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

第1章 游戏之乐——快速找出故障机器

转载:编程之美_1.5_快速找出机器故障 题目:假设一个机器只存储一个标号为ID的记录,假设每份数据保存2个备份,这样就有2个机器存储了相同的数据。其中ID是小于10亿的整数 问题1、在某个时间,如果得到一个数据文件ID的列表。是否能够快速的找到这个表中仅出现一次的ID?即快速找出出现故障的机器存储的数据ID。 问题2、如果有两台机器死机呢?(假设同一个数据的俩个备份不会同时丢失,即列表中缺...

weixin_34358092的博客 82

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Thinking--快速找出故障机器(异或)

Thinking系列,旨在利用10分钟的时间传达一种可落地的编程思想。 假设一个机器仅存储一个标号为ID(数值)的记录,且该数据会保存备份(即,两个机器存储了同样的数据;类似于双节点部署)。 在某个时间,如果得到一个数据文件ID的列表,是否能够快速找出这个列表中仅出现一次的ID? 如果已知道有一台机器死机呢?如果两台呢? const originList = [123, 456, 789,...

李刚的学习专栏 630

【编程之美】游戏之乐——快速找出故障机器

快读找出故障机器 问题描述: 为了保证搜索引擎的服务质量,需要保证每份数据都有多个备份。简单起见,假设一个机器仅存储一个标号为ID的记录(假设ID是小于10亿的整数),假设每份数据保存两个备份,这样就有两个机器存储了同样的数据。 要求: 在某个时间,如果得到一个数据文件ID的列表,是否能够快速地找出这个表中仅出现一次的ID? 如果已经知道只有一台机器司机(也就是说只有一个备份丢失)呢?如果有两台...

小哲的博客 546

编程之美(五)快速找出故障机器

关心数据挖掘和搜索引擎的程序员都知道,我们需要很多的计算机来存储和处理海量数据。然而,计算机难免出现硬件故障而导致网络联系失败或死机。为了保证搜索引擎的服务质量,我们需要保证每份数据都有多个备份。 简单起见,我们假设一个机器仅存储一个标号为ID的记录(假设ID是小于10亿的整数),假设每份数据保存两个备份,这样就有两个机器存储了同样的数据。 1.在某个时间,如果得到一个数据文件ID的列表,是否能...

小二笙的博客 329

关于快速找出故障机器的扩展题目

题目: 如果所有的机器都有3个备份,也就是说同一ID的机器有3太,而且同时又有3太机器死机,还能用上面解法四的思路解决么?如果有N个备份,而且同时又有N台机器死机,是否还能解决? [color=red]解法一:[/color]如果所有的机器都有3个备份,那么就需要构造3个非线性相关的方程来求解即可。这3个方程可以是一次方和的形式、二次方和的形式、三次方和的形式。这是可以求解的。 例如 x+...

博采众长 189

编程之美-快速找出故障机器

[code="java"] package beautyOfCoding; import java.util.Arrays; public class TheLostID { /*编程之美 假设一个机器仅存储一个标号为ID的记录,假设机器总量在10亿以下且ID是小于10亿的整数,假设每份数据保存两个备份,这样就有两个机器存储了同样的数据。 1.假设在某个时间得到...

代码说-Let code talk 147
上一篇: 买书问题
下一篇: 饮料供货
云金
博客等级 码龄11年 11粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值