-1
投票
1答案
2372 次观看

我需要一种总是能找到最佳解决方案的首次拟合递减bin装箱算法的替代方案

我已经实现了先验递减的装箱算法,将一个数字列表分成两个大小相等的“箱”。该算法几乎总能找到最佳的包装安排,但有时却找不到。 例如: 数字4、3、2、4、3、2的集合显然可以划分为以下排列: 1)4,3,2 2)4,3,2 第一个减少拟合的算法找不到解决方案。 在这种情况下,如果找不到正确的解决方案,那是不可接受的。 最初的难题是将数字序列分成两组,它们的总和相等。 这仅仅是一个简单的装箱问题,还是我使用了错误的算法?

0
投票
7答案
4855 次观看

缩小32位RGB图像的最快算法

使用哪种算法将32Bit RGB IMAGE缩小到自定义分辨率?算法应平均像素。 例如,如果我有100x100的图像,并且想要新的图像尺寸为20x50。第一个源行的前五个像素的平均值将给出dest的第一个像素,而第一个源行的前两个像素的平均值将给出第一个dest列的像素。 当前,我要做的是先按X分辨率缩小,然后按Y分辨率缩小。这种方法需要一个临时缓冲区。 您知道任何优化的方法吗?

15
投票
2答案
5526 次观看

植绒和群算法有哪些好的资源?

前段时间,我读了小说猎物。即使它绝对属于有趣的科幻小说领域,也激起了我对群/群AI的兴趣。我最近在reddit上看到了这些演示的一些示例,例如 Nvidia平面植绒视频和 Chris Benjaminsen的植绒沙箱(源)。 我有兴趣编写一些有关蜂群或植绒AI的模拟演示。我在大学里上过人工智能,但是我们从未接触过模拟群居/成群行为的主题,并且快速浏览我的教科书显示它并没有被讨论。 植绒沙箱 有哪些扎实的资源可用于学习有关群/群算法的一些要点?有没有人在这一领域有任何经验,以便他们可以为我指出关于一本非常适合的AI书或已发表论文的正确方向?

8
投票
3答案
684 次观看

在.NET中手动实现高性能算法

作为一种学习经验,我最近尝试实现具有3种方式分区的Quicksort 在C#中。 除了需要在递归调用之前在左/右变量上添加额外的范围检查之外,它看起来还不错。 我事先知道该框架提供了内置的Quicksort实现。Sort中的a>(通过Array.Sort)。因此,我尝试了一些基本性能分析来比较性能。结果:内置的List <>。Sort方法在相同的列表上运行,比我自己的手动实现快约10倍。 使用反射器,我发现List <>中的实际排序。排序是通过外部代码而不是IL(在名为tryszsort()的函数中)实现的。 看我自己的Quicksort实现,我希望...

2
投票
3答案
1031 次观看

打印从数字创建的可能字符串

给出一个10位数的电话号码,我们必须打印由此创建的所有可能的字符串。数字的映射与电话键盘上的数字完全相同。 即1,0->没有字母 对于2-> A,B,C 例如1230 助理总干事 BDG CDG AEG .... 用c / c ++解决此问题的最佳解决方案是什么?

1
投票
3答案
72 次观看

缩短搜索时间

只是想知道是否有任何改善搜索时间的提示(全文)。 大型网站(如stackoverflow,reddit等)如何实现其搜索功能? (抱歉,我是新手)

2
投票
3答案
2303 次观看

仅使用C的分布式系统设计

我有一个实现节点(例如p2p节点)的分布式系统的工作,这些节点中的每个节点(比如说A,B,C和D)都执行某些功能,并且需要彼此交互以进行各种操作,例如同步操作以及其他类似事物,例如15个A节点与一组5个B节点进行交互,以进入负载最少的节点的队列并获取令牌号,然后等待C将其重定向到空闲节点D,依此类推。 我对应该如何设计感到有些困惑: 我想到的协议是封装操作类型和要发送的其他内容的结构。另外,这是使用确认方案完成的,因此我可以确保另一方收到了消息。 由于我没有中央服务器,因此如何处理分布式互斥方面。我猜每个节点都复制数据,但这听起来有点太昂贵了(更不用说愚蠢了。) 在实现p...

