永发信息网

【js二维数组】求助JS二维数组从N个项取M个进行排列的组合算法函数如数组:arr1=[...

答案:2  悬赏:50  手机版
解决时间 2021-02-22 22:19
【js二维数组】求助JS二维数组从N个项取M个进行排列的组合算法函数如数组:arr1=[...
最佳答案
【答案】 var arr1 = [];//你的原始数组function getArr(m,n){var rt = [];for(var i=0;i<m;i++){var arr = arr1.concat();arr.splice(i,1);getNext(arr,n-1);}return rt;function getNext(arr,n){if(!n){return rt.push(arr);}for(var i=0;arr[i];i++){var _arr = arr.concat();_arr.splice(i,1);getNext(_arr,n-1);}}}getArr(arr1.length,arr1.length - (arr1.length * Math.random() | 0));//这个也是随机的 m应该就是arr1数组的长度 n要说才是真正随机 第二个参数实际是m-n 追问: 好像不行啊 var arr=[[1,2,3],[3,6],4,6,[3,4]]; var arr2=getArr(arr.length,2); //alert(arr2[0].length); //alert(arr2[0][0].length) alert(arr2.length);//输出为0,正常的C(5,2)应该是10啊 追答: arr1=[[1,2,3],[3,6],4,6,[3,4]]; 你题目是arr1 我里面提到的是arr1 你现在用arr肯定不行 追问: 因为新手, 刚才无看清,不好意思,还有以下问题麻烦解决一下 arr1=[[1,2,3],[3,6],4,6,[3,4]]; var arr2=getArr(arr1.length,3); alert(arr2[.length) //输出60,应该C(5,3)=C(5,2)=10,不需要排序的 追答: arr1=[[1,2,3],[3,6],4,6,[3,4]];function getArr(m,n){ var rt = []; for(var i=0;i<m;i++){ getNext([i],n-1,i+1); } for(var i=0,row;row = rt[i];i++){ var cell = []; for(var j in row){ cell = cell.concat([arr1[row[j]]]); } rt[i] = cell; } return rt; function getNext(arr,n,index){ if(!n){ return rt.push(arr); } for(var i=index;i<m;i++){ getNext(arr.concat(i),n-1,i+1); } }}getArr(arr1.length,arr1.length * Math.random() | 0);换个思路 就是你要的答案了、 请试用 好的话 请采纳
  现在的n是选择的多少个
  
全部回答
这个问题的回答的对
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
南江实业我想知道这个在什么地方
康元药房(利民店)地址有知道的么?有点事想过
非常想念初恋但有机会见面却又不敢见面是怎么
我的电脑录不了音,就是麦插上了但对着它讲话
宝马3系手刹灯常亮是什么原因
一对夫妻,两人都出轨了,要离婚吗?
我割包皮有15天了,女朋友想ML,可以做了没?
为什么不打嗝
西南大学荣昌校区-第四教学楼地址在什么地方
被骗了怎样联系武汉记者
开心糖水屋地址在哪,我要去那里办事
网上发的外地库存车可信吗
我在携程订了两张不能退改的机票,若因第一航
长春理工大学美术是几本啊
在班轮运费中,运价表中注明“M”,表示
推荐资讯
交行和招行哪个信用卡好
英扣在什么地方啊,我要过去处理事情
高3米宽4米小隧道用什么机械
川藏七药王土特产我想知道这个在什么地方
高等数学 向量代数
给客人ps照片怎么收费
写出描写儿童好奇天真向往的古诗
好氧活性污泥沉降速度超级快,沉降比很低只有
有谁知道市场上卖的抹墙机怎么样
池昌旭那期的快乐大本营开场曲是什么?
【进程调度】进程调度的方式有哪两种?试列举
G01,用数控车床 怎么用(有图)
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?