jjzjj

permutation

全部标签

javascript - 如何在 JavaScript 中创建此对象的键/值的所有组合?

我有以下JavaScript对象结构:varoptions={optionOne:[true,false],optionTwo:[true,false],optionThree:[null,{property1:9,property2:7},{property1:4,property2:12},{property1:16,property2:14}]};请注意,此对象中key/对的数量会有所不同。所以实际上可能有optionFour、optionFive等,每个选项的数组可以有任意数量或类型的值。我需要遍历这个对象并创建一个包含所有可能选项组合的对象的数组:[{optionOne:tr

javascript - 在javascript中获取矩阵的所有可能选项

我在JavaScript中有一个“项目”对象,该项目可以有如下设置颜色、尺寸等我需要在数组中获取所有可能的组合。假设我们有一个看起来像这样的项目:varnewItem={name:'newitem',Settings:[{name:'color',values:['green','blue','red']},{name:'size',values:['15','18','22']},{name:'gender',values:['male','female']}]};我需要以某种方式得到这个:[[{SettingName:'color',value:'green'},{SettingN

string - golang - 字符串排列 - slice 边界超出范围

Here是这个问题的GoPlayground代码。我正在尝试使用递归编写golang字符串排列。置换函数有两个参数,prefix是一个空字符串("")和str,它是"abc"。代码如下funcmain(){str:="abc"perm("",str)}funcperm(prefixstring,strstring){n:=len(str)fmt.Println(n)ifn==0{fmt.Println(prefix)}else{fori:=0;i当我运行这段代码时,如预期的那样,n的值显示为3,2,1,0。我成功获得了“abc”,但随后我收到了“panic:runtimeerror:s

xml - 如何测试 XSLT 中空格分隔值的所有排列?

在xsl:when中测试变量的可能值(以空格分隔)时,我需要合并所有排列。例如:是否有一种聪明而简单的方法来做到这一点? 最佳答案 我不会尝试生成所有排列,而是测试源的所有值是否都存在于目标中,并且源和目标都包含相同数量的值。这在XSLT1.0中有点冗长,但仍然:MATCH请注意,此处进行了一些假设:例如,"ABBC"和"BAAC"将返回匹配项。如果这NotAcceptable,那么下一个最好的事情,恕我直言,就是在比较集合之前对值进行排序:XSLT1.0MATCH 关于xml-如何测试

C#排列数组列表?

我有一个ArrayList[]myList,我正在尝试创建一个包含数组中值的所有排列的列表。示例:(所有值都是字符串)myList[0]={"1","5","3","9"};myList[1]={"2","3"};myList[2]={"93"};myList的计数可以变化,因此它的长度是事先不知道的。我希望能够生成类似于以下所有排列的列表(但具有一些额外的格式)。12931393529353933293339392939393这是否说明了我要完成的目标?我似乎无法想出一个好的方法(如果有的话)。编辑:我不确定递归是否会干扰我以自己的方式格式化输出的愿望。抱歉,我之前没有提到我的格式是

c# - 使用 LINQ 生成排列

我有一组必须安排的产品。有P个产品,每个产品的索引从1到P。每个产品都可以安排到0到T的时间段。我需要构建满足以下约束的产品计划的所有排列:Ifp1.Index>p2.Indexthenp1.Schedule>=p2.Schedule.我正在努力构建迭代器。我知道当产品数量是已知常量时如何通过LINQ执行此操作,但我不确定当产品数量是输入参数时如何生成此查询。理想情况下,我想使用yield语法来构造此迭代器。publicclassPotentialSchedule(){publicPotentialSchedule(int[]schedulePermutation){_schedule

c# - 二维柏林噪声

我已经完全掌握了3D柏林噪声的艺术,现在我正在尝试将我的相同实现用于2D算法。问题似乎在于选择我的渐变方向。在3D中,我在均匀分布的方向上使用了16个渐变,效果很好。在2D中,我想我会使用8个渐变。上、下、左、右、四个对角线方向。这是我得到的:噪声的总体外观总是正确的,但正方形的边缘并不完全匹配。我也尝试过使用其他渐变或更少的渐变,但得到了类似的结果。在另一个示例中,您可以看到边缘有时会匹配并且该区域的结果很好-当我不使用渐变而只是在4个角的每个角随机选取的值之间进行插值时,我得到了正确的结果,这让我认为是渐变部分搞砸了。这是我的代码://8differentgradientdirec

javascript - 通过带有神秘逗号的堆算法进行排列

为了周五的入学申请,我花了一整天(终于)思考置换算法的实践。Heap的算法对我来说似乎是最简单和优雅的。这是一个例子:http://en.wikipedia.org/wiki/Heap%27s_algorithmfunctionpermutationArr(num){varstr=num.toString();vararr=str.split('');varpermutations=[];functiongetPerm(arr,n){varlocalArr=arr.slice(0);vari;varswap;vartemp;if(n==1){permutations.push(loca

javascript - 是否有任何预构建的方法可以在 JavaScript 中查找给定字符串的所有排列?

我是JavaScript世界的新手。如标题所述,我想知道JavaScript中是否有任何预构建的方法来查找给定字符串的所有可能排列。例如,给定输入:the期望的输出:thetehehtethhethte 最佳答案 //stringpermutationfunctionpermutation(start,string){//basecaseif(string.length==1){return[start+string];}else{varreturnResult=[];for(vari=0;ipermutation('','123'

javascript - 在javascript中找到第i个排列

给定一个数组arr尺寸n,和索引0我想返回第i个排列。我能够编写一个获取所有排列的方法:functionpermute(arr){varpermutations=[];if(arr.length===1){return[arr];}for(vari=0;i如何trim它以仅获得递归的一个分支? 最佳答案 您可以使用数组长度的阶乘作为获取目标排列的助手。基本上,该算法计算数组索引,根据这些索引重新组合结果。functiongetN(n,array){varf,l=array.length,indices=[];array=array.