草庐IT

算法复杂度

全部标签

java - 细节提取算法Java

我有一个从指纹设备获取数据的应用程序。手指细节提取有3个步骤:指纹图像二值化图像细化细节提取我完成了图像二值化和图像细化部分。现在我已经实现了细节提取的代码。代码如下所示:byte[][]outSkeleton=BasicOperations.copy(fingerprint.getSkeleton());intmargin=50;intbif=0;inteol=0;for(inti=margin+20;i..........publicstaticinttimesPattern01(inti,intj,byte[][]image){intpattern01=0;//Countingt

java - 查找列表所有可能拆分的算法

我正在使用我创建的链表,其中包含一组数字作为数据。我需要找到一种方法来测试此列表的每个可能的两组分区,为此,我需要将列表分解为每个可能的两组组合。顺序并不重要,而且会有重复。Forinstance,foralistofnumbers{1431},thepossiblesplitsare{1}and{4,3,1}{4}and{1,3,1}{3}and{1,4,1}{1}and{1,4,3}{1,4}and{3,1}{1,3}and{4,1}{1,1}and{4,3}4个数字的列表并不难,但随着列表变大,事情变得越来越复杂,而且我很难看出规律。谁能帮我找到一个算法?编辑:抱歉,我没看到问题

java - 节点间距离不规则的 A* 算法启发式

我目前正在研究A*Algorithm的实现两个节点之间的距离不规则。包含节点的图是有向加权图。每个节点都至少连接到一个其他节点,也可能存在不同距离的对称连接。节点只是一个标签,不包含任何特殊信息我需要的是一种启发式方法,以尽可能准确地确定从任何节点A到另一个节点B的最短路径。我尝试使用一种启发式方法来返回到节点最近邻居的距离,但当然这不如完全没有启发式方法有效(=Dijkstra)。我的A*算法实现主要由2个类组成,算法本身的类(AStar)和节点的类(Node)。该代码主要基于维基百科伪代码。AStar.java源代码publicclassAStar{privateAStar(){}

Java-复杂程序中的2D数组索引操作

在问我的问题之前,我想澄清一些事情。首先,我是Java和程序设计的新手。其次,这是我的第二篇文章,因此,如果我做错了什么,请放轻松。最后,我想解释一下为什么我做错了,而不是在对此帖子的任何回复中只是粘贴的解决方案。为了更好地理解该问题,我将编写分配信息,然后编写给定的Driver类,然后编写由Driver类访问的我的类代码。我的问题:如何使我的“建筑物”的左下角在2D数组上为[0][0]?Here's一个for循环的示例,该示例可将2D数组的左下角更改为[0][0],但我尝试将其实现到我的searchRoom方法中(玩家角色设置为myHidingPlaces索引),我可以t将myHid

java - 使用 Java 8 的复杂自定义收集器

我有一个对象流,我想通过以下方式收集这些对象。假设我们正在处理论坛帖子:classPost{privateDatetime;privateDatadata}我想创建一个按句点对帖子进行分组的列表。如果没有关于X的帖子分钟,创建一个新组。classPostsGroup{Listposts=newArrayList();}我想要一个List包含按时间间隔分组的帖子。示例:10的区间分钟。帖子:[{time:x,data:{}},{time:x+3,data:{}},{time:x+12,data:{},{time:x+45,data:{}}}]我想获取帖子组的列表:[{posts:[{ti

java - 带邻接表的骑士巡回算法

我正在尝试用Java解决骑士的游览问题。我的目标是计算一匹马在任意维度的棋盘上的所有可能行程。我尝试使用的是邻接表数据结构。现在的问题是,我知道哪些方block与一个方block相邻,但我不知道相邻方block的方向。我该如何解决这个问题? 最佳答案 这里只是您应该做什么的粗略概述:创建一个包含上、下、左、右字段的“Square”类(加上访问器和修饰符方法)创建一个“Chessboard”类来存储所有的方block并设置它们。创建一个“骑士”类在棋盘上移动(并检查移动是否有效)。最后,创建一个驱动程序类来搜索和存储如何移动骑士。示例

java - 自动绑定(bind)复杂 (JSON) 表单数据

我的JSON数据来自request().body().asFormUrlEncoded().get("records")[{"string":"foo","termId":"793340"},{"string":"bar","termId":"460288"}]我的表单定义:publicstaticclassMyForm{@Constraints.RequiredpublicList>records;publicStringsomeField;}它不会自动绑定(bind)记录。然后我尝试使用POJO:publicstaticclassRecord{publicStringstring;

java - 燃料图平滑算法

我正在开发车队管理系统,其中一项任务是显示表示车辆油耗的图表(基于来自CANbus的数据)。如果数据值介于0和100之间,则表示百分比。所以,如果我得到一个整数45,这意味着油箱中的燃料是45%。但是,如果载具在移动,由于船舶的物理特性,可能会出现不一致的数据。例如,一个数据系列可能是:76,76,75,74,73,73,71,7076,70,75,76,77,76,74,74,73,72,69,72,73,73,72,71我想平滑这些值,但是根据我选择一次平均多少个值,结果是不同的。关键问题是,有时我必须在图表中显示一些消耗和补充能量的时刻,并且不能平滑。我可以使用什么样的算法来分析

java复杂语句执行顺序

System.out.println(info+":"+++x);这个语句是否等同于x++;System.out.println(info+":"+x);和System.out.println(info+":"+x++);相当于System.out.println(info+":"+x);x++;JVM一次只能处理一条语句,它是不是这样划分这些语句的? 最佳答案 是的,是的。++x将在包含语句之前执行,即x的值将在使用之前递增。x++将在包含语句之后执行,即使用该值然后变量x递增。需要说明的是:在这两种情况下,变量x的值都会发生变化

java - 类似于Knapsack Java代码的动态规划算法

关键任务生产系统有n个必须按顺序执行的阶段;第i阶段由机器M_i执行。每台机器M_i都有可靠运行的概率r_i和失败的概率1-r_i(并且失败是独立的)。因此,如果我们用单台机器实现每个阶段,则整个系统工作的概率是r_1,r_2,...,r_n。为了提高这个概率,我们通过拥有执行阶段i的机器M_i的m_i个副本来增加冗余。所有m_i个副本同时失败的概率只有(1-r_i)^(m_i),所以第i阶段正确完成的概率为1-(1-r_i)^(mi),而全部正确完成的概率系统工作是prod(i=1,n){1-(1-r_i)^(m_i)}。每台机器M_i的成本为c_i,购买机器的总预算为B。(假设B和