草庐IT

Algorithm

全部标签

java - 检测封闭贝塞尔曲线中的自交叉

我通过将三次贝塞尔曲线拼接在一起创建了一个“Blob”形状(下面的屏幕截图)。我希望能够检测到曲线与自身或另一条曲线交叉的情况,想知道是否有推荐的方法或已知算法来执行此操作?我的一个想法是使用FlatteningPathIterator将形状分解为直线段,然后检测给定的线段是否与另一段交叉,但我很想知道是否有更好的方法(因为这将具有二次性能)。如果我真的采用这种方法,Java中是否有库函数来检测两条线段是否重叠?谢谢。无交叉NoCrossoverhttp://www.freeimagehosting.net/uploads/7ad585414d.png交叉Crossoverhttp:/

java - Java 中用于文件比较的编程方法

比较两个十六进制文件签名的相似性的最佳方法是什么。更具体地说,我想做的是采用.exe文件的十六进制表示形式,并将其与一系列病毒签名进行比较。对于这种方法,我计划将文件(exe)十六进制表示分解为N个字符(即10个十六进制字符)的各个组,并对病毒签名执行相同的操作。我的目标是执行某种启发式方法,因此统计检查此exe文件是否与已知病毒签名具有X%的相似性。我想到的最简单且可能非常错误的方法是,将exe[n,n-1]与病毒[n,n-1]进行比较,其中数组中的每个元素都是一个子数组,因此exe1[0,9]对抗病毒1[0,9]。每个子集都将进行统计评分。如您所知,将进行大量比较,因此非常非常慢。

java - 不使用 BigInteger 的 Karatsuba 算法

我一直在尝试在不使用BigInteger的情况下在Java中实现Karatsuba算法。我的代码仅适用于两个整数相同且位数相同的情况。我没有得到正确的答案,但是我得到的答案非常接近正确的答案。例如我在12*12时得到149。我无法弄清楚我的代码有什么问题,因为我相信我所做的一切都是正确的(按照书本)。这是我的代码。publicstaticvoidmain(String[]args){longans=karatsuba(12,12);System.out.println(ans);}privatestaticlongkaratsuba(longi,longj){if(i编辑:感谢Ziya

java - 这是一种新的排序算法吗? [使用 Java 和伪代码实现]

我知道这可能是一个愚蠢的问题,也许是当今最愚蠢的问题,但我不得不问:我发明了这种排序算法吗?昨天,我对一个基于交换的排序算法有了一点灵感。今天,我实现了它,并且奏效了。它可能已经存在,因为有许多不那么流行的排序算法,这些算法几乎没有或根本没有相关信息,而且几乎没有实现它们。描述:基本上,该算法采用一个项目,它们是一对,然后再次是一个项目……直到列表末尾。对于每个项目/对,比较距离对空间或项目相同半径距离的每两个项目,直到到达数组的边界,然后根据需要交换这些项目。对列表的每一对/项目重复此操作。基于英文的伪代码:FORiindextolastindexofArray(startingfr

java - 将项目战略性地放置在具有最小重叠连接的容器中的逻辑

这更像是一道算法题。我有一个页面,它使用javaScript通过绘制从源到目标的箭头连接来显示项目和项目与其他项目的关系(想想jsPlumb)。每个项目可以有0个或多个连接。我面临的挑战是以最佳方式将div/圆圈战略性地放置在容器中。最佳:最少的连接数(连接两个圆圈的箭头)重叠视觉示例:下图是显示的未优化版本,将圆圈随机放置在容器内。请注意上图中连接(箭头)重叠的数量不必要地高。下图是一个优化的解决方案,在这个小例子中圆圈放置在更好的位置导致连接没有重叠:放置项目的容器大小为1020x800。在存在大量圆圈的地方总会有重叠,所以我们的想法是尽量减少连接重叠的数量。我希望举例说明如何做到

java - 寻找最大面积的算法

.................................XXXXXXXXXXXXXXX.....XXXXXXXXXX..X.....X.......X.....X........X..X.....X.......XXXXXXX........X..XXXXXXXXXXXX.................X..X....X.....X.................X..X....X.....XXXX..............X..XXXXXX........X..............X.......X........X..............X.......X.

java - 如何找到整数数组中每个元素的等级

我想找出从0开始的数组中每个元素的排名。例如:arr={2,1,3}rankwillbe{1,0,2}解释:rankof2is1because2isgreaterthanexactly1elementrankof1is0because1isgreaterthanexactly0elementrankof3is2because1isgreaterthanexactly2element我试过的是n^2时间复杂度算法。我想要一个具有线性时间复杂度O(n)的算法。有人在下面的评论部分给了我解决方案,但他的评论已被删除我不知道如何。这适用于负整数和正整数以及非常大的列表。感谢作者importja

java - 后缀数组nlogn创建

我一直在学习suffixarrays创建,&我明白我们首先根据第一个字符对所有后缀进行排序,然后根据前2个字符,然后是前4个字符等等,而要考虑的字符数小于2n。但我的疑惑是为什么我们不选择前3个字符,然后是9...等等。为什么只考虑2个字符,因为字符串是相同字符串的一部分而不是不同的随机字符串? 最佳答案 后缀数组构造算法我还没有分析透彻,还是想分享一下自己的想法。依我愚见,您的问题与以下问题类似:为什么计算机对信息使用二进制而不是三进制编码?为什么二分搜索将范围一分为二而不是三等分?为什么有两种性别而不是三种?原因是数字2很特殊—

java - 在有限区域的中心位置周围随机出现 "walk"?

我不确定我是否能正确表达这个问题,但就是这样......我想编写一个示例,其中小点具有它们移动所依据的速度-而且,还有一个随机运动叠加到“正确”运动上。使用下面的Processing代码,我得到以下动画:右边的点应该朝向右下角,我对它的行为没意见。问题是左边的点,它应该是“静态的”——所以它只会显示“就地”的“随机”运动;然而,正如动画.gif所示,它最终往往会偏离其原始位置一段距离。随机速度计算如下:this.randspeed.set(random(0,1)-0.5,random(0,1)-0.5);我猜想random(0,1)-0.5不会给我一个以零为中心(或收敛?到)零的类似高

java - java算法分析工具

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭7年前。Improvethisquestion我正在寻找一个java的算法分析工具,可以计算一个函数的Big0。理想情况下,我想让它与我的其他代码度量工具一起成为我构建过程的一部分。即使在谷歌上搜索后,我也找不到任何开源的商业工具。欢迎任何建议谢谢