草庐IT

algorithm

全部标签

java - Java中递归算法的优化

背景我有一组有序的数据点存储为TreeSet.每个数据点都有一个position和一个Set的Event对象(HashSet)。有4个可能Event对象A,B,C,和D.每个DataPoint有其中2个,例如A和C,除了第一个和最后一个DataPoint集合中的对象,具有T大小为1。我的算法是求一个新DataPoint的概率Q在位置x有Eventq在这个集合中。我通过计算一个值S来做到这一点对于这个数据集,然后添加Q到集合和计算S再次。然后我划分第二个S由第一个分离出新的概率DataPointQ.算法S的计算公式是:http://mathbin.net/equations/105225

Java计算器 - 调车场

我正在尝试实现Dijkstra'salgorithm调车场通过简单的操作(+-/*)阅读数学方程式。它基本上得到一个“中缀”字符串并将其转换为“后缀”字符串。例如:输入->"(3+5)*4-12"。输出:队列[3,5,+,4,*,12,-]当从右到左阅读时,您会看到您需要从4的乘法中减去12,再加上3和5。我已经正确地做到了这一点。我认为将队列解释为计算的最简单方法是递归,因此我想出了以下代码:publicstaticExpressionnewCalc(ArrayDequeq)//qistheoutputofShuntingyardalgo{Stringtmp=q.pollLast()

java - 使用java从wav文件中提取人声

我正在做一个项目,我必须使用java从音频.wav文件中提取人声。音频.wav文件可能包含3到4种声音,例如狗、猫、音乐和人声。我将必须识别人声,然后从音频.wav文件中提取该部分。我正在使用FFT.java和Complex.java.现在我已经编写了一个AudioFileReader类,它从硬盘驱动器读取audio.wav文件,然后将其转换为字节数组。然后使用上面提到的FFT.java和Complex.java来应用FFT.fft(bytesArray),这会返回Complex数组;现在的问题是如何从返回的Complex数组中提取人声字节模式...有谁知道我如何实现这一点?编辑:我们

java - 检测图中的奇点

我正在用Java创建一个图形计算器作为我的编程类(class)的一个项目。这个计算器有两个主要组成部分:图形本身,它绘制线条,以及方程式计算器,它将一个方程式作为String并......好吧,计算它。为了创建直线,我创建了一个Path2D.Double实例,并循环遍历直线上的点。为此,我计算与图形宽度一样多的点(例如,如果图形本身的宽度为500像素,我计算500个点),然后将其缩放到图形的窗口。现在,这适用于大多数线路。但是,在处理singularities时不会.如果在计算点时,图形遇到域错误(例如1/0),图形将关闭Path2D.Double实例中的形状并开始新的一行,以便线在数

java - alt-rt.jar 和 rt.jar 中 HashMap 的区别?

alt-rt.jar中的HashMap有什么区别和rt.jar。我想我看到了相当大的加速在我的一个应用程序中,解释是什么?最好的问候P.S.:我发现了两个不同的*.jar在JDK1.6.0_2564位中。最终加速也与alt-string.jar有关。这个alt最终可能与一个命令行选项:http://thevirtualmachinist.blogspot.com/2010/09/xxusecompressedstrings.html但我更感兴趣的是了解alt-rt.jar,我从上面的文章说有一个命令行与之相关的选项。 最佳答案 al

java - 用于数字检索的节省空间的概率数据结构

假设我们有一个算法可以接收假设很长的key流。然后,当我们处理它时,它会为每个键生成一个介于0和1之间的值,用于后验检索。输入集足够大,我们无法为每个键存储一个值。值生成规则在键之间是独立的。现在,假设我们可以容忍后验查找中的错误,但我们仍然希望最小化检索和原始值之间的差异(即在许多随机检索中渐进)。例如,如果给定键的原始值为0.008,则检索0.06比检索0.6好得多。我们可以使用什么数据结构或算法来解决这个问题?布隆过滤器是我能想到的最接近的数据结构。可以量化输出范围,对每个桶使用布隆过滤器,并以某种方式在检索时组合它们的输出以估计最可能的值。在我继续这条道路并重新发明轮子之前,是

java - 排序时非常奇怪的效率怪癖

我目前正在上数据结构类(class),正如您所料,我们必须做的其中一件事就是编写一些常见的排序。在编写我的插入排序算法时,我注意到运行速度明显快于我导师的算法(对于400000个数据点,我的算法花费了大约30秒,他的算法花费了大约90秒)。我通过电子邮件将我的代码发给他,当它们都在同一台机器上运行时,结果相同。我们设法浪费了40多分钟,慢慢地将他的排序方法改为我的排序方法,直到完全一样,逐字逐句,除了一个看似随意的事情。首先,这是我的插入排序代码:publicstaticint[]insertionSort(int[]A){//Checkforillegalcasesif(A==nul

java - 我可以使用自定义算法而不是使用 RabbitMQ 的循环调度消息吗?

我正在使用RabbitMQ的循环功能在多个消费者之间发送消息,但一次只有一个消费者接收实际消息。我的问题是我的消息代表任务,我想在我的消费者上有本地session(状态)。我事先知道哪些消息属于哪个session,但我不知道使用我指定的算法将RabbitMQ发送给消费者的最佳方法是什么(或者有什么方法吗?)。我不想编写自己的编排服务,因为它会成为瓶颈,而且我不想让我的生产者知道哪个消费者会接收他们的消息,因为我会失去使用Rabbit获得的解耦。有没有办法让RabbitMQ根据预定义的算法/规则而不是循环法将我的消息发送给消费者?说明:我使用了几个用不同语言编写的微服务,每个服务都有自己

c# - 识别手写形状

我想识别笔迹形状并弄清楚它可能在集合中的形状。简单地说,如果我画一个三角形,应用程序应该将它识别为三角形。我如何使用C#或java执行此操作,我们将不胜感激。提前致谢。这些是我需要识别的一些形状 最佳答案 你可以尝试使用OpenCV为了那个原因。EmguCV是OpenCVfor.net的一个很好的包装器。观看ShapeDetection演示(包含在OpenCV中) 关于c#-识别手写形状,我们在StackOverflow上找到一个类似的问题: https://

java - 字典序最小排列,使得所有相邻字母都不同

这是一项额外的学校任务,我们还没有收到任何教学,我也不是在寻找完整的代码,但一些开始的提示会很酷。我打算在回家后发布我到目前为止用Java完成的工作,但这里有一些我已经完成的工作。因此,我们必须做一个排序算法,例如将“AAABBB”排序为ABABAB。最大输入大小为10^6,并且这一切都必须在1秒内发生。如果有多个答案,则按字母顺序排列的第一个答案是正确的。我开始测试不同的算法,甚至在不考虑字母顺序要求的情况下对它们进行排序,只是为了看看结果如何。第一版:将ascii码保存到Integer数组中,index为ascii码,值为该字符在char数组中出现的数量。然后我选择了2个最高的数字