草庐IT

Python算法:数的全排列、组合详解

全部标签

javascript - 确定定界形状边界的点的算法——使用 javascript

我正在开发一个htmlmap制作器,我想为我们的用户提供通过单击区域快速创建形状的能力,而不是让他们手动定义形状。首先让我们看看我们目前正在做什么。用户想要绘制区域A。他需要做的是在每个点上多次单击以定义形状的边界。我想知道是否有一种算法允许用户在A区域中单击并可以确定要放置哪些点以便在形状边界之后创建接近最佳的形状-基于图像对比度。我处理这个问题的第一个想法是确定离点击点最远的上、左、下、右点。将这四点作为我们的出发点。然后对于每个段,用一个新点对其进行分割,并沿着向量法线移动新点,直到我碰到对比边缘。当然,这种方法有一些局限性,但这是我可以假设的形状可以是凸的,凹的等等...对比度

javascript - 函数组合中的条件操作

如何根据某些逻辑条件停止或分支合成?例如。假设我有以下代码:compose(operation4operation3,operation2,operation1)(myStuff);或者甚至是类似的东西myStuff.map(operation1).map(operation2).map(operation3).map(operation4)我只想在myStuff满足某些条件时执行操作3和4。我如何实现它(特别是在JavaScript中)?我是否必须创建两个较小的组合并有一个单独的if语句,或者有没有办法在组合中包含条件?Monad能解决我的问题吗?如果是,怎么办?

javascript - 如何在 gatsbyjs 中创建带参数的路由

我想在我的gatsby生成的网站中创建一个使用slug作为参数的路由。我有一个位于路线/projects/上的项目列表.通常使用reactrouter我会创建一个这样的路由:看来在gatsby中,我必须在./pages下创建一个新文件目录并创建一个新路由。我有一个名为projects的页面我尝试在路由参数上查找,但似乎只得到404页面。//./pages/projects.jsclassSingleProjectextendsComponent{state={project:{}}componentDidMount(){constproject=this.props.projects.

javascript - 使用Dijkstra算法寻找能够承载最大权重的路径

我有一个图,有X个节点和Y个边。加权边缘。重点是从一个节点开始,并在最后一个位置的另一个节点停止。现在问题来了:将问题可视化。边缘是道路,边缘权重是在道路上行驶的车辆的最大重量限制。我们想驾驶最大的卡车从A到F。我想要从A到F的所有路径的最大允许重量。我可以使用某种Dijkstra算法来解决这个问题吗?我不确定如何以我可以实现的算法的形式来表达这个问题。任何帮助深表感谢。我很困惑,因为Dijkstra算法只考虑最短路径。 最佳答案 如果我没理解错的话,你想找到一些具有最大瓶颈边的节点之间的路径。也就是说,你想要最小边尽可能大的路径。

Javascript 模块化算法

Javascript将以下代码片段计算为-1。-5%4我理解余数定理表明a=bq+r使得0≤r 最佳答案 因为它是一个remainderoperator,不是模数。但是有一个proposalforaproperone.引自Ecma5.1remainderrfromadividendnandadivisordisdefinedbythemathematicalrelationr=n−(d×q)whereqisanintegerthatisnegativeonlyifn/disnegativeandpositiveonlyifn/dis

javascript - 纸牌游戏手牌评估的组合学,带通配符和重复

正在开发一款具有多种曲折的拉米风格游戏:使用两副5组套牌而不是一组4组套牌(总共116张牌)。套房从3到King,每副牌有3张王牌(所以没有2也没有A)。11轮,第一轮每人3张牌,最后一轮每人13张牌。除了clown是百搭外,每张牌的值(value)都会轮到百搭,这对应于您手中的牌数。所以第一轮3是狂野的,第二轮4是狂野的……第11轮国王是狂野的(国王的数值为13)。目标是放下所有牌。一旦有人“出去”(放下所有牌),剩下的玩家就有一个回合放下所有牌或尽可能多的有效套牌/运行。无论您手中还剩下什么牌,您都会获得积分。玩家只能在至少有3张牌的组或回合中放下牌,即set:{3:c,3:d,3

javascript - 获取对象中所有项目组合的高效算法

给定一个包含n个键的数组或对象,我需要找到所有长度为x的组合。给定X是可变的。binomial_coefficient(n,x)。目前我正在使用这个:functioncombine(items){varresult=[];varf=function(prefix,items){for(vari=0;i输出是:["a","ab","abc","abcd","abd","ac","acd","ad","b","bc","bcd","bd","c","cd","d"]因此,如果我想要n=4中的二项式系数x=3,我会选择所有长度等于3的字符串。{abc,abd,acd,bcd}。所以我分两步进

javascript - 用 Javascript 编写组合和排列计算器的最有效方法

我有一个数学网站http://finitehelp.com教学生有限数学。我认为包含一个计算器会很酷,所以我制作了一个用于Javascript中的组合和排列的计算器。实时计算器位于http://finitehelp.com/finite-calculator.html.我对Javascript几乎一无所知,并且会冒险猜测有一种更有效的方法来编写以下内容,特别是因为变量的过度使用。如果有人可以帮助我,我将不胜感激。//calculaten!Math.factorial=function(n){if(typeofn=='string')n=Number(n);if(typeofn!='nu

javascript - EXTJS 组合框多选

在ExtJS3.3.1中,我尝试将comboBox设置为multiselect,但它不起作用。请帮忙。varmArray=newArray("ALL","AAA","BBB");varmCombo=newExt.form.ComboBox({id:'ID',fieldLabel:'ID',triggerAction:'all',height:100,width:163,multiSelect:true,store:mArray});Ext.getCmp('mCombo').setValue("ALL"); 最佳答案 在Ext.for

javascript - 绘制具有厚度/宽度的线的算法

我正在寻找一种绘制具有一定粗细的线条的快速算法。线条不必抗锯齿,速度优先。像这样相当简单的东西就足够了:用例是一个Javascript游戏,蠕虫会留下痕迹。(HTML5Canvas明显画线,但是getImageData()很慢,碰撞检测也很慢)在过去的2.5小时内,我找不到执行此操作的任何东西。是的,我知道关于SO的问题几乎相同,实际上有很多,但没有一个有可行的解决方案。我目前唯一的解决方案是沿着Bresenham线画圆,这不是很有效。一些代码(伪代码、JS或至少一篇文章的链接)会很棒。 最佳答案 http://members.ch