jjzjj

Combinations

全部标签

ruby - Ruby 中两个数组的组合

Ruby实现following的方法是什么?a=[1,2]b=[3,4]我想要一个数组:=>[f(1,3),f(1,4),f(2,3),f(2,4)] 最佳答案 您可以使用product先获取数组的笛卡尔积,然后收集函数结果。a.product(b)=>[[1,3],[1,4],[2,3],[2,4]]因此您可以使用map或collect来获取结果。它们是同一方法的不同名称。a.product(b).collect{|x,y|f(x,y)} 关于ruby-Ruby中两个数组的组合,我们在

javascript - 组合无重复javascript

这个问题在这里已经有了答案:JavaScript-Generatingcombinationsfromnarrayswithmelements[duplicate](10个答案)关闭4年前。给定[["blue","red"],[1,2],[true,false],]如何在javascript中获取可能的组合?:blue,1,trueblue,1,falseblue,2,trueblue,2,falsered,1,truered,1,falsered,2,truered,2,false顺序无关紧要。

javascript - 使用高效算法对数组中的相同对进行计数

问题陈述:a[]是n个数的数组,数组中相同对的计数,使得0p,q是对的索引。a[3,5,6,3,3,5]n=6这里相同对的数目是4,它们是(0,3),(0,4),(3,4),(1,5)且不(2,2)或(4,3)违反p条件。解决方案1:functiongetIdenticalPairs(a,n){varidenticalPairs=0;for(vari=0;i这段代码工作得很好,但它的时间复杂度似乎是o(n2)。我尝试的第二个解决方案是,解决方案2:使用组合公式,相同对的nos,ncrvaridenticalPairs=0;functiongetIdenticalPairs(a,n){v

javascript - 如何找到多重集的所有分区,其中每个部分都有不同的元素?

假设我们有这样一个数组:myArray=[A,A,B,B,C,C,D,E]我想创建一个算法,以便它可以找到加起来构成整个数组的所有组合,其中没有任何元素重复。示例组合:[A,B,C,D,E][A,B,C][A,B,C,D][A,B,C,E][A,B,C][A,B,C][D,E]说明:[A,B,C][A,B,C][D,E]和[A,B,C][D,E][A,B,C]是相同的组合。此外,子集的顺序也无关紧要。例如[A,B,C]和[B,A,C]应该相同。到目前为止,我没有超越varmyArray=["A","A","B","B","C","C","D","E"]console.log([...n

javascript - javascript数组中条目的成对组合

我在javascript中得到了一组条目,例如:varentries=["cat","dog","chicken","pig"];我现在想遍历它们的所有唯一成对组合。在此示例中,我希望看到:("cat","dog"),("cat","chicken"),...在其他语言中,比如scala,这非常容易。你只要做entries.combinations(2)JavaScript库中是否有类似的方法或函数?还是我只需要自己用嵌套循环的丑陋方式编写它? 最佳答案 vararr=["cat","dog","chicken","pig"].ma

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中创建一个函数,给定一个字符串将返回所有可能的字母组合的数组,每个字母最多使用一次,从最短的开始。例如,对于字符串ABC,它将返回:ABCABACABC我可以像这样使用循环:for(i=0;i但我不知道字符串的长度,所以不知道要使用多少个循环。有什么想法吗?编辑:我不是在要求排列,不应该同时返回abc和acb。此外,最短的在数组中排在第一位也很重要。这不是作业。这是用于解决“熄灯”类型游戏的程序。 最佳答案 这是一个我认为非常容易理解的递归解决方案。vartree=function(leafs){va

javascript - 为设置为 1 的一对位生成所有组合?

我正在尝试为给定位宽内的一对1生成所有可能的组合。假设位宽为6,即数字32。这就是我想要生成的:000000000011000110001100001111011000011011011110110000110011110110111100111111如果我有变量:vara=1,b=2;num=a|b;并创建一个循环,我将循环遍历width-1次,以及我在哪里移动a和b,我会得到一对的所有组合。在那之后,我几乎陷入困境。有人可以提供一些帮助吗。更新:工作示例基于Barmar的数学方法,这就是我设法实现的vararr=[],arrBits=[];functiongetCombs(pair

javascript - Javascript 中的 Itertools.combinations

JavaScript中有没有类似Python的itertools的库?我对排列组合特别感兴趣。我没有使用Node.js。我想做这样的事情:array=['a','b','c','d'];//returnnon-duplicatecombinationsoflength2['a','b']['a','c']['a','d']['b','c']['b','d']['c','d']谢谢!:) 最佳答案 您可以使用递归方法来获取具有指定大小的给定数组的排列。functiongetPermutations(array,size){functi

javascript - 使用javascript输出数字数组的每个组合

数组中有几个数字varnumArr=[1,3,5,9];我想循环遍历该数组并将每个唯一的3数字组合相乘,如下所示:1*3*5=1*3*9=1*5*9=3*5*9=然后返回所有计算的数组varansArr=[15,27,45,135];谁有优雅的解决方案?提前致谢。 最佳答案 生成组合的通用算法如下:functioncombinations(numArr,choose,callback){varn=numArr.length;varc=[];varinner=function(start,choose_){if(choose_==0)