快速找出故障机器

修改legged_gym地形后仍然是平地,如何解决? 🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。 阅读详情

假设一个机器仅存储一个标号为ID的记录(假设ID是小于10忆的整数) 假设每份数据保存两个备份 这样就有两个机器存储了同样的数据

1.在某个时间 如果得到一个数据文件ID的列表 是否能够快速找出这个表中仅出现一次的ID

2.如果已经知道只有一台机器死机(也就是说只有一个备份丢失)?如果两台机器死机(假设同一个数据的两个备份不会同时丢失)?


问题1:

直接遍历表 利用一个数组记录下每个ID出现的次数 遍历完毕 出现次数小于2 的ID即仅出现一次的ID

假设有n个ID 空间复杂度和时间复杂度均为O(n)


对于该种方法改进 可以将出现2次的ID不必存储 因此可以用一个边长数组存储ID出现次数  但这种方法最好情况下空间复杂度为O(1) 最坏情况下仍为O(N)


ID成对出现的 表明数据未丢失 两个相同的数相异或的结果为0 因此将所有数据异或 得到的非0 结果 即为只出现一次的ID

这种方法只需要遍历ID数组一次 空间复杂度为O(1)


问题2:

可以利用异或的方法  但是这种方法只适合只有一台机器死机 而不适合同一个数据的两个备份同时丢失

将所有ID相与 得到一个不为0的结果 那么这个二进制的某一位为1 显然丢失的两个ID中有且仅有一个数该位上为1 

这样 将所有ID分为两类:一类该位上为1 另一类该位上为0 每一类都含有一个丢失的ID  然后对这两类ID进行异或 得到的值即为丢失的ID

#include <iostream>
using namespace std;
int Is1(int n,  int a)
{
	n = n>> a;
	return(n & 1);
}
 int last1(int n)
{
	int t = 0;
	while ( n )
	{
		t++;
		n = n >> 1;
	}
	return t;
}
void find2num(int A[], int n,int *a,int *b)
{
	if (A == NULL || n < 2)
		return;
	int t = 0;
	for (int i = 0;i < n;i++)
		t ^= A[i];
	int index = last1(t);

	*a = *b = 0;
	for (int i = 0;i <= n;i++)
	{
		if (Is1(A[i], index))
			*a ^= A[i];
		else
			*b ^= A[i];
	}

}
int main()
{
	int A[] = {1, 2,3,4,4,5,5,7,7,3 };
	int n = 10;

	int a = 0;
	int b = 0;
	find2num(A, n - 1, &a, &b);
	cout << a << ' ' << b << endl;
	return 0;
}


异或的方法不适同一个数据的两个备份同时丢失的情况 因此要寻求别的方法


我们可以通过构造方程 来求解丢失的ID

对于问题1 预先求出所有ID的和s1  然后再求出当前所有ID的和s2  这样s1-s2即为丢失的ID  该方法时间复杂度为O(N) 空间复杂度为O(1)

对于问题2  我们可以构造一个新的方程 来求解两个未知数  可以预先求出所有ID的平方和  然后求出当前所有ID的平方和 

也可以预先求出所有ID的乘机  然后再求出当前所有ID的乘积 。。。。。


该方法解决问题2  时间复杂度为O(N) 空间复杂度为O(1)


扩展问题:如果所有机器有3个备份 也就是说同一台ID的机器有3台 而且同时又有3台机器死机 ?


可以用构造方程的方法解决 不过解方程不是件容易的事情啊~



 

使用OpenGL加载和显示DXF格式的3D模型文件编程 这样,我们就完成了使用OpenGL加载和显示DXF格式的3D模型文件的编程。通过实现加载函数和绘制回调函数,我们能够读取DXF文件的数据并使用OpenGL绘制出来。请注意,这只是一个简单的例子,仅涵盖了基本的加载和显示功能。在本文中,我们将探讨如何使用OpenGL编程加载和显示DXF(Drawing Exchange Format)格式的3D模型文件。DXF是一种通用的CAD(计算机辅助设计)文件格式,常用于存储和交换2D和3D图形数据。使用OpenGL加载和显示DXF格式的3D模型文件编程。 阅读详情

相关推荐

GNSS气象学入门:从ZTD到PWV的水汽反演全流程解析(含精度评估)

本文详细解析了GNSS气象学中从ZTD到PWV的水汽反演全流程,包括基础概念、反演原理、数据处理步骤及精度评估方法。通过PRIDE软件和MATLAB代码示例,展示了如何高效提取ZTD数据并结合ERA5气象数据进行PWV计算,为气象研究和业务应用提供了实用指南。

weixin_28707365的博客 573

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

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

面团的专栏 1591

