问题:从3D点(使用x,y和z坐标)生成网格。 我所拥有的是3D空间中的点(带有x,y和z坐标),您可以在图像1中看到它。 输出是图像2还是图像3或图像4.简而言之,它将是网格。 如果我有网格,可以提供材料。 我见过很多人说德劳内三angular剖分或约束德劳内三angular剖分将帮助我生成网格,但是我最主要的发现是它在二维点(只有x和y坐标)上的实现。 但是我的问题是:从图像1可以看到,我有三维点。 Delaunay三angular剖分还是约束Delaunay三angular剖分可以很好地处理3D点? 如果是,那么如何? 或者我必须find另一种从3D点生成网格的algorithm? 注意:在这里可以find一个很好的2D Delaunay三angular剖分的解释
我在很多地方发现了这个着名的dp问题,但我无法弄清楚如何解决。 给出一组n个矩形三维框,其中第i框有高度h(i),宽度w(i)和深度d(i)(所有实数)。 你想创build一堆尽可能高的盒子,但是如果下盒子的二维底座的尺寸每个都严格大于二维底座的尺寸,那么你只能在另一个盒子的顶端堆叠一个盒子。更高的箱子的D基地。 当然,你可以旋转一个盒子,以便任何一方作为其基础。 也可以使用同一types盒子的多个实例。 这个问题对我来说似乎太复杂了,以找出步骤。 因为它是3D,我得到三个高度,宽度和深度的序列。 但是,因为有可能交换三维,所以对我来说问题变得更加复杂。 所以请有人解释在没有交换时解决问题的步骤,然后在交换时如何解决问题。 我对这个问题感到厌倦。 所以,请有人解释简单的解决scheme。
这是我在ANSI C中的感知器实现: #include <stdio.h> #include <stdlib.h> #include <math.h> float randomFloat() { srand(time(NULL)); float r = (float)rand() / (float)RAND_MAX; return r; } int calculateOutput(float weights[], float x, float y) { float sum = x * weights[0] + y * weights[1]; return (sum >= 0) ? 1 : -1; } int main(int argc, char *argv[]) { // […]
在准备面试科技时,我偶然发现了一个有趣的问题: 你已经得到了一个sorting,然后旋转的数组。 例 让arr = [1,2,3,4,5]这是sorting,然后旋转说两次向右给 [4,5,1,2,3] 现在,如何在这个有序的+旋转的数组中search最好? 可以不旋转数组,然后执行二进制search。 但是,在input数组中进行线性search并不比在最坏情况下O(N)好。 请提供一些指示。 我已经search了很多特殊的algorithm,但找不到任何。 我理解c和c ++
有没有人实施过斐波纳契堆 ? 我几年前就这样做了,但比使用基于arrays的BinHeaps慢了几个数量级。 那时候,我认为这是一个很有价值的教训,就是研究并不总是像自称的那么好。 然而,很多研究论文都是基于使用Fibonacci-Heapalgorithm的运算时间。 你有没有设法产生一个有效的实施? 还是你使用的数据集太大,斐波那契堆更有效率? 如果是这样,一些细节将不胜感激。
问题: 给定一个大于(〜1亿)的无符号32位整数列表,一个无符号的32位整数input值和一个最大的汉明距离 ,返回在input值的指定汉明距离内的所有列表成员。 列举的实际数据结构是公开的,性能要求决定了内存中的解决scheme,构build数据结构的成本是次要的,查询数据结构的成本低是至关重要的。 例: For a maximum Hamming Distance of 1 (values typically will be quite small) And input: 00001000100000000000000001111101 The values: 01001000100000000000000001111101 00001000100000000010000001111101 should match because there is only 1 position in which the bits are different. 11001000100000000010000001111101 should not match because 3 bit positions are different. 我的想法到目前为止: 对于海明距离为0的退化情况,只要使用一个sorting列表并对特定的input值进行二进制search即可。 如果汉明距离只有1,我可以翻转原始input的每一位,重复上述32次。 如何有效地(不扫描整个列表)发现海明距离> 1的列表成员。
我正在研究马里奥人工智能竞赛中的人,他们中的一些人使用A *(A-Star)Pathingalgorithm构build了一些漂亮的马里奥机器人。 替代文字http://julian.togelius.com/mariocompetition2009/screen1.png ( 马里奥A *机器人的video在行动 ) 我的问题是,A-Star与Dijkstra相比如何? 看着他们,他们看起来很相似。 为什么有人会用另一个呢? 特别是在游戏中的path?
我指的是当用户在Google中inputsearch词时,用于提供查询build议的algorithm。 我主要感兴趣的是谷歌的algorithm能够显示:1.最重要的结果(最有可能的查询,而不是任何匹配)2.匹配子string3.模糊匹配 我知道你可以使用Trie或者通用的trie来寻找匹配,但是它不能满足上面的要求。 本文前面提到的类似问题
所以如果我不得不在哈希表或前缀树之间进行select,那么导致我select哪一个的区别因素是什么。 从我自己的天真的angular度来看,似乎使用一个特里特有一些额外的开销,因为它不存储为一个数组,但就运行时间而言(假设最长的键是最长的英文单词),它可以基本上是O (1)(相对于上限)。 也许最长的英文单词是50个字符? 一旦获得索引,哈希表就会立即查找。 散列键获得索引,但似乎可以轻松地采取近50个步骤。 有人能给我提供一个更有经验的观点吗? 谢谢!
这些学年已经有一段时间了。 在医院find了IT专家的工作。 试图移动到现在做一些实际的编程。 我现在正在研究二叉树,我想知道确定树是否高度平衡是最好的方法。 我在想这个: public boolean isBalanced(Node root){ if(root==null){ return true; //tree is empty } else{ int lh = root.left.height(); int rh = root.right.height(); if(lh – rh > 1 || rh – lh > 1){ return false; } } return true; } 这是一个很好的实现? 还是我错过了什么?