草庐IT

algorithm

全部标签

php - 将复杂的 PHP 旋转函数转换为在 64 位中工作

几年前,我的虚拟主机从32位更改为64位,并且一个关键的PHP脚本停止工作。这是由于>(移位)操作发生了变化。我能够通过用rotatleft32和rotateright32替换rotatleft和rotateright例程来解决我的问题,如下所示:functionrotateleft($value,$numleft){return(($value>(32-$numleft)));}functionrotateleft32($value,$numleft){return((($value>(32-$numleft)))&0xFFFFFFFF);}functionrotateright($

php - 生成 Luhn 校验和

验证Luhn校验和的实现有很多,但生成校验和的实现却很少。我遇到过thisone然而,在我的测试中,它被发现有问题,我不明白delta变量背后的逻辑。我已经制作了这个应该生成Luhn校验和的函数,但出于某种原因,我还没有理解生成的校验和有一半时间是无效的。functionLuhn($number,$iterations=1){while($iterations-->=1){$stack=0;$parity=strlen($number)%2;$number=str_split($number,1);foreach($numberas$key=>$value){if($key%2==$p

PHP 数组 - 删除重复项(时间复杂度)

好吧,这不是“如何获取所有唯一值”或“如何从我的php数组中删除重复项”的问题。这是一个关于时间复杂度的问题。我认为array_unique有点O(n^2-n),这是我的实现:functionarray_unique2($array){$to_return=array();$current_index=0;for($i=0;$i然而,当针对array_unique进行基准测试时,我得到了以下结果:正在测试(array_unique2)...操作耗时0.52146291732788秒。正在测试(array_unique)...操作耗时0.28323101997375秒。这使得array_

android - 为什么算法这么慢?

我正在创建一个折线图,而我最初使用的代码在绘制时速度太慢以至于没有用。我用我在网上找到的代码替换了它,它变得更快了。我只是好奇为什么原始代码这么慢。下面发布的所有代码都在自定义View的onDraw()方法中:原始慢速代码:floatyStart=300f;for(inti=0;i后期快速代码:floatdatalength=values.length;floatcolwidth=(width-(2*border))/datalength;floathalfcol=colwidth/2;floatlasth=0;for(inti=0;i0)canvas.drawLine(((i-1)*

Android - 让进度条平稳增加,而不是跳得更大。

我有一些情况,比如5种情况。关键是我不知道他们每个人会持续多久。我只知道每种情况何时结束。所以想象一下这个方法是随机调用的,它不是随机的但我不知道什么时候会被调用。publicvoidrefresh(inti){}知道我可以通过每次调用刷新时增加他来更新进度条,但是用户体验将是“看到进度条增加了20%,然后等待并且没有任何移动,然后再次跳跃20%并再次堆叠,等等……我想达到的目标是拥有更舒缓的东西。我知道这不是一件容易的事,但我知道以前有人遇到过这个问题,那么解决方法是什么? 最佳答案 如果更新基本上是随机到达的,您可以考虑使用“微

java - 删除自定义对象的 ArrayList 中的重复项

我正在尝试从数组中删除重复的对象。我有我的习惯,它由两个double组成:x和y。我想做的是删除重复项((x&&y)==(x1&&y1))如果x==x1我想保留具有较高y的对象。ArrayListlist=[x(0),y(0)],[x(0),y(0)],[x(0.5),y(0.5],[x(0.5),y(0.6)],[x(1),y(1)];ArrayListresults=[x(0),y(0)],[x(0.5),y(0.6)],[x(1),y(1)];我尝试实现equals方法,但我不知道如何使用它:publicbooleanequals(Objectobj){if(obj==null|

java - N-Puzzle 伪随机洗牌?

我正在开发N-Puzzle游戏(也称为15-puzzle...),在该游戏中,您可以在正方形网格上拆分图像,移除一个,然后洗牌。我对这个难题的解决方案不太感兴趣,因为这取决于用户。但我想伪随机洗牌。我知道所有可能的洗牌中有1/2会使棋盘无法解决。假设我有一些rand()-esc函数并且我知道棋盘大小,是否有一种简单的方法可以伪随机地生成打乱状态?我在内存中有一个游戏板,一个多维整数数组。我的方法只是将图像按相反的顺序放置,在偶数板上将最后一张图像与第二张图像切换到最后一张图像。我当前的功能如下,我正在使用Java。privatevoidshuffle(){gameState=newin

java - 将 SIFT 用于增强现实

我遇到过许多AR库/SDK/API,它们都是基于标记的,直到我找到thisvideo,从描述和评论来看,他似乎在使用SIFT来检测对象并跟踪它。我需要为Android做这件事,所以我需要用纯Java完整实现SIFT。我愿意这样做,但我需要先了解SIFT如何用于增强现实。我可以利用您提供的任何信息。 最佳答案 在我看来,尝试实现SIFT对于可移植设备来说是疯狂的。SIFT是一种图像特征提取算法,其中包含复杂的数学运算,当然需要大量的计算能力。SIFT也获得了专利。不过,如果您确实想要完成这项任务,您首先应该做一些研究。您需要检查以下内

关于Secure Hash Algorithm加密算法

一、概述SHA(SecureHashAlgorithm)加密算法是一种广泛应用的密码散列函数,由美国国家安全局(NSA)设计,用于保障数据的安全性和完整性。SHA算法经历了多个版本的更新,目前主要应用于各种网络安全和数据加密领域。SHA在线加密|一个覆盖广泛主题工具的高效在线平台(amd794.com)https://amd794.com/sha二、SHA算法原理SHA算法基于迭代压缩的思想,将输入数据分成512比特的处理块,通过多轮加密运算,最终生成一个160比特的固定长度输出。SHA算法的主要特点如下:抗碰撞性:SHA算法具有较强的抗碰撞性,难以找到两个不同的输入数据生成相同的输出值。固定

176.【2023年华为OD机试真题(C卷)】整数对最小和(贪心算法(Greedy Algorithm)实现Java&Python&C++&&JS)

🚀你的旅程将在这里启航!本专栏所有题目均包含优质解题思路,高质量解题代码,详细代码讲解,助你深入学习,深度掌握!文章目录【2023年华为OD机试真题(C卷)】整数对最小和(遍历和条件判断实现Java&Python&C++&&JS)题目描述解题思路题解代码Python题解代码JAVA题解代码C/C++题解代码JS题解代码代码OJ评判结果代码讲解Python题解代码讲解JAVA题解代码讲解