草庐IT

algorithm

全部标签

javascript - 使用斐波那契格子在球体上均匀排列点

我正在尝试沿单位球体的表面或多或少均匀地排列点。I'mtold虽然这个问题很困难,FibonacciLattices给出一个很好的解决方案。几天来我一直在尝试遵循链接文档中提供的非常简单的方法,但我就是无法让它看起来正确。我正在使用javascript,我有一个对象数组e,每个对象都有一个lat和lon参数。这是我用来在球体上排列点的函数:(现在假设点数总是奇数)functionarrangeEntries(e){varp=e.length;varN=(p-1)/2;for(vari=-N;i与functionmod(a,b){returna-Math.floor(a/b)*b;}与文

javascript - 电子电路图组件连接算法

Closed.Thisquestionneedstobemorefocused。它当前不接受答案。想改善这个问题吗?更新问题,使其仅关注editingthispost的一个问题。7年前关闭。Improvethisquestion我正在创建一个网络服务,旨在模拟电子电路的工作方式。project甚至还没有进入Alpha阶段。我坚持该项目的一些重要里程碑:当一个人试图将一个组件的引脚连接到其他某个引脚时,应该建立连接线。首先,连接线只是一条直线,几乎没有任何方法可以更改它。然后,它变成了弯曲的线,可以添加,移动和删除点,从而确定了线的弯曲方式。现在,它(连接线)是使用A*算法创建的。实现还

JavaScript:减去数字范围

我正在尝试编写一个JS函数,它有两个参数,包括和排除,每个对象数组{X,Y}表示从X到Y的数字范围,两者都包括在内。输出是include中的所有范围与exclude中的所有范围的减法。例如:include=[{1,7},{9,10},{12,14}]exclude=[{4,5},{11,20}]output=[{1,3},{6,7},{9,10}]{4,5}将{1,7}分解为两个范围对象:{1,3}和{6,7}{9,10}没有受到影响{12,14}已完全删除 最佳答案 您可以使用扫描线算法。对于每个数字,保存它代表的内容(开始和结束

javascript - 如果比较函数不可传递,Array.sort() 的行为如何?

我正在编写一种算法来对3D框数组进行排序,以便按从前到后的顺序进行绘制。有一种定义明确、稳定的方法来决定两个盒子中的哪个盒子在另一个盒子前面,所以我编写了一个函数来做到这一点,然后我将我的函数传递给Array.prototype.sort()以获得正确的绘制顺序。但也可能存在这样的框循环,即A>B、B>C和C>A都为真。这意味着整个列表没有明确定义的排序顺序,即使任何对的顺序都是明确定义的。在实践中,这种情况不太可能出现,如果出现,我可以忍受一两个盒子的顺序错误。但是,在这种情况下,是否存在可能对整个列表进行错误排序或崩溃的JS实现?16年11月10日更新现在项目已经完成,只是为了补充

javascript - 从字符串数组创建唯一组合数组

我正在写一些东西,它接受一段文本并将其分解为可能的数据库查询,这些查询可用于查找类似的文本block。(类似于我输入时生成的“类似问题”列表)基本过程:从文本中删除停用词去除特殊字符从剩余的文本中创建一组独特的“词干”创建一个词干数组的可能组合数组(我被卡住了……有点)这是我目前所拥有的://baseListstartswithanemptyarray//candListstartswiththearrayofuniquestems//targetiswherethearraysofuniquecombinationsarestoredfunctioncreateUniqueCombo

javascript - 什么是高频使用最快的 levenshtein 算法

这个问题在这里已经有了答案:Sortanarraybythe"LevenshteinDistance"withbestperformanceinJavascript(7个答案)关闭9年前。对于客户端搜索工具,我需要找到一个词与数百万个其他词的Levenshtein距离。用户应该能够将大约二十个单词的短文本与一本书进行比较。用户可以通过查找书中文本中最具特征的单词的位置来做到这一点。“查找位置”并不意味着寻找完全匹配,而是与levenshtein几乎匹配。我从已经可用的实现开始,但我需要更快的速度。我最终得到了这个:varrowA=newUint16Array(1e6);varrowB=

javascript - 如何在不溢出 RAM 的情况下为非常大的文件生成校验和并在 Javascript 中转换为 64 位?

问题:如何正确生成独立于浏览器的唯一、一致的校验和?另外,我想将SHA256/MD5校验和字符串转换为64位。如何在不需要大量RAM的情况下正确读取文件来生成校验和?即我们如何在不影响RAM的情况下处理1GB的文件例如Isitpossibletoreadafilewithoutloadingitintomemory?(见答案)Thisproject看起来很有希望,但也无法实现。我的意图是以XMB的block逐步/增量地生成校验和。这可能有助于避免一次使用过多的RAM。以下是代码,它没有按预期工作:letSIZE_CHECKSUM=10*Math.pow(1024,2);//10MB;B

javascript - 测量字符串的相同性(在 Javascript 中)

原则上,这个问题可以独立于语言来回答,但具体来说,我正在寻找Javascript实现。是否有任何库可以让我衡量两个字符串的“同一性”?更一般地说,是否有任何算法可以实现(在Javascript中)?以下面的字符串为例AbnormalElasticityofSingle-CrystalMagnesiosideriteacrosstheSpinTransitioninEarth’sLowerMantle还要考虑以下略微调整的字符串。注意不同的粗体部分bnormalElasticityofSingleCrystalMagnesio-SideriteacrosstheSpin-Transiti

javascript - 许多节点的图形算法

我一直在尝试开发一个基于Web的应用程序来帮助绘制节点及其交互的图形。我尝试将Sigma.Js与ForceAtlas扩展一起使用。对于我的简单测试(几个节点),结果非常好看,但是如果增加了1000个节点,结果就会变得一团糟。有没有这样的方法可以使结果更易于查看?(在眼睛上更容易/不仅仅是1个大Blob)我将如何去做呢?是否已经编写了任何算法(我可以实现?) 最佳答案 您可以尝试Fruchterman-Reingold力布局(有一个sigmaplugin)。它特别减少了相互交叉的链接数量,因此它通常更适合大型图(除非所有节点都有很多连

javascript - 找到在一定限制下给出最大总和的子集(子集总和)

我有一个包含一些整数值的数组,我需要得到它们的一个子集,它给出低于给定值的最大总和。假设我有这个数组:[40,138,29,450]我想得到这个数组的一个子集,使总和最大化但低于用户给定的限制,比方说250。在这种情况下,它应该返回[139,40,29]。我看了看this问题和相关答案,并尝试使用给出的代码,但我不是很了解。不管怎样,我试过了,将最小值设置为0,将最大值设置为给定的限制,但它一直返回我不正确的“5”,因为限制就像300,而我数组中的数字都超过了50。我找不到任何可以帮助我的东西,所以我想问是否有人可以给我一些代码或伪代码来了解如何执行此操作。