问题描述
问题如下任意10个数字中的7个数字的不重复排列,怎么个算法,请那位给个公式或示例
解决方案
解决方案二:
分不够再加
解决方案三:
你的不重复是指这7个数字全部不能相同,还是只要是排列中有任何一个数字不同
解决方案四:
冒泡
解决方案五:
是7个数字为一组的不重复全排列,范围是给定的10个数字中,比如给于1,2,3,4,5,6,7,8,9,10排列结果1,2,3,4,5,6,72,3,4,5,6,7,83,4,5,6,7,8,94,5,6,7,8,9,10..........
解决方案六:
usingSystem;namespace组合数{classTest{staticvoidMain(){intn=10;intm=7;int[]vec=newint[n];for(inti=0;i<vec.Length;i++)//vec为你想要组合的数组vec[i]=i+1;Test.Combine(vec,m);Console.Read();}publicstaticvoidCombine(int[]vec,intm){int[]vecm=newint[m];int[]vecb=newint[m];intmark;//初始化for(inti=0;i<m;i++)vecm[i]=i;for(inti=0;i<m-1;i++)vecb[i]=i;vecb[m-1]=vec.Length-1;mark=m-1;output(vec,vecm);while(true){if(mark==0){vecm[0]++;output(vec,vecm);if(vecm[0]==vecb[0]){inti;for(i=1;i<m;i++){if(vecm[i]<vecb[i]){mark=i;break;}}if((i==m)&&(vecm[m-1]==vecb[m-1])){break;}//结束}}else{vecm[mark]++;mark--;for(inti=0;i<=mark;i++){vecm[i]=i;vecb[i]=i;}vecb[mark]=vecm[mark+1]-1;output(vec,vecm);}}}publicstaticvoidoutput(int[]vec,int[]vecm){for(inti=0;i<vecm.Length;i++)Console.Write("{0}t",vec[vecm[i]]);Console.WriteLine();}}}
解决方案七:
A10取7...