机器人视觉伺服控制入门:从IBVS到PBVS的实战指南(附Python代码示例)

本文深入解析机器人视觉伺服控制,对比了基于图像的视觉伺服和基于位置的视觉伺服两大核心方法。通过实战案例与Python代码示例,详细阐述了从误差计算、交互矩阵到速度控制的全流程,帮助读者掌握如何利用视觉反馈实现机器人的实时闭环控制,提升其在动态环境中的作业能力。

weixin_29061997的博客 259

机器出了故障,怎么办?

什么机器都一样,只要使用不当或保养不当,他都可能出现我们不可预测的故障,到时候我们就会手忙脚乱,不知所措,有时,得不到正确的处理方法,会使机器报废的更快,使用效率越低。     胶水机常见的故障有五种:     1:纸张上胶不均匀。是因为上胶辊变形或压纸辊间隙过大,处理方法是更换上胶辊或调整压纸辊间隙。     2:纸张上胶后卷入上胶辊。原因是护纸片与上胶辊间隙过大,处理方法是调整护纸片的间

最怕的是得不到又忘不了 1484

AXI_IIC调试实战:从失败到成功的读写操作经验分享

本文分享了调试Xilinx AXI_IIC IP核从失败到成功的实战经验。文章详细解析了IP核以FIFO和状态机为核心的工作机制,强调了状态寄存器查询与延时等待的关键作用,并提供了针对EEPROM的单字节读写操作完整代码与避坑指南,帮助开发者高效完成AXI_IIC读写操作。

weixin_29169505的博客 370

别再手动写JSON了!用Node-RED OPC UA节点5分钟搞定楼宇温湿度数据采集

本文介绍了如何利用Node-RED和OPC UA节点快速实现楼宇温湿度数据的自动化采集与JSON格式转换。通过可视化工具Node-RED,开发者无需编写复杂代码,5分钟内即可完成从传感器到数据输出的全流程配置,大幅提升智慧楼宇和工业物联网项目的实施效率。

weixin_30368405的博客 432

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

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

小二笙的博客 329

波动性GARCH模型与波动率预测(代码+结果分析)

本文介绍的ARCH、GARCH模型可以刻画出随时间变化的条件异方差。

celiaweiwei的博客 2万+

快速找出机器故障

快速找出机器故障

Jarvan_Song的博客 730

电能质量仿真:电能质量改善措施仿真_(12).电能质量改善措施综合仿真案例

假设我们有一个微电网系统,该系统包含分布式电源(如光伏板、风力发电机)、储能设备、负荷和电网连接。电压波动:由于负荷的波动和分布式电源的间歇性输出,系统电压出现了不稳定的情况。谐波污染:非线性负荷和逆变器的运行导致系统中出现了显著的谐波污染。频率偏差:分布式电源的波动和负荷的突变导致系统频率出现了偏差。我们需要通过仿真来评估这些问题的影响,并提出相应的改善措施。

2401_87715305的博客 1360

YOLO项目从零开始:超详细运行教程(图文保姆级教学)

至此,我们已经完整跑通了YOLO项目的安装与启动流程,无论你是零基础小白还是刚入门的AI新兵,只要按部就班操作,也能轻松实现目标检测项目的落地。

一键难忘的博客 4800

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

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

chenglinhust的专栏 1392

CloudCompare 和 PCL:点云网格化分析与处理

点云网格化是将点云数据转化为规则网格的过程,其主要思想是将离散的点云投影到一个平面上,然后对该平面进行划分,形成一系列小区域。在点云网格化方面,PCL 提供了各种算法和工具,可以实现高效的点云网格化操作。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化算法参数,如搜索半径和最大三角形边长等,执行了网格化操作,最后将网格化结果保存到输出文件中。以上示例代码中,首先加载了输入的点云数据,然后通过设置合适的网格化参数,如分辨率等,执行了网格化操作,最后将网格化结果保存到输出文件中。

TechPulseZ的博客 1291

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

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

ShaYx1991的博客 496

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

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

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

weixin_34358092的博客 82

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

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

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

李刚的学习专栏 631

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

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

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

小哲的博客 547

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

题目: 如果所有的机器都有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

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

题目:   简化后问题:有很多机器id,其中只有一个或两个id被丢失,正常情况下每个id个数为2,请问如何找到丢失的id是几。 java解法一实现: /**  * 使用异或操作 X异或X等于0,X异或0等于X,所有元素异或结果就是丢失的元素  * 如果丢失id个数为2,异或结果就是A异或B的结果,然后将数组分成两组,分别找出来。  * @author zhaozh  

qiaojiahe的专栏 762
上一篇: 一摞烙饼的排序
下一篇: 赋值运算符函数
Fivesplus
博客等级 码龄12年 1粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值