Tag: algorithm

用于预测事件顺序的机器学习algorithm?

简单的机器学习问题。 可能有很多方法来解决这个问题: 有4个可能的事件的无限stream: 'event_1', 'event_2', 'event_4', 'event_4' 事件不是以完全随机的顺序进来的。 我们将假设大多数事件的顺序都有一些复杂的模式,其余事件都是随机的。 我们不知道提前模式。 在收到每个事件之后,我想根据事件发生的顺序来预测下一个事件。 所以我的问题是: 什么机器学习algorithm应该用于这个预测? 然后告诉预测者下一个事件实际上是什么: Predictor=new_predictor() prev_event=False while True: event=get_event() if prev_event is not False: Predictor.last_event_was(prev_event) predicted_event=Predictor.predict_next_event(event) 问题出现在预测者应该维持多久的历史,因为保持无限的历史将是不可能的。 我会留给你回答。 答案虽然是实用的,但是不能被解释。 所以我相信这个预言必须用某种滚动历史来完成。 因此,添加新事件并过期旧事件应该是相当有效的,并且不要求重build整个预测器模型。 具体的代码,而不是研究论文,将增加我的巨大的价值 ,你的回应。 Python或C库很好,但任何事情都可以。 更新:如果每轮都能同时发生多个事件,那该怎么办? 这是否改变了解决scheme?

是否有类似diff的algorithm来处理移动块的行?

diff程序在其各种版本中相当擅长计算两个文本文件之间的差异,并且比显示两个文件都更加紧凑。 它显示了作为一系列插入和删除行(或在某些情况下更改的行,但相当于删除,然后插入)的序列的区别。 patch和源代码控制系统使用相同或非常相似的程序或algorithm来最小化表示同一文件的两个版本之间的差异所需的存储。 algorithm在这里和这里讨论。 但是当文件在文件内被移动时,它会下降。 假设你有以下两个文件, a.txt和b.txt (假设它们都是数百行而不仅仅是6行): a.txt b.txt —– —– 1 4 2 5 3 6 4 1 5 2 6 3 diff a.txt b.txt显示: $ diff a.txt b.txt 1,3d0 < 1 < 2 < 3 6a4,6 > 1 > 2 > 3 从a.txt到b.txt的变化可以表示为“将前三行移动到最后”,但是diff显示了两次移动块的完整内容,错过了描述这个大变化的机会非常简短。 请注意, diff -e仅显示一次文本块,但这是因为它不显示已删除行的内容。 是否有diffalgorithm的变体(a)保留diff表示插入和删除的能力,(b)有效地表示移动的文本块而不必显示其全部内容?

点之间的angular度?

我有一个三angular形(A,B,C),并试图找出这三个点之间的angular度。 问题是,我可以在网上find的algorithm是确定向量之间的angular度。 使用vector,我将计算从(0,0)到我有的点的vector之间的angular度,并且不会给出三angular形内的angular度。 好的,下面是维基百科页面上的方法之后的Python中的一些代码,然后减去这些值: import numpy as np points = np.array([[343.8998, 168.1526], [351.2377, 173.7503], [353.531, 182.72]]) A = points[2] – points[0] B = points[1] – points[0] C = points[2] – points[1] for e1, e2 in ((A, B), (A, C), (B, C)): num = np.dot(e1, e2) denom = np.linalg.norm(e1) * np.linalg.norm(e2) print np.arccos(num/denom) * 180 这给了我60.2912487814,60.0951900475和120.386438829,所以我做错了什么?

我应该购买哪些数据结构和algorithm书?

我知道C和C + +,我有一些Java的经验,但我不太了解algorithm和数据结构。 我在亚马逊search了一下,但是我不知道该选什么书。 我不想要一本只在理论部分提出它的基础的书。 我也想要实际的部分(可能比理论的更:))。 我不希望代码以某种语言来实现,但如果是在Java中,我可能会更快乐。 🙂

图序列化

我正在寻找一个简单的algorithm来“序列化”一个有向图。 特别是我有一组文件,它们的执行顺序有相互依赖关系,我想在编译时find正确的顺序。 我知道这一定是一件相当普通的事情 – 编译器一直都在做 – 但是我的google-fu今天一直很弱。 什么是'去'的algorithm呢?

采访问题:从整数倍中找出中位数

有一个包含10G(1000000000)个整数的文件,请查找这些整数的中值。 你给2G内存来做到这一点。 任何人都可以想出一个合理的方法? 谢谢!

对开源最终学位项目的build议

注意:我不完全确定这个问题是否真的属于StackOverflow,所以如果你不这样认为的话可以投票结束。 在西class牙,我们必须在结束计算机科学学位的时候进行最后的项目。 这个项目不可能是微不足道的,并且可以涉及到从软件工程到计算机体系结构的任何计算机领域,包括代码与否,等等。 问题是我相当擅长解决问题,但是完全糟糕的发现他们,也就是说,如果有人告诉我“解决这个问题”没有问题,但我无法自己想象一个问题。 我使用专有的开发工具来开发专有软件,但几乎没有使用开源组件,所以我认为“好的,开源社区还没有那么有用”,我根本就不知道。 有什么build议么? 任何事情都会受到欢迎。 虽然我更喜欢c#或php,但是我不会不情愿学习新的东西,如果我必须的。 由于评论,大学是: Facultad deInformática。 UniversidadPolitécnicade Madrid。 感谢大家的答案。 尽pipe我还没有完全决定(我不想匆忙进入任何项目),但我真的很喜欢ROBOCODE项目的想法,尽pipe它在传统的方式中并不是很有用,听起来像是一种乐趣。 无论如何,我欣赏所有的build议。

C ++标准库 – 我应该什么时候使用它,什么时候不应该?

我想知道人们实际上多less使用标准c ++库,特别是<algorithm>和<numeric>头文件中的东西。 教科书似乎推荐了他们,但是我从来没有看到他们中的任何一个在我经历过的各种项目中都使用过(巧合?),并且亲自看起来更简单,只要每次都自己编写适当的简单algorithm,而不是记住或每次请查阅这些标题的参考。 我只是懒惰或固执? 使用这些库时是否有性能上的提升? 谢谢, [R

在JSON中将逻辑表示为数据

出于商业原因,我们需要将一些条件逻辑外部化为外部文件:最好是JSON。 一个简单的过滤scheme可以通过添加一个节点来处理,如下所示: "filter": [ { "criteria": "status", "value": "open", "condition": "==" } ] 数组中的其他值可以处理多个条件。 "filter": [ { "criteria": "status", "value": "open", "condition": "==" }, { "criteria": "condition2", "value": "value2", "condition": "==" } ] 然而,当我们处理涉及AND或OR的复杂条件时,会有点混淆。 问题:在JSON中表示这种逻辑是否有一种标准化(甚至被广泛接受)的格式? 如果这取决于你,你会怎么做? 注:第一个答案已经成为一个可编辑的维基,所以任何人都可以改善它。

将任意GUID编码为可读的ASCII(33-127)的最有效方法是什么?

GUID的标准string表示大约需要36个字符。 这是非常好的,但也很浪费。 我想知道如何使用33-127范围内的所有ASCII字符以尽可能最短的方式对其进行编码。 天真的实现产生22个字符,只是因为128位 / 6位产生22。 霍夫曼编码是我的第二好,唯一的问题是如何select代码…. 当然,编码必须是无损的。