Questions tagged «algorithm»

算法是定义明确的问题解决方案的一系列明确定义的步骤。当您的问题与算法设计有关时,请使用此标签。


8
LR,SLR和LALR解析器之间有什么区别?
LR,SLR和LALR解析器之间的实际区别是什么?我知道SLR和LALR是LR解析器的类型,但是就它们的解析表而言,实际区别是什么? 以及如何显示语法是LR,SLR还是LALR?对于LL语法,我们只需要显示解析表的任何单元格都不应包含多个生产规则。LALR,SLR和LR是否有类似规则? 例如,如何显示语法 S --> Aa | bAc | dc | bda A --> d 是LALR(1)但不是SLR(1)? 编辑(ybungalobill):对于LALR和LR之间的区别,我没有得到满意的答案。因此,LALR的表较小,但只能识别LR语法的一个子集。有人可以详细说明一下LALR和LR之间的区别吗?LALR(1)和LR(1)就足够回答了。他们都使用1个令牌前瞻和双方都表驱动!它们有何不同?

26
如何将浮点数转换为人类可读的分数?
假设我们有0.33,我们需要输出1/3。 如果有0.4,我们需要输出2/5。 这样做的想法是使其易于阅读,以使用户理解y中的 “ x个部分 ”,从而更好地理解数据。 我知道百分比是一个很好的替代品,但我想知道是否有一种简单的方法可以做到这一点?



7
三角函数如何工作?
因此,在中学数学乃至大学中,我们都学会了如何使用三角函数,它们的作用以及所解决的问题类型。但是它们始终以黑匣子的形式呈现给我。如果您需要某些东西的正弦或余弦,请按一下计算器上的sin或cos按钮,然后进行设置。没关系 我想知道的是通常如何实现三角函数。



15
JavaScript中的Number.sign()
想知道是否有任何简单的方法来查找数字的符号(signum函数)? 可能比显而易见的解决方案更短/更快/更优雅的解决方案 var sign = number > 0 ? 1 : number < 0 ? -1 : 0; 简短的答案! 使用此工具,您将安全快捷(来源:moz) if (!Math.sign) Math.sign = function(x) { return ((x > 0) - (x < 0)) || +x; }; 您可能想看看性能和类型强制比较小提琴 很久过去了。进一步主要是由于历史原因。 结果 目前,我们有以下解决方案: 1.明显且快速 function sign(x) { return x > 0 ? …

22
编写一个函数,该函数返回给定字符串中最长的回文
例如字符串“ abaccddccefe”中的“ ccddcc” 我想到了一个解决方案,但它的运行时间为O(n ^ 2) 算法1: 步骤:这是一种蛮力方法 对于i = 1至i小于array.length的2个for循环, 对于j = i + 1至j小于 array.length的-1 这样,您可以从数组中获取所有可能组合的子字符串 具有回文功能,可检查字符串是否为回文 因此,对于每个子串(i,j)都调用此函数(如果它是回文)将其存储在字符串变量中 如果找到下一个回文子字符串,并且该子字符串大于当前子字符串,则将其替换为当前子字符串。 最后,您的字符串变量将得到答案 问题:1.该算法运行时间为O(n ^ 2)。 算法2: 反转字符串并将其存储在不同的数组中 现在找到两个数组之间最大的匹配子字符串 但这也需要O(n ^ 2)时间 你们能想到一种运行时间更好的算法吗?如果可能的话O(n)时间



19
一起计算正弦和余弦的最快方法是什么?
我想同时计算一个值的正弦和余弦(例如,创建旋转矩阵)。当然,我可以像一样一个接一个地分别计算它们a = cos(x); b = sin(x);,但是我想知道在同时使用两个值时是否有更快的方法。 编辑: 总结到目前为止的答案: 弗拉德说,那是asm命令FSINCOS计算这两个(几乎在FSIN单独调用的同时) 像志注意到的那样,这种优化有时已经由编译器完成(使用优化标志时)。 caf指出,函数sincos和sincosf可能是可用的,可以通过直接包括math.h 关于使用查找表的 tanascius方法存在争议。(但是,在我的计算机上和在基准测试情况下,它的运行速度比以前快3倍sincos 32位浮点的精度几乎。) 乔尔·古德温(Joel Goodwin)链接了一种极快的近似技术的有趣方法,具有很高的准确度(对我来说,这比查表还要快)
100 c#  c++  c  algorithm  math 

16
数组数组化
考虑以下数组: /www/htdocs/1/sites/lib/abcdedd /www/htdocs/1/sites/conf/xyz /www/htdocs/1/sites/conf/abc/def /www/htdocs/1/sites/htdocs/xyz /www/htdocs/1/sites/lib2/abcdedd 什么是检测公共基本路径的最短,最优雅的方法-在这种情况下 /www/htdocs/1/sites/ 并将其从数组中的所有元素中删除? lib/abcdedd conf/xyz conf/abc/def htdocs/xyz lib2/abcdedd
99 php  string  algorithm 

5
查找给定范围内所有数字的异或
您将获得较大的范围[a,b],其中“ a”和“ b”通常可以在1到4,000,000,000之间(含)。您必须找出给定范围内所有数字的XOR。 TopCoder SRM中使用了此问题。我看到了比赛中提交的一种解决方案,但无法弄清楚其工作原理。 有人可以帮助解释获奖的解决方案: long long f(long long a) { long long res[] = {a,1,a+1,0}; return res[a%4]; } long long getXor(long long a, long long b) { return f(b)^f(a-1); } 在这里,getXor()实际的函数是计算通过范围[a,b]中所有数字的异或,而“ f()”是一个辅助函数。
99 algorithm 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.