11
投票
6答案
2893 次观看

素因数分解

我最近在阅读有关密码学中素数的一般用法。在我读过的所有地方,都没有找到在多项式时间(而不是指数时间)中运行的“已发布”算法来查找密钥的主要因素。 如果发现或发布了确实在多项式时间内运行的算法,那么这将对与理论和计算机科学世界相对的现实计算环境产生怎样的影响。考虑到我们对加密技术的依赖程度,这种情况会突然停止。 考虑到这一点,如果P = NP为真,可能会发生什么,我们在多大程度上取决于该事实尚未得到批准。 我是初学者,所以请原谅我的任何错误,但我想你会明白我的要旨的。

7
投票
3答案
4212 次观看

透明和半透明背景上的混合模式

通常,“普通”混合模式方程如下: D = Sa * S + D * (1.0 - Sa) 其中D是目标颜色,Sa是源alpha,S是源颜色。 现在,在完全不透明的目标位置上可以正常工作,但我想知道您将如何在半透明和完全透明的目标位置上进行处理。 当在完全透明的目标上混合源时,源像素(像素为颜色和Alpha)将保持不变并且不会像之前的公式中那样混合,并且如果目标背景是完全不透明的,则上述等式应为应用,但是我找不到一种很好的方法来处理目标alpha在0到1之间的情况。 例如,如果在透明背景上将白色像素与50%的alpha混合在一起,则颜色不应趋于该透明颜色值(在未定义状态下或...

20
投票
14答案
4016 次观看

在面试中要求解决NP完全问题是否正确?

今天,有一个,在一次面试中给作者一个NP完全问题,显然他没有被告知那是一个问题。 问这些问题的目的是什么?面试官问这样的事情时期望什么行为?证明?有用的启发式方法?甚至问一个不是所有人都应该知道的众所周知的NP完全问题是否合法?(有一个其中有很多)

0
投票
2答案
497 次观看

澄清FFT

我知道以下推理有问题,但是我不确定这是什么。 FFT: 给出了两个多项式 A = a_0 + a_1 x + a_2 x^2 + ... + a_n x^n 和 B = b_0 + b_1 x + b_2 x^2 + ... + b_n x^n 您可以计算乘积的系数 AB = \sum _k = 0 ^ 2n ( \sum _ j = 0 ^ k (a_j b_{k-j}))x^k 在O(n log n )次。 因此,给定两个向量(a_0, ..., a_n)和(b_0, ..., b_n),我们可以计算 向量v_i = \sum j = 0 ^...

2
投票
3答案
623 次观看

确定最接近类的子接口

让我们说我有一个接口的继承树: IParent> IChild> IGrandChild 我将如何: 找到实现IParent的类 确定也是IParent的孩子的最接近祖先。 例如: var myClass = FindImplementor<IParent>(); var myInterface = ClosestAncestor<IParent, myclass>(); 我不是要创建与上述签名匹配的函数。只是为了澄清。 IParent的后代以及实现类在动态加载的程序集中。我不确定这是否会有所作为。

2
投票
1答案
2331 次观看

在C ++中寻找二项式树的实现

如果有人可以指出我的方向,我可以在其中找到一个易于理解的暗示。二叉树,这将非常有帮助。 树应类似于本文中的内容: http://software.intel.com/zh-CN/articles/high-performance-computing-with-binomial-option-pricing-part-1/

4
投票
5答案
7526 次观看

文件比较的逻辑

我试图编写一个程序用于文件比较。例如: file1 1 2 3 4 5 file2 1 2 @ 3 4 5 如果我逐行执行,则会得到: 1 == 1; 2 == 2; 3 != @; 4 != 3; 5 != 4; != 5; 但是,事实是文件之间的唯一区别是@。我想要得到这样的东西: 1 == 1; 2 == 2; != @; 3 == 3; 4 == 4; 5 == 5; 哪种方法是最好的?无需使用任何外部应用程序,例如diff,fc等。

4
投票
4答案
962 次观看

动态编程的算法和数据结构学习资源

我现在正在学习动态编程,尽管我对理论很了解,但为新问题设计DP算法仍然很困难。 这就是我现在真正想要的-一本书或一个网站,提出了可以通过动态编程解决的问题。另外,还有一个带有说明的解决方案,我想看看我即使解决了几个小时也无法解决问题。是否有一些资源可以为几类算法(例如图形算法,动态编程等)提供这种功能? P.S。我考虑过使用Topcoder,但是那里的解决方案并不真正适合学习实施有效的解决方案。

2
投票
5答案
888 次观看

如何轻松地知道迷宫是否有一条从起点到目标的道路?

我使用0,1数组实现了一个迷宫。入口和目标固定在迷宫中。输入始终为迷宫的0,0点。目标始终是迷宫的m-1,n-1点。我现在正在使用广度优先搜索算法,但是速度不够好。特别是对于大迷宫(100 * 100左右)。有人可以帮我这个算法吗? 这是我的解决方案: queue = [] position = start_node mark_tried(position) queue << position while(!queue.empty?) p = queue.shift #pop the first element return true if maze.goal...

20
投票
17答案
5652 次观看

从采访中:删除n×n矩阵中的行和列以最大程度地剩余值的总和

给出一个n×n实数矩阵。允许您擦除任意数量的行(从0到n)和任意数量的列(从0到n),然后计算剩余条目的总和。提出一种算法,该算法找出要擦除的行和列,以使该总和最大化。

7
投票
6答案
2723 次观看

如何实现回滚功能?

我想创建一个C#应用程序,在其中将一些文件复制到两个不同的文件夹(已经包含旧版本文件)中,并且还运行sql脚本。在整个过程中,如果发生任何异常,我需要回滚所有更改。 对于sql脚本,可以使用转换,但是如何通过回滚实现文件复制过程?

22
投票
3答案
14128 次观看

在数组中找到与另一种颜色最接近的颜色的最佳算法是什么?

我从传感器读取一种颜色(RGB)。我还列出了“已知”颜色,每种颜色都与一个字符串名称配对。 从该列表中拉出最接近的颜色的最佳方法(即表现得像人类选择颜色)是什么? 我用RGB尝试了最短的笛卡尔距离,但是这使灰色更接近绿色,而不是黑色或白色。

1
投票
4答案
969 次观看

根据通用性对字符串数组进行分类

我有大量的字符串(多个单词)(200000)。我想根据这些字符串之间的单词匹配的逗号数组对这些字符串进行分组。我想不出一个低计算时间的算法 “ AB 500 ” “公共汽车 AB 500 ” “ 新闻CA ” “ 新闻CA BLAH” 我的计划是 一种。将它们标记为单词。 b。创建全局数组令牌 C。将这些字符串与通用标记进行比较。 您猜到这没有帮助。您可以为此建议一种算法吗? 我正在用python写这个。.

20
投票
9答案
11958 次观看

Java迭代笛卡尔积

我想计算Java中任意数量的 nonempty 集的笛卡尔积。 我已经编写了迭代代码... public static <T> List<Set<T>> cartesianProduct(List<Set<T>> list) { List<Iterator<T>> iterators = new ArrayList<Iterator<T>>(list.size()); List<T> elements = new ArrayList<T&g...

1
投票
3答案
430 次观看

程序启动时同步文件系统和缓存的数据

我有一个程序,需要检索有关一组文件的一些数据(即,目录及其中的所有文件以及某些类型的子目录)。数据的计算非常昂贵,因此,我无需遍历文件系统并在程序启动时对其进行计算,而是将数据缓存保存在 SQLite 数据库,并使用FilesystemWatcher监视对文件系统的更改。这在程序运行时效果很好,但问题是在程序启动期间如何刷新/同步数据。如果已添加(或更改了文件-我想我可以通过上次修改/大小来检测到此文件),则需要在缓存中重新计算数据;如果已删除文件,则需要从缓存中删除数据(因为接口会遍历缓存而不是文件系统。 问题是:什么是执行此操作的好算法?我能想到的一种方法是遍历文件系统并收集字典中...

49
投票
10答案
31729 次观看

使用STL容器进行中位数计算时正确的方法是什么?

假设我需要从1000000个随机数值序列中检索中位数。 如果使用任何但 std::list的方法,则我没有(内置)方法来对中值计算的序列进行排序。 如果使用std::list,我将无法随机访问值以检索排序序列的中间(中位数)。 实施自己的分类并与其他人一起使用是否更好?std::vector,还是最好使用std::list并使用std::list::iterator进行环行计算到中间值?后者似乎开销较小,但也感觉更难看。. 或者对我来说有更多更好的选择吗?

3
投票
4答案
1971 次观看

Microsoft的STL :: list :: sort()使用哪种排序算法?

注意:我不小心发布了此问题而不指定我使用的是哪个STL实现,而且我认为它实际上无法更新,因为它将使大多数答案过时。 那么,正确的问题就来了-假设我使用的是Microsoft Visual C ++的STL库,下面的代码中使用了哪种排序算法? list<int> mylist; // ..insert a million values mylist.sort();

38
投票
3答案
23242 次观看

STL的list :: sort()使用哪种排序算法?

我有一个随机整数列表。我想知道list::sort()方法使用哪种算法。例如。在以下代码中: list<int> mylist; // ..insert a million values mylist.sort(); 编辑:另请参见这个更具体的问题。

19
投票
3答案
19865 次观看

为什么内存中A *的指数复杂?

Wikipedia谈到A *复杂度如下(链接此处): 比时间还麻烦 复杂度是A *的内存使用量。在 最坏的情况下,还必须记住 指数数量的节点。 我看不到这是正确的,因为: 说,我们探索具有后继B,C和D的节点A。然后,将B,C和D添加到开放节点列表中,每个节点都带有对A的引用,然后从开放节点中移动A到封闭的节点。 如果有时我们找到另一条通向B的路径(例如,通过Q),比通过A的路径更好,那么所需要做的就是更改B对A的引用以指向Q并更新其实际成本,g(逻辑上为f)。 因此,如果我们在一个节点中存储其名称,其引用节点名称以及其g,h和f分数,那么存储的最大节点数...

1
投票
3答案
333 次观看

这种颜色量化算法的复杂度是多少?

几年前,当我写大学论文时,我就开始用这个想法取笑。想法是这样的-完美颜色量化算法将拍摄任意真实颜色的图片,并将颜色数量减少到最小,同时保持新图像与原始图像完全无法区分。肉眼。 基本上,设置很简单-RGB多维数据集中有一组点(每个轴上从0到255个整数值)。您必须以下列方式用其他点替换这些点中的每一个: 手术后的总分尽可能少; 从原始点到替换点的距离不大于红色,绿色和蓝色轴上每个轴上一些预定义常数R,G和B(这些常数取自人眼的灵敏度,通常由用户配置)。 我知道有很多色彩量化算法可以以不同的效率工作,但是它们主要是针对将色彩减少到一定数量,而不是“在不违反这些约束的情况下达到最小...

5
投票
2答案
3393 次观看

查找最近邻居的空间划分算法如何工作?

要找到最近的邻居,空间划分是一种算法。如何运作? 假设我有一组二维点(x和y坐标),并且给了我一个点(a,b)。该算法将如何找出最近的邻居?

0
投票
1答案
213 次观看

在平面上对齐形状,算法

我正在开发一个简单的图表工具,使用flex在计划上绘制形状。 首先,我使用一个简单的20 * 20网格。 但是真正有趣的东西是自动斧头磁铁效果,这就是我至少如何称呼我的意思,是为什么我拍了一段balsamiq视频。 http://screenr.com/clB http://www.balsamiq.com/ 如您所见,它在垂直水平边框和中心轴上对齐。 边界:灰轴 水平对齐(高度/ 2)中心:蓝色斧头 没有垂直对齐(宽度/ 2)的轴 一些25px的中间填充空间:绿色轴 您如何看待此类算法的工作原理: 现在,我将不做任何旋转。 给出一个在宽度 w 和高度 ...

1
投票
2答案
1511 次观看

使用一维数组中的数据使用算法创建多维数组

我有一个一维PHP对象数组。每个对象都有两个属性,一个属性是对象的唯一ID,另一个属性是数组中作为其父对象的另一个对象的唯一ID。例如: array(3) { [0]=> object(stdClass)#1 (2) { ["ID"]=> int(1) ["parentID"]=> int(0) } [1]=> object(stdClass)#2 (2) { ["ID"]=> int(3) ["parentID"]=> int(2) } [2]=> ...