草庐IT

数值算法

全部标签

javascript - 检查数组是否包含(仅)数值

我有这样的数组vararrayVal_Int=["21","53","92","79"];vararrayVal_Alpha=["John","Christine","Lucy"];vararrayVal_AlphaNumeric=["CT504","AP308","NK675"];arrayVal_Int应被视为(纯)数字。arrayVal_Alpha和arrayVal_AlphaNumeric应被视为字符串。我需要在JavaScript中检查它。 最佳答案 最短的解决方案,评估为true当且仅当每个项目都是(可强制转换为)数字时

javascript - 5 个主要浏览器都使用哪些垃圾收集算法?

我目前正在重新考虑qooxdooJavaScript框架的对象处置处理。请看下图(A当前在范围内):diagramhttp://yuml.me/51747906.jpg假设我们要删除B。通常,我们会切断所有对象之间的所有引用。这意味着我们在示例中切断了连接1到5。这真的有必要吗?据我阅读here,浏览器使用标记和清除算法。在这种情况下,我们只需要切断引用1(与范围的连接)和5(与DOM的连接),这样会更快。但我能确定所有浏览器都使用标记清除算法或类似算法吗? 最佳答案 对于任何体面的垃圾收集器(不仅仅是标记和清除),切断连接1就足以

javascript - 为什么我使用位图缓冲区在索引和 x,y 之间转换的算法会导致图像垂直翻转?

当使用像这样的位图缓冲区时:[50,50,50,255,50,50,50,255,...][r,g,b,a,r,g,b,a,...]我经常这样使用数学:letbufferWidth=width*4;buffer.forEach((channel,index)=>{lety=Math.floor(index/bufferWidth);letx=Math.floor((index%bufferWidth)/4);letremainder=index%4;为了计算x、y,反之亦然以使用位图数据的FlatBuffers。我几乎总是以翻转的结果结束,并且以某种方式最终将它们翻转回来,但显然我对此

计算机视觉算法——基于Transformer的目标检测(DETR / Deformable DETR / DETR 3D)

计算机视觉算法——基于Transformer的目标检测(DETR/DeformableDETR/DETR3D)计算机视觉算法——基于Transformer的目标检测(DETR/DeformableDETR/DETR3D)1.DETR1.1TransformerEncoder-Decoder1.2Set-to-SetLoss1.3PositionalEmbedding2.DeformableDETR2.1DeformableAttentionModule2.2DeformableTransformerEncoder-Decoder2.3Conclusion3.DETR3D3.12Dto3DTra

javascript - Kadane 的算法解释

有人可以告诉我Kadane算法中发生了什么吗?想检查我的理解。这就是我的看法。你正在遍历数组,每次将ans变量设置为看到的最大值,直到该值变为负数,然后ans变为零。与此同时,每次循环都会覆盖sum变量,直到之前看到的总和之间的最大值或迄今为止最大的“ans”。循环执行完毕后,您将获得迄今为止看到的最大总和或答案!varsumArray=function(array){varans=0;varsum=0;//loopthroughthearray.for(vari=0;i 最佳答案 考虑跟踪值:varmaximumSubArray=

Javascript 文本相似度算法

我正在构建一个网站,该网站应收集各种新闻提要并希望比较文本的相似性。我需要的是某种新闻文本相似度算法。我知道php有similar_text函数,但不确定它有多好+我需要它用于javascript。因此,如果有人能给我指出一个示例或插件或任何关于如何实现这一点的说明,或者至少从哪里开始调查。 最佳答案 有一个javascriptimplementationLevenshtein距离度量,通常用于文本比较。如果您想比较整篇文章或标题,您最好查看构成文本的单词集(以及这些单词的频率)之间的交集,而不仅仅是字符串相似性度量。

javascript - 如何将存储在字符串中的数值相加?

我正在尝试将1添加到我的JavaScript变量中,但以下代码没有给出预期的结果:varval1=document.getElementById('');varval2=val1.value+"1";alert(val2.value);我该怎么做? 最佳答案 您可以使用函数parseInt()将存储在val1.value中的字符串转换为数字:varval2=parseInt(val1.value)+1;请注意,Number(val1.value)也会将您的值转换为数字。-编辑-正如yc建议的那样,强烈建议使用parseInt(val

javascript - 检查变量是否包含 Javascript 中的数值?

在PHP中,这很简单:is_numeric(23);//trueis_numeric("23");//trueis_numeric(23.5);//trueis_numeric(true);//false但是我如何在Javascript中执行此操作?我可以使用正则表达式,但是否有相应的函数? 最佳答案 关于:functionisNumber(n){returntypeof(n)!="boolean"&&!isNaN(n);}isNaN内置函数用于检查值是否不是数字。更新:Christoph是对的,在JavaScript中,bool类

javascript - 确定数字数组中高点和低点的最佳算法?

我在这里使用的是伪代码,但这是用JavaScript编写的。使用最有效的算法,我试图在给定正整数数组的情况下找到高值和低值。这是我想出的,但我认为这可能不是最好的,只是想知道是否有人有任何其他建议。varlow=1;varhigh=1;for(loopnumbers){if(number>high){high=number;}if(low==1){low=high;}if(number 最佳答案 将high和low初始化为第一个元素。比任意选择一个“高”或“低”的数字更有意义。varmyArray=[...],low=myArray

javascript - Firefox JavaScript 算法性能异常

请在firefox上运行此测试。http://jsperf.com/static-arithmetic您如何解释结果?这个b=a+5*5;b=a+6/2;b=a+7+1;执行速度比快得多b=a+25;b=a+3;b=a+8;为什么? 最佳答案 首先,你的测试有点缺陷。你应该比较以下内容:b=a+8-2;对比b=a+6b=a+8+2;对比b=a+10b=a+8/2;对比b=a+4b=a+8*2;对比b=a+16您会注意到一些有趣的事情:只有第二对项中有+或-的问题速度较慢(除法和乘法很好)。加/减和乘/除的实现必须有明显的区别。确实有