草庐IT

递归算法举例

全部标签

javascript - 这个递归是如何工作的?

这是EloquentJavascript的一个例子:Bystartingfromthenumber1andrepeatedlyeitheradding5ormultiplyingby3,aninfiniteamountofnewnumberscanbeproduced.Howwouldyouwriteafunctionthat,givenanumber,triestofindasequenceofadditionsandmultiplicationsthatproducethatnumber?我无法理解递归在这里是如何工作的,想知道是否有人可以写出几次如何调用find或其他一些解释。f

javascript - 递归连接javascript函数参数

我遇到了一个javascript难题,询问:编写一段JavaScript代码,将所有传递给函数的字符串连接起来:functionconcatenate(/*anynumberofstrings*/){varstring=/*youronelinehere*/returnstring;}@meebo看到函数参数被表示为一个索引对象可能是一个数组,我认为可以用递归的方式来完成。但是我的递归实现抛出了一个错误。--"conc.arguments.shift不是函数"--functionconc(){if(conc.arguments.length===0)return"";elseretur

javascript - 结构化克隆算法与深拷贝有何不同

有一个MDNarticle声明:ThestructuredclonealgorithmisanewalgorithmdefinedbytheHTML5specificationforserializingcomplexJavaScriptobjects.It'smorecapablethanJSON所以,我相信这意味着它比以这种方式克隆的能力更强:JSON.parse(JSON.stringify(obj))在thisthread中建议.JSON方式有很多缺点,例如不支持循环引用、丢弃JSON规范不支持的所有内容(如函数)以及将Date对象表示为字符串。然后我想到结构化克隆算法是很多库

javascript - 我可以在不使用编辑器的情况下使用 tinyMCE 清理算法吗?

我正在使用tinyMCE来编辑内容,它设置了清理规则,用于在回发数据之前清除哪些内容。但是在我的应用程序的其他区域,我需要显示相同的内容......而且我不想指望它在被放入数据库之前被正确删除的事实(它可能已经被另一个应用程序编辑过)。因此,为了保持一致性(并且不必重复工作),我有没有办法直接在javascript中使用tinyMCE清理/清理器,以便我可以清理其他内容,然后再将其放入DOM中以供查看?像这样的东西:vardata=getDataViaAjax();varcontent=tinymce.scrubber.cleanup(data);$("someElement").ap

美国NIST发布首批四种抗量子密码算法

美国国家标准与技术研究院(NIST)选择了第一批旨在抵御未来量子计算机攻击的加密算法,这些算法被设计成能够抵御未来量子计算机的攻击,这种攻击可能会破解用于保护隐私的密码安全,比如网上银行和电子邮件等软件。这四种选定的加密算法将成为NIST后量子加密标准的一部分,预计将在两年内最终确定。美国商务部长GinaM.Raimondo表示,“今天的公告是保护我们敏感数据免受未来量子计算机网络攻击的一个重要里程碑,由于NIST的专业知识和对尖端技术的承诺,我们能够采取必要的步骤来确保电子信息的安全,这样美国企业可以继续创新,同时保持其客户的信任和信心。”在此之前,NIST曾在2016年呼吁全球密码学家设计

javascript - 在 Javascript 中可视化汉诺塔算法

Latley我正在做一个学校项目,我必须提出一个算法,在我的例子中,这个算法是解决汉诺塔谜题的算法。由于我在HTML/CSS方面的知识,我认为使用这些+Javascript来可视化网页上的步骤会非常巧妙。我设置了站点以及基本的递归算法。functionmove(n,beg,aux,end){if(n==1){console.log(beg+'-->'+end+'\n');setTowers(beg,end);}else{move(n-1,beg,end,aux);move(1,beg,aux,end);move(n-1,aux,beg,end);}}页面布局(CSS代码在这里无济于事)

javascript - 适用于许多图像及其调色板的算法

对于一个项目,我正在寻找一种算法,可以将很多图像转换为可以共享相同调色板的调色板图像。短篇小说给出:图像(RGB)的列表,这些列表已经具有应使用的最终颜色。结果:图片列表(指示)调色板列表通过使用不同的调色板,可以将多个RGB图像转换为一个指示图像。我想使用最少数量的图像和最少数量的调色板。局限性:最多有n个调色板每个调色板最多有m种颜色结果中最多可以生成u张图像我的问题是:我不知道如何构建算法,因此它可以决定是否对先前的问题做出任何先前的决定。(请参见下文)我不知道如何解决调色板颜色和图像数据的重新排列,因为重新排列一个图像数据可能会导致跟进重新排列的问题,这可能会导致无休止的重新排

javascript - 如何在严格评估的语言中实现 protected 递归?

我在Javascript中实现了一个Scott编码的List类型以及一个模仿Semigroup类型类的重载append函数。append工作得很好,但对于大型列表,它会破坏堆栈。这是我实现的决定性部分:appendAdd("List/List",tx=>ty=>tx.runList({Nil:ty,Cons:x=>tx_=>Cons(x)(append(tx_)(ty))}));通常我使用蹦床来避免不断增长的堆栈,但这以尾递归为前提,因此在这种情况下不起作用。由于这个实现是基于Haskell的,我猜惰性求值和保护递归/尾递归模cons会有所不同:(++)[]ys=ys(++)(x:xs

javascript - 如何使这个同步递归函数异步

我有一个递归遍历树的javascript函数。它有两个“标志”变量,在函数本身的范围之上设置为false或true,因此如果在递归“walkTree”函数时将标志设置为true一次,则每次递归都会为true.另一方面,for循环也可能存在带有返回值的函数(如果有东西是for的话)。我遇到的问题是当递归太多时我会出错。我想通过使这个递归函数异步来防止这个问题,我试过将for循环内的subwalkTree()调用放到setTimeout中,但我现在遇到的问题是函数的其余部分将在其余异步操作完成之前执行(并可能返回错误的值)。那么我怎样才能使这个异步,同时仍然确保返回正确的值(而不是递归中的

javascript - 在 Dojo 类中递归调用 setTimeout 时是否存在内存泄漏?

我们已经使用Dojo创建了一个在UI上带有时钟的应用程序。但有时应用程序UI只是卡在那里,时钟就停止了。猜测JS引擎刚刚停止,因为时钟是由javascript代码驱动的。不确定以下代码会导致内存泄漏,然后导致挂起问题。我们使用递归的setTimeout调用来实现时钟。dojo.declare("xxx.xxx.HomepageHeader",[dijit._Widget,dijit._Templated],{widgetsInTemplate:true,_time:'',dateUtil:null,//....//....prefix:function(value,p){return(